Ansible : Use Playbook (variables)2024/09/11 |
|
This is the usage of variables in Ansible Playbook. |
|
| [1] | This is the example to use variables. |
|
freebsd@dlp:~ $
vi playbook_sample.yml
- hosts: target_servers
become: yes
become_method: sudo
tasks:
- name: General packages are installed
pkgng:
name: "{{ packages }}"
state: present
vars:
packages:
- curl
- wget
- unzip
tags: General_Packages
ansible-playbook playbook_sample.yml --ask-become-pass BECOME password: PLAY [target_servers] *********************************************************************** TASK [Gathering Facts] ********************************************************************** ok: [10.0.0.52] ok: [10.0.0.51] TASK [General packages are installed] ******************************************************* changed: [10.0.0.51] changed: [10.0.0.52] PLAY RECAP ********************************************************************************** 10.0.0.51 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 10.0.0.52 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 # verify freebsd@dlp:~ $ ansible target_servers -m shell -a "which curl; which wget; which unzip;" 10.0.0.52 | CHANGED | rc=0 >> /usr/local/bin/curl /usr/local/bin/wget /usr/bin/unzip 10.0.0.51 | CHANGED | rc=0 >> /usr/local/bin/curl /usr/local/bin/wget /usr/bin/unzip |
| [2] | When running Playbook, [GATHERING FACTS] task is always executed, it is the function which Ansible gets informations of target hosts and set them in variables. You can refer and use them in Playbooks. If you'd like to confirm which kinds of variables set, it's possible to output with [setup] module like follows. |
|
freebsd@dlp:~ $ ansible 10.0.0.51 -m setup
10.0.0.51 | SUCCESS => {
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"10.0.0.51"
],
"ansible_all_ipv6_addresses": [
"fe80::5054:ff:fec6:38d1%vtnet0"
],
"ansible_apparmor": {
"status": "disabled"
},
"ansible_architecture": "amd64",
"ansible_bios_date": "NA",
"ansible_bios_vendor": "NA",
"ansible_bios_version": "NA",
"ansible_board_asset_tag": "NA",
.....
.....
# example of using variables from [GATHERING FACTS] freebsd@dlp:~ $ vi playbook_sample.yml # refer to [ansible_distribution], [ansible_distribution_version]
- hosts: target_servers
tasks:
- name: Refer to Gathering Facts
command: echo "{{ ansible_distribution }} {{ ansible_distribution_version }}"
register: dist
- debug: msg="{{ dist.stdout }}"
ansible-playbook playbook_sample.yml
PLAY [target_servers] *******************************************************************
TASK [Gathering Facts] ******************************************************************
ok: [10.0.0.52]
ok: [10.0.0.51]
TASK [Refer to Gathering Facts] *********************************************************
changed: [10.0.0.52]
changed: [10.0.0.51]
TASK [debug] ****************************************************************************
ok: [10.0.0.51] => {
"msg": "FreeBSD 14.1"
}
ok: [10.0.0.52] => {
"msg": "FreeBSD 14.1"
}
PLAY RECAP ******************************************************************************
10.0.0.51 : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
10.0.0.52 : ok=3 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
|
| Sponsored Link |