Ansible-Navigator Run Playbooks

Ansible-Navigator Run Playbooks


For å kjøre playbook med ansible-navigator så legger vi på run.
ansible-navigator run playbook.yml
Start med å lage en playbook.yml fil.


---
- name: Sett riktig tidssone
  hosts: IOS-XE-switcher
  gather_facts: false

  tasks: 

    - name: Sett tidssone
      cisco.ios.ios.commands:
        commands: 
          - clock timeclock timezone CET 1
          - clock summer-time CEST recurring last Sun Mar 2:00 last Sun Oct 3:00
      state: merged
                 

Før vi prøver å kjøre playbooken så kan det være lurt å sjekke om collections er installert og kanskje ta en titt på dokumentasjonen.
Når vi nå starter ansible-navigator så kommer vi ikke lengre til TUI (Text User Interface)
Når vi opprtettet en ansible-navigator effective så fikk vi opprettet en ansible-navigator.yaml fil.
Et av feltene som vi kan endre på er mode som når står til stdout.
Jeg endrer det til interactive og endrer app til welcome.
Da får du tilbake den samme TUI som vi startet med.
app: welcome
mode: interactive # stdout for å gå vekk fra TUI
                    

Når jeg sjekker ansible-navigator collections så ser jeg at cisco.ios ikke er installert.
ansible.netcommon og ansible.utils er heller ikke installert.

Jeg installerer cisco.ios collection som jeg har gjort før med kommandoen.
ansible-galaxy collection install cisco.ios
Når jeg sjekker ansible-navigator collections igjen så ser jeg at cisco.ios ikke installert.
Collections må installeres ved å legge dem til i en mappa som heter collections.

ansible-galaxy collection install cisco.ios -p ./collections
ansible-galaxy collection install ansible.netcommon -p ./collections
ansible-galaxy collection install ansible.utils -p ./collections

Når vi senere skal kjøre playbooken fra AWX er vi anhengig av at collections er installert.
Da kan vi legge til en collections/requirements.yaml fil.

---

collections:
  - name: cisco.ios
    version: 9.0.0
  - name: ansible.netcommon
    version: 7.0.0
  - name: ansible.utils
    version: 5.0.0
                     

Samtidig legger jeg inn i .gitignore at collections skal ignoreres, men ikke requirements.yaml.
!collections/requirements.yml
collections
                     

Siden vi ikke har laget noen group_vars eller host_vars så må vi legge til noen variabler for å fortelle
hvilken type connection, hvilket os vi kobler mot og hvilket brukernavn vi skal bruke.

  [switcher:vars]
ansible_connection=ansible.netcommon.network_cli
ansible_network_os=cisco.ios.ios
ansible_user=autom8

[rutere:vars]
ansible_connection=ansible.netcommon.network_cli
ansible_network_os=cisco.ios.ios
ansible_user=autom8        
                         

Jeg har laget en playbook som skal sette riktig tidssone på switcher.
  
---
- 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
                         

Når jeg kjører playbooken så blir jeg ikke promptet om passord som jeg forventet.
ansible-navigator run playbook_time.yaml -i inventory -m stdout -k
Jeg må deaktivere playbook-artifacts i ansible-navigation.yaml for å få opp promptet om passord.
Da slipper jeg også alle playbook loggene som blir opprettet for alle playbook som kjøres.
 
                         playbook-artifact:
                         enable: false
                         

Jeg blir nå spurt om passord som normalt.
Du kan også bruke --enable-prompts --ask-pass
--enable-prompts disabler aritfacts og aktivere stdout
 
[autom8@localhost ansible_naviagtor]$ ansible-navigator run playbook_time.yaml -i inventory --enable-prompts -k
SSH password: 

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

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

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