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 ./collectionsansible-galaxy collection install ansible.netcommon -p ./collectionsansible-galaxy collection install ansible.utils -p ./collectionsNå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 -kJeg 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