Size: a a a

2021 March 21

V

Vlad Gor in Ansible
Vladimir Zhurkin
{% for host in play_hosts %}
{{ hostvars[host]['ansible_default_ipv4']['address'] }} {{ hostvars[host]['ansible_nodename'] }} {{ hostvars[host]['ansible_hostname'] }}
{% endfor %}
Мне это как раз помогло)
источник

VZ

Vladimir Zhurkin in Ansible
изучайте джинжда
источник

A

Anton in Ansible
Это не подходит, вы же сами сказали, массив заканчивается и ни в какой until оно не пойдет
источник

VZ

Vladimir Zhurkin in Ansible
ну сделайте себе что бы не заканчивался
источник

A

Anton in Ansible
Красиво сделать не получится, я понял)
источник

VZ

Vladimir Zhurkin in Ansible
Не знаю как по мне нормально можно Надо только поизучать
источник

TG

Timur Gadiev in Ansible
Щас, погодите
источник

TG

Timur Gadiev in Ansible
Я что-то такое делал раньше
источник

TG

Timur Gadiev in Ansible
Anton
Есть массив ['1.1.1.1', '1.1.1.2', '1.1.1.3', '1.1.1.4']. Есть домены a.ru, b.ru, c.ru, d.ru, e.ru, f.ru.
Нужно
a.ru - '1.1.1.1'
b.ru - '1.1.1.2'
c.ru - '1.1.1.3'
d.ru - '1.1.1.4'
e.ru - '1.1.1.1'
f.ru - '1.1.1.2'
И так далее. Так же я могу дополнить массив ip. Так же я хочу назначать доменам по n ip.
a.ru - '1.1.1.1' '1.1.1.2'
b.ru - 1.1.1.3'  '1.1.1.4'
c.ru - '1.1.1.1' '1.1.1.2'
d.ru - 1.1.1.3' '1.1.1.4'
e.ru - '1.1.1.1''1.1.1.2'
f.ru - 1.1.1.3'  '1.1.1.4'
vars:
 domain_list:
   - a.ru
   - b.ru
   - c.ru
   - d.ru
   - e.ru
   - f.ru
 ip_list:
   - '1.1.1.1'
   - '1.1.1.2'
   - '1.1.1.3'
   - '1.1.1.4'

- name: Debug combined list
 debug:
   var: >-
     (domain_list | zip(ip_list)
     + domain_list[ip_list|length:] | zip(ip_list))
     | map('join', ' ')
источник

TG

Timur Gadiev in Ansible
Выхлоп:


TASK [Debug combined list] ****************
ok: [localhost] =>
 (domain_list | zip(ip_list) + domain_list[ip_list|length:] | zip(ip_list)) | map('join', ' '):
 - a.ru 1.1.1.1
 - b.ru 1.1.1.2
 - c.ru 1.1.1.3
 - d.ru 1.1.1.4
 - e.ru 1.1.1.1
 - f.ru 1.1.1.2
источник

A

Anton in Ansible
Чудеса. Благодарю. Сейчас попробую
источник

TG

Timur Gadiev in Ansible
А, не. Это только для короткого списка доменов будет работать
источник

TG

Timur Gadiev in Ansible
Щас посмотрю другой способ
источник

A

Anton in Ansible
Мне еще сутки в этом выражении разбираться
источник

L

Lamobot in Ansible
Timur Gadiev
Щас посмотрю другой способ
Есть тупой способ..
 - set_fact:
     domain_with_ip: '{{ domain_with_ip | default([]) }} + [ "{{ item ~ '' '' ~ ip_list[domain_list.index(item) % ip_list|length ] }}" ]'
   loop: '{{ domain_list }}'
источник

TG

Timur Gadiev in Ansible
Lamobot
Есть тупой способ..
 - set_fact:
     domain_with_ip: '{{ domain_with_ip | default([]) }} + [ "{{ item ~ '' '' ~ ip_list[domain_list.index(item) % ip_list|length ] }}" ]'
   loop: '{{ domain_list }}'
Да ну нафиг
источник

V

Vlad Gor in Ansible
Всем привет! Хочу получить переменную, которая будет содержать параметр "device", но немного не понимаю, что необходимо дописать к var: "hostvars[inventory_hostname].ansible_mounts ", чтоб получить нужный результат.
источник

TG

Timur Gadiev in Ansible
Проще получается:

- name: Debug combined list
 debug:
   var: >-
     domain_list
       | batch(ip_list|length)
       | map('zip', ip_list)
       | flatten(levels=1)
       | map('join', ' ')
источник

A

Anton in Ansible
Lamobot
Есть тупой способ..
 - set_fact:
     domain_with_ip: '{{ domain_with_ip | default([]) }} + [ "{{ item ~ '' '' ~ ip_list[domain_list.index(item) % ip_list|length ] }}" ]'
   loop: '{{ domain_list }}'
Вроде работает, но почему этот способ не очень?
источник

TG

Timur Gadiev in Ansible
Работает со списком доменов domain_list любой длины
источник