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