Size: a a a

ansible — русскоговорящее сообщество

2021 February 16

VC

Vladimir Chernyshev in ansible — русскоговорящее сообщество
Oleg Kalinin
Комрадз, подскажите, плиз, можно ли как ниб по красоте одной таской описать подобное:
- name: Deploy config files
 template:
   src: "{{ item.src }}"
   dest: "{{ app_path }}/{{ item.dest }}"
with_items:
   - { src: 'master_redis.conf.j2', dest: '{{ app_path }}/master/redis.conf', when: "'master' in {{ group_names }}"}
   - { src: 'slave_redis.conf.j2', dest: '{{ app_path }}/slave/redis.conf', when: "'slave' in {{ group_names }}" }
что бы и with_items и when сразу в таком описание. Есть что то подобное?
сделай role = master|slave и when: item.role in {{group_names}}
источник

VC

Vladimir Chernyshev in ansible — русскоговорящее сообщество
в таске
источник

VC

Vladimir Chernyshev in ansible — русскоговорящее сообщество
это будет красиво )
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Vladimir Chernyshev
сделай role = master|slave и when: item.role in {{group_names}}
источник

VC

Vladimir Chernyshev in ansible — русскоговорящее сообщество
что не так?
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Роль с условием ради одного таска?
источник

VC

Vladimir Chernyshev in ansible — русскоговорящее сообщество
роль не в смысле ансибловской, а ключ в итемс )
источник

VC

Vladimir Chernyshev in ansible — русскоговорящее сообщество
вместо ключа when
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
вообще конструкция вида when: var in group_names сходу выдает нуба, не понимающего парадигму использования переменных в ансибле.
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Не нужно отдельно проверять наличие хоста в группе для каких-то действий
источник

M

Maksim Sharov in ansible — русскоговорящее сообщество
Ivan Pozdeev
Народ, подскажите, через Ansible можно устанавливать ОС
это больше сторона терраформа, клауд-инит образов, вот это все
источник

OK

Oleg Kalinin in ansible — русскоговорящее сообщество
Timur Gadiev
Не нужно отдельно проверять наличие хоста в группе для каких-то действий
А как лучше действовать при задаче, что есть опр хосты/группы хостов , для которых что то надо сделать?
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Oleg Kalinin
А как лучше действовать при задаче, что есть опр хосты/группы хостов , для которых что то надо сделать?
Задавать разные значения переменной для разных групп хостов
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
А в коде уже использовать просто сами эти переменные, без всякой дополнительной императивной логики
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Т.е. если для разных групп отличаются шаблоны каких-то конфигов, которые мы формируем в ходе плея, то просто ссылаемся в соответствующих тасках на переменную с именем соответствующего шаблона. А переменной на уровне инвентаря можно задать любые значения и имена шаблона в зависимости от группы или даже по отдельным хостам.
источник

M

Maksim Sharov in ansible — русскоговорящее сообщество
Timur Gadiev
Т.е. если для разных групп отличаются шаблоны каких-то конфигов, которые мы формируем в ходе плея, то просто ссылаемся в соответствующих тасках на переменную с именем соответствующего шаблона. А переменной на уровне инвентаря можно задать любые значения и имена шаблона в зависимости от группы или даже по отдельным хостам.
А можно пример переменной с именем шаблона?
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Maksim Sharov
А можно пример переменной с именем шаблона?
В смысле?
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
my_template_var: template1.cfg.j2
источник

M

Maksim Sharov in ansible — русскоговорящее сообщество
Timur Gadiev
my_template_var: template1.cfg.j2
Ок, я думал, про что-то особенное
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Для другого сервера (или группы серверов):
my_template_var: template2.cfg.j2
источник