Size: a a a

2021 March 18

GG

George Gaál in Ansible
Слушай, а как ты определяешь какая та самая машина
источник

AS

Aleksandr Strogonov in Ansible
ставлю факт, только для этой тачки в block
источник

AS

Aleksandr Strogonov in Ansible
я и вижу по выполнению, что таска выполнилась только на одной тачке.
но после block, у всех машин факт test == 1, а должно быть test == 0
источник

t

tsla in Ansible
что не так ?
источник

TG

Timur Gadiev in Ansible
tsla
что не так ?
Синтаксис
источник

TG

Timur Gadiev in Ansible
Вы представляете, что такое словарь в Yaml?
источник

t

tsla in Ansible
Timur Gadiev
Вы представляете, что такое словарь в Yaml?
можно на ты

и как это оформить в лучшем виде?
источник

TG

Timur Gadiev in Ansible
tsla
можно на ты

и как это оформить в лучшем виде?
Во-первых, выкиньте на помойку строчный синтаксис
источник

TG

Timur Gadiev in Ansible
Как нужно нормально писать вызовы модуля, в документации можете посмотреть
источник

TG

Timur Gadiev in Ansible
Там практически нигде нет строчного синтаксиса
источник

GG

George Gaál in Ansible
Aleksandr Strogonov
я и вижу по выполнению, что таска выполнилась только на одной тачке.
но после block, у всех машин факт test == 1, а должно быть test == 0
Да, так и задумано вроде как
источник

GG

George Gaál in Ansible
Посмотри доку на run_once
источник

AS

Aleksandr Strogonov in Ansible
Boolean that will bypass the host loop, forcing the task to attempt to execute on the first host available and afterwards apply any results and facts to all active hosts in the same batch.

мать моя
источник

AS

Aleksandr Strogonov in Ansible
тогда вообще легко
источник

AS

Aleksandr Strogonov in Ansible
- block:

 - name: current machine
   set_fact:
     skip_node: "{{ ansible_host }}"

 - name: echo 1
   shell: echo 1

 run_once: true

- name: echo 2
 shell: |
   echo 2
 when: skip_node != ansible_host
источник

AS

Aleksandr Strogonov in Ansible
tsla
- name: "run on first found host"
 template: >
   src=mastersrv.conf
   dest=/etc/whisky/main.conf owner=root group=root mode=0600
 shell: systemctl restart whisky
 run_once: true

- name: "run on other hosts execpt first found host"
 template: >
   src=slave.conf
   dest=/etc/whisky/main.conf owner=root group=root mode=0600
 shell: systemctl restart whisky
- block:

 - name: mastersrv server
   set_fact:
     skip_server: "{{ ansible_host }}"

 - name: "run on first found host"
   template:
     src: mastersrv.conf
     dest: /etc/whisky/main.conf
     owner: root
     group: root
     mode: 0600
   notify:
   - restart whisky

 run_once: true

- name: "run on other hosts execpt first found host"
 template:
   src: slave.conf
   dest: /etc/whisky/main.conf
   owner: root
   group: root
   mode: 0600
 when: skip_server != ansible_host
 notify:
 - restart whisky

а таску по рестарту whisky помести в handlers
источник

L

Lamobot in Ansible
Может проще сделать уже две группы? мастер и все остальные хосты?
источник

VL

Victor Litvin in Ansible
Aleksandr Strogonov
- block:

 - name: mastersrv server
   set_fact:
     skip_server: "{{ ansible_host }}"

 - name: "run on first found host"
   template:
     src: mastersrv.conf
     dest: /etc/whisky/main.conf
     owner: root
     group: root
     mode: 0600
   notify:
   - restart whisky

 run_once: true

- name: "run on other hosts execpt first found host"
 template:
   src: slave.conf
   dest: /etc/whisky/main.conf
   owner: root
   group: root
   mode: 0600
 when: skip_server != ansible_host
 notify:
 - restart whisky

а таску по рестарту whisky помести в handlers
А такого рода плейбук не принесет проблем что "первый" хост в общем случае будет разным?
источник

VS

Vladislav 👻 Shishkov... in Ansible
Lamobot
Может проще сделать уже две группы? мастер и все остальные хосты?
Там без групп хотели, почему-то...
источник

VS

Vladislav 👻 Shishkov... in Ansible
Victor Litvin
А такого рода плейбук не принесет проблем что "первый" хост в общем случае будет разным?
И да, плейбук не идемпотентный
источник