Size: a a a

2020 February 10

B

Bandikoot in Saltstack
я так понял, речь о создании юзеров на серверах
источник

R

Roman in Saltstack
выдавать запрос на ввод пароля - плохо вяжется с парадигмой software configuration management и с IaaC, поэтому варианты - хранить хэш пароля, хранить пароль в зашифрованном виде - солт умеет gpg например, третий вариант хранить пароли в безопасном хранилище, например Hashicorp Vault
источник

GG

George Gaál in Saltstack
Roman
выдавать запрос на ввод пароля - плохо вяжется с парадигмой software configuration management и с IaaC, поэтому варианты - хранить хэш пароля, хранить пароль в зашифрованном виде - солт умеет gpg например, третий вариант хранить пароли в безопасном хранилище, например Hashicorp Vault
+++
источник

KP

Kirill Proskurin in Saltstack
Асилбек
ну например есть конф. файл, который имеет пункт  где нужно указать пароль от пользователя. написать пароль напрямую не безопасно. Нужно делать так чтоб при запуске его он спросил ввести пароль от пользователя
Configuration managment очень редко о работе с интерактивными переменными.
источник

KP

Kirill Proskurin in Saltstack
ой извините
отвечай @ до конца не читай
источник

GG

George Gaál in Saltstack
Kirill Proskurin
Configuration managment очень редко о работе с интерактивными переменными.
Все ту ок
источник

ВЕ

Вячеслав Ефимов in Saltstack
А есть ли смысл шарить ключи через nfs на синдики? Или разбивать миньенов конкретно для каждого синдика?
источник

KP

Kirill Proskurin in Saltstack
и то и то должно работать насколько я понимаю.
источник

ВЕ

Вячеслав Ефимов in Saltstack
Ну поидее можно бутстрапить на конкретный синдик без расшаривания ключей
источник

ВЕ

Вячеслав Ефимов in Saltstack
Или шарить ключи, и в конфиге миньена указать все ноды
источник
2020 February 11

KP

Kirill Proskurin in Saltstack
источник

KP

Kirill Proskurin in Saltstack
Думаю самая важная фича релиза это The unless and onlyif requisites can now be operated with salt modules. После ансибла отсутсвие такой логики казалось адом на земле и застопорило миграцию у нас основательно. Теперь должно стать сильно проще
источник

KN

Konstantin Nikolaev in Saltstack
Man Purse
Всем привет, куда копать если стейт выполняется в хайстейте, но при отдельном солт колле фейлится?
Если ты отдельно применяешь какой то из стейтов как salt-call state.apply STATE_NAME и он валиться, а при salt-call state.highstate он отрабатывает, значи в STATE_NAME есть зависимость require/on_changes и т.д. от других стейтов которые инклудятся в state.highstate. Там в ошибке об этом должно ыть сказано.
источник

KN

Konstantin Nikolaev in Saltstack
А вообще я зашёл по другому поводу, хочу поделиться удобным лайфхаком при программировании логики на Jinja.

В общем если у вас есть какие то данные которые возвращаются в формате json, то эти данные можно легко загрузить как Jinja variables и испольховать их дальше в Jinja.

К примеру все знают команду docker inspect ...., она возвращает в json формате данные о контейнере или волюмах и т.д. Следовательно можно легко эти данные загрузить как Jinja словарь переменную:
{%- set nginx = salt.cmd.shell('docker inspect nginx')|load_json %}
nginx[0].State:
{{nginx[0].State}}


nginx[0].State.Status:
{{nginx[0].State.Status}}

Вернёт:
nginx[0].State:
{u'Status': u'running', u'Pid': 72352, u'OOMKilled': False, u'Dead': False, u'Paused': False, u'Running': True, u'FinishedAt': u'0001-01-01T00:00:00Z', u'Restarting': False, u'Error': u'', u'StartedAt': u'2020-02-06T06:59:56.992261338Z', u'ExitCode': 0}


nginx[0].State.Status:
running
источник

KN

Konstantin Nikolaev in Saltstack
Тоже самое можно использовать и для yaml/xml форматов, подробнее здесь https://docs.saltstack.com/en/latest/ref/renderers/all/salt.renderers.jinja.html#salt.utils.jinja.SerializerExtension
источник

KN

Konstantin Nikolaev in Saltstack
Жалко, что TOML формат нельзя загружать, а то как то раз очень нужно было
источник

L

LightVik in Saltstack
Всем привет
пытаюсь получить из network.interfaces имена интерфейсов {{ salt.network.interfaces() }}, хочу вытащить имя первого интерфейса в переменную, подскажите правильный синтаксис и где про него прочитать
источник

KN

Konstantin Nikolaev in Saltstack
LightVik
Всем привет
пытаюсь получить из network.interfaces имена интерфейсов {{ salt.network.interfaces() }}, хочу вытащить имя первого интерфейса в переменную, подскажите правильный синтаксис и где про него прочитать
network.interfaces возвращает словарь, а не список. Поэтому там нет такого понятия, как первый интерфейс. Просто делай зикл по интерфейса и всё
источник

L

LightVik in Saltstack
благодарю
источник

L

LightVik in Saltstack
Кто нибудь использовал?
salt.states.win_network.managed
пробую так:
test-network-config:
 network.managed:
   - name: ethernet1
   - dns_proto: dhcp
   - ip_proto: dhcp
интерфейс в windows имеет название ethernet1, в ответ получаю:
salt.exceptions.CommandExecutionError: Interface 'ethernet1' not found
источник