Ansible Roller
Ansible roller er en måte å organisere playbooks på.
Det finnes to måter å installere roller på
Den første er å lage en requirements.yml fil og refere til et git repository.
Den andre er å bruke ansible-galaxy kommandoen.
Ansible-galaxy init
Kommandoen ansible-galaxy init lager en mappestruktur for en ny rolle.
Kommandoen lager mappe strukturen i den mappen du står i.
Du må legge roller i en mappe som heter roles.
ansible-galaxy init core - Role core was created successfully
mkdir roles && ansible-galaxy init roles/core - Role roles/core was created successfully
tree └── roles └── core ├── README.md ├── defaults │ └── main.yml ├── files ├── handlers │ └── main.yml ├── meta │ └── main.yml ├── tasks │ └── main.yml ├── templates ├── tests │ ├── inventory │ └── test.yml └── vars └── main.yml
Playbook som kaller på rolle
--- - name: playbook_rolle_collapsed_core hosts: collapsed_core roles: - collapsed_core
collapsed_core: children: IOS_XE_switcher:
ansible-playbook playbook_rolle_collapsed_core.yaml -k SSH password: PLAY [playbook_rolle_collapsed_core] *************************************************************************************************************************************************************************************************** TASK [Gathering Facts] ***************************************************************************************************************************************************************************************************************** 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
--- - name: Ping gateway ios_ping: dest: 10.170.0.1 count: 1
--- - name: Aktiver LLDP cisco.ios.ios_lldp_global: config: holdtime: 10 enabled: true reinit: 3 timer: 10 state: merged
--- - name: Ping gateway ios_ping: dest: 10.170.0.1 count: 1 - name: Aktiver LLDP import_tasks: lldp.yaml tags: lldp
ansible-playbook playbook_rolle_collapsed_core.yaml -k SSH password: PLAY [playbook_rolle_collapsed_core] *************************************************************************************************************************************************************************************************** TASK [collapsed_core : Ping gateway] *************************************************************************************************************************************************************************************************** ok: [IOS_XE_switch_3] ok: [IOS_XE_switch_4] TASK [collapsed_core : Aktiver LLDP] *************************************************************************************************************************************************************************************************** changed: [IOS_XE_switch_3] changed: [IOS_XE_switch_4] PLAY RECAP ***************************************************************************************************************************************************************************************************************************** IOS_XE_switch_3 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 IOS_XE_switch_4 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0