Size: a a a

2020 July 27

s

sam in Saltstack
sam
config :
A config dict or None (None = unset).

Can also be a list:

[{'key': 'boot.autostart', 'value': 1},
{'key': 'security.privileged', 'value': '1'}]
собственно - проблема, там должен в value тестк в формате yaml
источник

s

sam in Saltstack
Andrey A
Екатеринбург тоже юзает Солт?))
у меня соленые уши)
источник

OM

Omega M in Saltstack
Andrey A
Екатеринбург тоже юзает Солт?))
Я когда-то давно был рожден там 🙂
источник

s

sam in Saltstack
Omega M
Пример стэйта который не работает запость.
маппа(кусок и оин из примеров)
{% set cloud_init = {
 'apt': {
    'sources': {
       'source1': {
          'source': 'deb http://repo.saltstack.com/py3/ubuntu/18.04/amd64/latest bionic main',
          'keyserver': 'https://repo.saltstack.com/py3/ubuntu/18.04/amd64/latest/SALTSTACK-GPG-KEY.pub',
          'keyid': '754A1A7AE731F165D5E6D4BD0E08A149DE57BFBE'
       }
    }
 },
 'packages': ['salt-minion','openssh-server','python3-pip']
} %}

{% set container_config_default = [
 {'key': 'boot.autostart', 'value': 1},
 {'key': 'user.user-data', 'value': cloud_init }
] %}

{% set init_server = {
 'id': id,
 'image_os': init_server_main.image_os | default('Ubuntu-1804-bionic-64-minimal'),
 'root': root,
 'disks': disks,
 'lxd': init_server_main.lxd | default('True'),
 'container_name': init_server_main.container_name | default(id | replace('-lxd','')),
 'container_config': init_server_main.container_config | default(container_config_default),
 'zpool_name': init_server_main.zpool_name | default('lxd'),
 'image': image
} %}

формула(кусок)

init_server_lxd_create_container:
 lxd_container.present:
   - verify_cert: False
   - running: True
   - name: {{ init_server.container_name }}
   - config: {{ init_server.container_config }}
   - source: {{ init_server.image }}
   - require:
       - init_server_lxd_service_start
источник

OM

Omega M in Saltstack
Важно видеть полностью стэйт и как ты делаешь импорт и т.д. С примера что ты запостил не понятно совсем.
источник

s

sam in Saltstack
Andrey A
Екатеринбург тоже юзает Солт?))
а откуда ты имено?
источник

s

sam in Saltstack
{% from "init_server/map.jinja" import init_server with context %}

init_server_lxd_install_lxd:
 pkg.installed:
   - pkgs:
       - lxd
       - python3-pylxd
   - reload_modules: True

init_server_lxd_init:
 lxd.init:
   - storage_backend: dir
   - require:
       - init_server_lxd_install_lxd

init_server_lxd_service_start:
 service.running:
   - name: lxd
   - enable: True
   - require:
       - init_server_lxd_init

init_server_lxd_create_container:
 lxd_container.present:
   - verify_cert: False
   - running: True
   - name: {{ init_server.container_name }}
   - config: {{ init_server.container_config | yaml }}
   - source: {{ init_server.image }}
   - require:
       - init_server_lxd_service_start
/tmp/file:
 file.managed:
   - source: salt://init_server/files/test.jinja
   - template: jinja
   - context:
       var: {{ init_server.container_config }}
~
источник

OM

Omega M in Saltstack
валится на init_server_lxd_create_container ?
источник

s

sam in Saltstack
он не валится
источник

s

sam in Saltstack
он приводит все к словарю))))
источник

s

sam in Saltstack
щас покажу
источник

s

sam in Saltstack
root@restorator-3-lxd ~ # lxc config show restorator-3
architecture: x86_64
config:
 boot.autostart: "1"
 image.architecture: amd64
 image.build: "20200718_07:42"
 image.description: Ubuntu bionic amd64 (cloud) (20200718_07:42)
 image.distribution: ubuntu
 image.name: ubuntu-bionic-amd64-cloud-20200718_07:42
 image.os: ubuntu
 image.release: bionic
 image.serial: "20200718_07:42"
 image.variant: cloud
 user.user-data: OrderedDict([('apt', OrderedDict([('sources', OrderedDict([('source1',
   OrderedDict([('source', 'deb http://repo.saltstack.com/py3/ubuntu/18.04/amd64/latest
   bionic main'), ('keyserver', 'https://repo.saltstack.com/py3/ubuntu/18.04/amd64/latest/SALTSTACK-GPG-KEY.pub'),
   ('keyid', '754A1A7AE731F165D5E6D4BD0E08A149DE57BFBE')]))]))])), ('packages', ['salt-minion',
   'openssh-server', 'python3-pip'])])
 volatile.base_image: 9853d7e00e7bf56987a13fc4f3ee3e1017b267ad174cc097f15ae3fdf29620a7
 volatile.eth0.hwaddr: 00:16:3e:28:a2:19
 volatile.idmap.base: "0"
 volatile.idmap.next: '[{"Isuid":true,"Isgid":false,"Hostid":100000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":100000,"Nsid":0,"Maprange":65536}]'
 volatile.last_state.idmap: '[{"Isuid":true,"Isgid":false,"Hostid":100000,"Nsid":0,"Maprange":65536},{"Isuid":false,"Isgid":true,"Hostid":100000,"Nsid":0,"Maprange":65536}]'
 volatile.last_state.power: RUNNING
devices: {}
ephemeral: false
profiles:
- default
stateful: false
description: ""
источник

s

sam in Saltstack
а должен быть такой текст
источник

s

sam in Saltstack
"boot.autostart": "true"
            "user.user-data": |
              #cloud-config
              apt:
                sources:
                  source1:
                    source: "{{ SALT_REPOSITORY }}"
                    keyserver: "{{ SALT_REPOSITORY_KEY }}"
                    keyid: "{{ SALT_REPOSITORY_KEYID }}"
              packages:
                - salt-minion
                - openssh-server
                - python3
                - python3-pip
                - tmux
источник

s

sam in Saltstack
то есть значение ключа "user.user-data" я хочу привезти как многострочник ввиде ямл
источник

OM

Omega M in Saltstack
Честно говоря не пробывал такое провернуть.
{%- load_yaml as cloud_init %}
user-data: |
 apt:
   sources: null
   source1:
     source: '{{ SALT_REPOSITORY }}'
     keyserver: '{{ SALT_REPOSITORY_KEY }}'
     keyid: '{{ SALT_REPOSITORY_KEYID }}'
 packages:
   - salt-minion
   - openssh-server
   - python3
   - python3-pip
   - tmux
{%- endload %}

{% set container_config_default = [
 {'key': 'boot.autostart', 'value': 1},
 {'key': 'user.user-data', 'value': cloud_init['user-data'] }
] %}
источник

OM

Omega M in Saltstack
Так пробовал ?
источник

s

sam in Saltstack
ага
источник

s

sam in Saltstack
щас покажу что получается
источник

OM

Omega M in Saltstack
А без  ямл фильтра ?
источник