Size: a a a

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

2021 July 13

IT

Ilya Tikhonov in ansible — русскоговорящее сообщество
Я не очень силен в ансибле
источник

AN

Alexandr Novoselov in ansible — русскоговорящее сообщество
привет.
мой вопрос скукожился(

Вопрос про циклы. Или я хочу странного. Можно ли в таске в цикле передать все аттрибуты элемента без их явного прописывания.
Пытался загуглить, я же не первый кто такой вопрос задает, но что-то не нашел ничего.
источник

ZA

Zabrodin Alexey in ansible — русскоговорящее сообщество
Переопредели нужные тебе переменные в другом месте. В ansible этих мест очень много. Вот их порядок: https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#id40
источник

ZA

Zabrodin Alexey in ansible — русскоговорящее сообщество
Что является итерируемым объектом ?
источник

AN

Alexandr Novoselov in ansible — русскоговорящее сообщество
обычный dict типа
{ name: 'testuser1', groups: 'wheel' }
источник

ZA

Zabrodin Alexey in ansible — русскоговорящее сообщество
И какие атрибуты тебе требуются ?
источник

AN

Alexandr Novoselov in ansible — русскоговорящее сообщество
точнее не так.
это был пример отдельного элемента
источник

ZA

Zabrodin Alexey in ansible — русскоговорящее сообщество
Если атрибуты - это факты(переменные) инвентори хоста. То добраться до них можно через magic variable - hostvars. Например: {{ hostvars['host_group'].my_custom_var }}
источник

AN

Alexandr Novoselov in ansible — русскоговорящее сообщество
так офдока про
items_lookup.html
там есть пример
more complex items to add several users
источник

AN

Alexandr Novoselov in ansible — русскоговорящее сообщество
для юзера в таске явно прописано куча аттрибутов типа item.name1 item.name2 item.name3
так вот можно ли как-то явно не прописывать каждый такой элемент
источник

ZA

Zabrodin Alexey in ansible — русскоговорящее сообщество
Если item - это юзер в виде dict, а атрибут( name1,2,3 ) - ключи, то без проблем
источник

AN

Alexandr Novoselov in ansible — русскоговорящее сообщество
блин, без примера, криво объясняю, а пример вставить не могу, или даже ссылку на пример
да штожтакое(
положил на pastebin номер q4HJRbcv
источник

SL

Serogava Lapinaga in ansible — русскоговорящее сообщество
а что именно хотите делать? Я вытаскивал для настройки фаервола адрес хостов из инвентори так:
- name: Add authorized IP for Kubernetes
     firewalld:
      source: "{{ item }}/32"
      permanent: true
      zone: internal
      state: enabled
     with_items:
         - '{{ groups.name_group }}'
источник

SL

Serogava Lapinaga in ansible — русскоговорящее сообщество
думал делать через loop, но без него все нормально
источник

AN

Alexandr Novoselov in ansible — русскоговорящее сообщество
так получается для каждого нужно прописать портянку вида
source кавычкискобка item source
permanent кавычкискобка item permanent
zone кавычкискобка item zone
state кавычкискобка item state
сори за синтаксис, сообщения удаляются
источник

SL

Serogava Lapinaga in ansible — русскоговорящее сообщество
я что-то так и не понял цели. ы source перечисляются адреса хостов из группы в инвентори. а что хотите перечислять в permanent, если там true или false?
источник

SL

Serogava Lapinaga in ansible — русскоговорящее сообщество
если для каждого хоста вы хотите сделать уникальную настрйку фаервола, то стоит это разделять, а не в кучу пихат
источник

AN

Alexandr Novoselov in ansible — русскоговорящее сообщество
список элементов я задаю в переменных хоста.
вопрос больше про синтаксис таски
источник

SL

Serogava Lapinaga in ansible — русскоговорящее сообщество
так какая цель?
источник

ZA

Zabrodin Alexey in ansible — русскоговорящее сообщество
Не надо ничего для каждого прописывать. Если у тебя итерируемый объект является dict'от, то внутри каждого item ты можешь достучаться до всех key внутри dict
источник