Size: a a a

2020 February 25

n

n3 in Saltstack
хотя прямым запросом ключа всё в порядке
источник

R

Roman in Saltstack
Bandikoot
- при наличии юзера в пилларе absent можно удостоверяться, что соотв. файл в sudoers.d отсутствует
- солт же вроде умненький и при
 file.directory:
   - clean: True

не пересоздаёт файлы каждый раз
как вы собираетесь совмещать file.directory с clean: True и file.managed для отдельных файлов? Это получается ровно то что я описал, очистка директории.
источник

GG

George Gaál in Saltstack
Ki
{% set started_container_cameras = salt['cmd.shell']('docker ps -a --filter "name=camera_*" --format {{.Names}}').split('\n') %}

{%- set desired_container_names = [] %}
{%- for ip in salt.pillar.get('cameras:cameras') %}
 {%- do desired_container_names.append('camera_' ~ ip) %}
{%- endfor  %}


{%- for container_name in started_container_cameras %}
 {%- if container_name not in desired_container_names %}
{# do docker absent {{ container_name }} #}
 {%- else  %}
{# do docker present {{ container_name }} #}
 {%- endif %}
{%- endfor  %}
👆мне такую хитрую конструкцию порекомендовали
источник

GG

George Gaál in Saltstack
Думается мне, что придется пилить что-то аналогичное
источник

KP

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

KP

Kirill Proskurin in Saltstack
Должно помочь
источник

n

n3 in Saltstack
Минуту, вникну.
источник

KP

Kirill Proskurin in Saltstack
создает блок с вашими данными внутри файла - все что не в данных, но в блоке будет очищено
источник

KP

Kirill Proskurin in Saltstack
Это простой вариант и должен помочь.
альтернатива это собирать текущее состояние любым доступным способом - например вызовом какого-то модуля из джинжи и делать дифф между текущим и ожидаемым например через set()
источник

KP

Kirill Proskurin in Saltstack
И это опасный и скользкий путь
источник

R

Roman in Saltstack
я бы сказал это попытка использовать старые подходы "баш скриптинга"  с новыми инструментами
источник

KP

Kirill Proskurin in Saltstack
Это не совсем так и сильно зависит от структур данных. Если текущее и ожидаемое состяние можно просто привести к сету, то получить между ними разницу и пересечения очень легко
источник

KP

Kirill Proskurin in Saltstack
Тут ключевая загвоздка в том насколько это удобно делать в предложеном инструменте. Если бы я такое делал то только в Salt 3000 с кастомным модулем и вызовом его из onlyif через slots
источник

KP

Kirill Proskurin in Saltstack
А делать это из джинжи это путь в ад
источник

R

Roman in Saltstack
пишем свой модуль т.е. заменяем баш на питон в каком-то роде :)
источник

KP

Kirill Proskurin in Saltstack
да и это ок
источник

KP

Kirill Proskurin in Saltstack
так вообще-то соль и работает
источник

R

Roman in Saltstack
не, я понимаю когда нужен свой модуль для чего-то нестандартного или сложного, но тут вроде "просто" управление пользователями
источник

KP

Kirill Proskurin in Saltstack
define просто. У каждого свои требования. Я выше писал что для меня лично соль это фреймворк и на старте у меня был десяток локальных стейтов и модулей, большая часть уже в апстриме, но часть туда не скоро доедет. И это ок!
источник

KP

Kirill Proskurin in Saltstack
Управление юезрами может быть простое и может быть сложное
источник