Ansible-Navigator Playbook Handlers

Ansible-Navigator Playbook Handlers


I denne bloggposten skal vi se på hvordan vi kan bruke handlers i playbook.
Handlers er en type task som kun kjøres når en task har endret noe.
I playbooken under så ser vi at vi har en task som endrer tidssonen.
Hvis tasken har endret noe så kjører handler tasken.

---
- name: Sett riktig tidssone
  hosts: IOS_XE_switcher
  gather_facts: false


  tasks: 

    - name: Sett tidssone
      cisco.ios.ios_config:
        lines:
          - clock timezone CET 1 0
          - clock summer-time CEST recurring last Sun Mar 2:00 last Sun Oct 3:00
      notify: Lagre_konfig_handler

  handlers:
  
    - name: Lagre_konfig_handler
      cisco.ios.ios_config:
        save_when: always
                    

I dette tilfellet så kjører ikke handler tasken fordi ingen av taskene har gjort en endring.
[autom8@localhost ansible_naviagtor]$ ansible-navigator run playbook_time.yaml -i inventory --enable-prompts -k
SSH password: 

PLAY [Sett riktig tidssone] ************************************************************************************************************************************************************

TASK [Sett tidssone] *******************************************************************************************************************************************************************
ok: [IOS_XE_switch_3]
ok: [IOS_XE_switch_4]

PLAY RECAP *****************************************************************************************************************************************************************************
IOS_XE_switch_3            : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
IOS_XE_switch_4            : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0  
                    

Når jeg fjerner timezone fra konfigen til IOS_XE_switch3 og tasken utføres kan vi se at handlers kjører.
[autom8@localhost ansible_naviagtor]$ ansible-navigator run playbook_time.yaml -i inventory --enable-prompts -k
SSH password: 

PLAY [Sett riktig tidssone] ************************************************************************************************************************************************************

TASK [Sett tidssone] *******************************************************************************************************************************************************************
ok: [IOS_XE_switch_4]
changed: [IOS_XE_switch_3]

RUNNING HANDLER [Lagre_konfig_handler] *************************************************************************************************************************************************
changed: [IOS_XE_switch_3]

PLAY RECAP *****************************************************************************************************************************************************************************
IOS_XE_switch_3            : ok=2    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
IOS_XE_switch_4            : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
                    

Handler tasken har kjørt og vi har lagret konfigen til IOS_XE_switch3.