Size: a a a

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

2021 February 16

TG

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

ВК

Виталий Калюжняк... in ansible — русскоговорящее сообщество
Всем привет.
Можете подсказать как мне сделать notify handler на каждый таск.

Структура такая:

- name: Test
 block:
   - name: Configure Nginx vhost
     become: yes
     template:
       src: vhost.j2
       dest: "/etc/nginx/conf.d/{{ vhost_name }}.conf"
       owner: root
       group: root
     notify: Slack 0
     changed_when: true

   - name: Reload Nginx
     become: yes
     service:
       name: nginx
       state: reloaded
     notify: Slack 0
     changed_when: true

   - name: Configtest Nginx
     become: yes
     shell: "/usr/sbin/nginx -t"
     notify: Slack 0
     changed_when: true

 rescue:
  - name: make sure all handlers run
    meta: flush_handlers
    notify: Slack 1


В данном случае срабатывает только при последнем таске, то есть 1 раз, а нужно 3.
При фейле все равно срабатывает Slack 0, хотя в rescue стоит Slack 1.
ЧЯДНТ?
источник

ВК

Виталий Калюжняк... in ansible — русскоговорящее сообщество
PLAY [all] *************************************************************************************

TASK [proxy_vhost : Configure Nginx vhost] *****************************************************
changed: [192.168.172.96]

TASK [proxy_vhost : Reload Nginx] **************************************************************
changed: [192.168.172.96]

TASK [proxy_vhost : Configtest Nginx] **********************************************************
changed: [192.168.172.96]

RUNNING HANDLER [proxy_vhost : Slack 0] ********************************************************
ok: [192.168.172.96]

PLAY RECAP *************************************************************************************
192.168.172.96             : ok=4    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Виталий Калюжняк
Всем привет.
Можете подсказать как мне сделать notify handler на каждый таск.

Структура такая:

- name: Test
 block:
   - name: Configure Nginx vhost
     become: yes
     template:
       src: vhost.j2
       dest: "/etc/nginx/conf.d/{{ vhost_name }}.conf"
       owner: root
       group: root
     notify: Slack 0
     changed_when: true

   - name: Reload Nginx
     become: yes
     service:
       name: nginx
       state: reloaded
     notify: Slack 0
     changed_when: true

   - name: Configtest Nginx
     become: yes
     shell: "/usr/sbin/nginx -t"
     notify: Slack 0
     changed_when: true

 rescue:
  - name: make sure all handlers run
    meta: flush_handlers
    notify: Slack 1


В данном случае срабатывает только при последнем таске, то есть 1 раз, а нужно 3.
При фейле все равно срабатывает Slack 0, хотя в rescue стоит Slack 1.
ЧЯДНТ?
Нотифай просто активирует хендлеры, но не запускает их
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Вы хотите странного
источник

ВК

Виталий Калюжняк... in ansible — русскоговорящее сообщество
Timur Gadiev
Вы хотите странного
я знаю, но так нужно, поверьте)
источник

TG

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

VC

Vladimir Chernyshev in ansible — русскоговорящее сообщество
Если три одинаковых нотифая сработало, то хэндлер один раз дернется
источник

ВК

Виталий Калюжняк... in ansible — русскоговорящее сообщество
Vladimir Chernyshev
Если три одинаковых нотифая сработало, то хэндлер один раз дернется
а как сделать, что бы хендлер отрабатывал после каждого таска?
источник

ВК

Виталий Калюжняк... in ansible — русскоговорящее сообщество
или другими словами, как мне получать нотификацию после каждого таск (не важно failed, changed или ok)
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Виталий Калюжняк
а как сделать, что бы хендлер отрабатывал после каждого таска?
Вызывать flush_handlers после каждого таска
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Но смысла в этом никакого
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
По объёму кода то же самое, что просто сам хендлер скопипастить
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Виталий Калюжняк
или другими словами, как мне получать нотификацию после каждого таск (не важно failed, changed или ok)
А, стоп
источник

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Вы хотите получать инфу в слак о результатах каждого таска?
источник

ВК

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

TG

Timur Gadiev in ansible — русскоговорящее сообщество
Для этого есть callback-плагины соответствующие:
https://docs.ansible.com/ansible/latest/collections/community/general/slack_callback.html
источник

ВК

Виталий Калюжняк... in ansible — русскоговорящее сообщество
Timur Gadiev
Для этого есть callback-плагины соответствующие:
https://docs.ansible.com/ansible/latest/collections/community/general/slack_callback.html
Спасибо, похоже на то что нужно) попробую
источник

A

Alexey Yamschikov in ansible — русскоговорящее сообщество
Всем привет
Подскажите такую вот вещь
Есть конфиг для хоста
Хочу накатить этот же конфиг в докер контейнере - есть идеи как правильно это всё сделать?
источник

VC

Vladimir Chernyshev in ansible — русскоговорящее сообщество
скопировать в образ пофиксив нюансы для докера
источник