Size: a a a

2021 November 09

KL

Kostiantyn Lysenko in Saltstack
в кубере меньше говнокода - жить веселей 🙂
источник

YZ

Yerzhan Zhiyentayev in Saltstack
Везде говно
источник

KL

Kostiantyn Lysenko in Saltstack
выгорание оно такое...
источник

AA

Andrew Avdeev in Saltstack
источник

SJ

Skench JYG in Saltstack
Добрый вечер всем, подскажите плз как лучше сделать. Есть state, в папке init.sls куда инклюжены из этой же папки 3 других состояния, external, internal и specific, в external и internal шаблон для текстового файла одинаковый, рализовано следующим образом, есть цикл for и записываем значения в словарь.
Например for in link ['yandex', google']
и после идет маленький блок из доп условий if link == yandex для него редирект например на такой то сайт. если google на другой сайт, но есть еще specific.sls в котором есть конфиги разного формата, например где еще дописаны ограничения на подключения и прочие мелочи, например для сайта rambler.ru надо сгенерировать шаблон такого вида "это плохой сайт", а для bing.com "этим не пользуйся" и так далее, таких сайтов с десяток.

У последнего так же начало идет с условия. В общем Файл с состоянием у всех одинаковый..

Во всех состониях вторым моментом мы вызываем метод file.managed
в котором описываем, куда положить файлы , берется имя из переменной в словаре и так далее.

Вопрос, как для специфических сделать лучше всего чтобы для них генерировался отдельный шаблон, если я помещаю текст в specific.conf между строками где еще задаю дополнительные переменные, то этот текст как и ожидается применяется ко всем файлам в этом состоянии, а надо только к текущему.

Можно тупо для них писать конфиг например на копирование файла с мастера на миньон по ssh, но это не тот случай которым я бы хотел это выполнить.
источник

YZ

Yerzhan Zhiyentayev in Saltstack
Сделай типа такого. Только тебе надо переменную, по которой ты делаешь for loop сделать пожирнее. Зато декларативно будет
{% for vhost in openresty['config']['templated_domains'] %}
/etc/nginx/conf.d/{{ vhost }}:
 file.managed:
   - source: salt://{{ tpldir }}/templates/{{ openresty['config']['templated_domains'][vhost]['template'] }}
   - user: root
   - group: root
   - mode: 644
   - template: jinja
   - context:
{%- for key in openresty['config']['templated_domains'][vhost] %}
     {{ key }}: {{ openresty['config']['templated_domains'][vhost][key] | json }}
{%- endfor %}
   - require:
     - file: /etc/nginx/conf.d/upstreams.conf
{% endfor %}
источник

SJ

Skench JYG in Saltstack
спс, начал играться пока с перемещением условий в коде, а то как отдельный текст засунуть я то знаю, но применяется шаблон все равно немного лишний из хвоста состояния.
PS: с перемещением не работает, так же применяется лишнее, буду отдельно условия писать, ка крекомендовано выше, наилучший вариант.
источник

В

Виталий in Saltstack
Добрый вечер, подскажите. Как правильно написать state для установки с репозитория?.
1. wget https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1+debian$(cut -d"." -f1 /etc/debian_version)_all.deb
?
2. dpkg -i zabbix-release_5.4-1+debian$(cut -d"." -f1 /etc/debian_version)_all.deb
dpkg:
 cmd.run:
   - name:
dpkg -i zabbix-release_5.4-1+debian$(cut -d"." -f1 /etc/debian_version)_all.deb
3. apt update
?
4. apt -y install zabbix-proxy-mysql
install_zabbix_proxy_mysql:
 pkg.installed:
   - name: zabbix-proxy-mysql
 service.running:
   - name: zabbix-proxy
   - enable: True
   - require:
     - pkg: zabbix-proxy-mysql
источник

SJ

Skench JYG in Saltstack
по идее так же
источник

В

Виталий in Saltstack
Это понимаю, а как задать репозиторий через state?
источник

В

Виталий in Saltstack
источник

SJ

Skench JYG in Saltstack
можно задать версию пакета, там же когда ты делаешь apt-cache search то же выдается какой то выхлоп? Ты ставишь обычным apt и не паишься указывать репу
источник

SJ

Skench JYG in Saltstack
Если что скинь state куда нить в облако и дай ссылку или доступ по нику скажу к репе, мне интересно изучать этот инструмент, может чем помогу, если будет долгое время затык, сам сижу часами над одной вещью((

Всем удачи))
источник

В

Виталий in Saltstack
Да, если что в личку скину 👍
источник

AA

Andrew Avdeev in Saltstack
источник

AA

Andrew Avdeev in Saltstack
Условно нужно:
1. Вытащить через grains инфу о системе
2. Скачать соответствующий deb файл, ключ если нужно
3. Положить в источники и дальше через pkg модуль установить
источник

В

Виталий in Saltstack
Честно, для меня много тут непонятного 😔
источник

SJ

Skench JYG in Saltstack
дай данные куда направить, у меня есть тестовый state где я с grains игрался недавно. Могу скинуть. Ну или могу подсказатьудобным способом
источник

В

Виталий in Saltstack
Отписал в PM
источник

В

Виталий in Saltstack
Возможно костыль, но решил это так
download_zabbix_proxy:
 file.managed:
   - name: /tmp/zabbix-release_5.4-1+debian11_all.deb
   - source: https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1+debian11_all.deb
   - source_hash: 0cd7dda01cae0a869d4921a22093e0bc
   - makedirs: True

deploy_zabbix_proxy:
 cmd.run:
   - name: dpkg -i /tmp/zabbix-release_5.4-1+debian11_all.deb

update_apt:
 pkg.uptodate:
   - name: apt_update

install_zabbix_proxy_mysql:
 pkg.installed:
   - name: zabbix-proxy-mysql
 service.running:
   - name: zabbix-proxy
   - enable: True
   - require:
     - pkg: zabbix-proxy-mysql
источник