Size: a a a

2021 February 10

SM

Sergey Mavrin in Ansible
Lamobot
1. Вложенные циклы возможны только через include_tasks.
2. Какой результат хотите получить?
2. для начала надо создать папки /var/lib/{{ env_name }}_{{ service_name }} с условием
when: ansible_fqdn == item.value.hosts
источник

SM

Sergey Mavrin in Ansible
Lamobot
1. Вложенные циклы возможны только через include_tasks.
2. Какой результат хотите получить?
1. если через include_tasks, то как передать item?
источник

SM

Sergey Mavrin in Ansible
Sergey Mavrin
1. если через include_tasks, то как передать item?
разобрался, спасибо
источник

A

Andrew in Ansible
Всем привет, подскажите пожалуйста можно ли в хостс сделать перечень ip адресов машин на которых должен быть конект? Потому что ансибл_юзер не меняется так же как и ключ/название. По факту только ip надо менять из-за чего приходится делать куча ctrl+c в файле хостс со всей инфой.  
 ansible_conection: Linux1
     ansible_host: <——
     ansible_user: same
     ansible_become: same
     ansible_become_user: same
     ansible_ssh_private_key_file: same
источник

L

Lamobot in Ansible
Andrew
Всем привет, подскажите пожалуйста можно ли в хостс сделать перечень ip адресов машин на которых должен быть конект? Потому что ансибл_юзер не меняется так же как и ключ/название. По факту только ip надо менять из-за чего приходится делать куча ctrl+c в файле хостс со всей инфой.  
 ansible_conection: Linux1
     ansible_host: <——
     ansible_user: same
     ansible_become: same
     ansible_become_user: same
     ansible_ssh_private_key_file: same
Можно задать в group_vars/конфиге ансибла
источник

A

Andrew in Ansible
Lamobot
Можно задать в group_vars/конфиге ансибла
А можно пример? Типо я примерно понимаю что нужно сделать как перечень этих ip, и сделать как варибл в хостс, но у меня не получилось
источник

L

Lamobot in Ansible
Andrew
А можно пример? Типо я примерно понимаю что нужно сделать как перечень этих ip, и сделать как варибл в хостс, но у меня не получилось
ip остаются в hosts, а остальное одинаковое выносится куда-то ещё
источник

A

Andrew in Ansible
Lamobot
ip остаются в hosts, а остальное одинаковое выносится куда-то ещё
Ааа, даже так. Все же можно пример, если не трудно?
источник

I

Igor in Ansible
А где можно почитать чего ждать в Ansible 3.0.0?
источник

I

Igor in Ansible
А тот уже rc1 вышел аж
источник

L

Lamobot in Ansible
Andrew
А можно пример? Типо я примерно понимаю что нужно сделать как перечень этих ip, и сделать как варибл в хостс, но у меня не получилось
Как-то так можно
hosts.yml:
---
same_users_group:
 hosts:
   linux1:
     ansible_host: ...
   linux2:
     ansible_host: ...

group_vars/same_users_group.yml
---
ansible_user: same
ansible_become: same
ansible_become_user: same
ansible_ssh_private_key_file: same
источник

L

Lamobot in Ansible
Или в обычном hosts
[same_user_group]
<список ip>
источник

A

Andrew in Ansible
Lamobot
Как-то так можно
hosts.yml:
---
same_users_group:
 hosts:
   linux1:
     ansible_host: ...
   linux2:
     ansible_host: ...

group_vars/same_users_group.yml
---
ansible_user: same
ansible_become: same
ansible_become_user: same
ansible_ssh_private_key_file: same
Спасибо!)
источник

SM

Sergey Mavrin in Ansible
Ещё раз извиняюсь, не пойму как передать ключ item-а в include_tasks
- name: Ensure db_path dir exists
 include_tasks: services.yml
 vars:
   env: "{{ item.key }}"
   services: "{{ item.value }}"
 with_dict: "{{ vault_dict }}"

services.yml:
- name: test
 debug:
   msg: "{{ env }}_{{ item.key }}"
 with_dict: "{{ services }}"

в результате в переменной env у меня не значения окружений, а eval переменной и как результат:
service1_service1
service2_service2
service1_service1
service2_service2
источник

L

Lamobot in Ansible
Sergey Mavrin
Ещё раз извиняюсь, не пойму как передать ключ item-а в include_tasks
- name: Ensure db_path dir exists
 include_tasks: services.yml
 vars:
   env: "{{ item.key }}"
   services: "{{ item.value }}"
 with_dict: "{{ vault_dict }}"

services.yml:
- name: test
 debug:
   msg: "{{ env }}_{{ item.key }}"
 with_dict: "{{ services }}"

в результате в переменной env у меня не значения окружений, а eval переменной и как результат:
service1_service1
service2_service2
service1_service1
service2_service2
Когда ж люди научатся доки читать :)
https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#defining-inner-and-outer-variable-names-with-loop-var
Вам нужно изменить имя дефолтной переменной item, хотя бы в одном цикле
источник

SP

Sergey Pechenkó in Ansible
Lamobot
Когда ж люди научатся доки читать :)
https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#defining-inner-and-outer-variable-names-with-loop-var
Вам нужно изменить имя дефолтной переменной item, хотя бы в одном цикле
Эх, а я только стандартный ответ про странное писать начал :-))))))
источник

L

Lamobot in Ansible
Sergey Pechenkó
Эх, а я только стандартный ответ про странное писать начал :-))))))
Пиши, я тоже не люблю корявые дикты разгребать :)
источник

SM

Sergey Mavrin in Ansible
Lamobot
Когда ж люди научатся доки читать :)
https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#defining-inner-and-outer-variable-names-with-loop-var
Вам нужно изменить имя дефолтной переменной item, хотя бы в одном цикле
если-бы документация была нормальная... )
вот не вижу в документации, что loop_control применим для with_items и with_dict
источник

SM

Sergey Mavrin in Ansible
Lamobot
Когда ж люди научатся доки читать :)
https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#defining-inner-and-outer-variable-names-with-loop-var
Вам нужно изменить имя дефолтной переменной item, хотя бы в одном цикле
спасибо, сработало )
источник

SP

Sergey Pechenkó in Ansible
Sergey Mavrin
если-бы документация была нормальная... )
вот не вижу в документации, что loop_control применим для with_items и with_dict
Для всех loops так-то.
источник