CentOS Stream 9
Sponsored Link

Ansible : Playbook を利用する (変数)2022/07/22

 
Ansible Playbook では変数も利用できます。
[1] 変数の利用例です。[packages] に値を格納し、{{ packages }} で参照しています。
[cent@dlp ~]$
vi playbook_sample.yml
- hosts: target_servers
  become: yes
  become_method: sudo
  tasks:
  - name: General packages are installed
    yum:
      name: "{{ packages }}"
      state: present
    vars:
      packages:
      - tar
      - wget
      - unzip
    tags: General_Packages

[cent@dlp ~]$
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] ******************************************
ok: [10.0.0.51]
ok: [10.0.0.52]

PLAY RECAP *********************************************************************
10.0.0.51                  : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
10.0.0.52                  : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

# 確認

[cent@dlp ~]$
ansible target_servers -m shell -a "which tar; which wget; which unzip;"

10.0.0.52 | CHANGED | rc=0 >>
/usr/bin/tar
/usr/bin/wget
/usr/bin/unzip
10.0.0.51 | CHANGED | rc=0 >>
/usr/bin/tar
/usr/bin/wget
/usr/bin/unzip
[2] Playbook を実行すると、最初に [GATHERING FACTS] タスクが必ず実行されます。 これは対象ホストの情報を収集している処理で、ここで収集された情報は変数に格納されているため、参照して利用することができます。 なお、[GATHERING FACTS] で収集している情報と同じ情報は [setup] モジュールで確認できます。
# GATHERING FACTS の情報は setup モジュールで確認可能

[cent@dlp ~]$
ansible 10.0.0.50 -m setup

10.0.0.50 | SUCCESS => {
    "ansible_facts": {
        "ansible_all_ipv4_addresses": [
            "10.0.0.50"
        ],
        "ansible_all_ipv6_addresses": [
            "fe80::5054:ff:fef6:f1b2"
        ],
        "ansible_apparmor": {
            "status": "disabled"
        },
        "ansible_architecture": "x86_64",
        "ansible_bios_date": "04/01/2014",
        "ansible_bios_vendor": "SeaBIOS",
.....
.....

# GATHERING FACTS 情報の参照例

[cent@dlp ~]$
vi playbook_sample.yml
# [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 }}"

[cent@dlp ~]$
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": "CentOS 9"
}
ok: [10.0.0.52] => {
    "msg": "CentOS 9"
}

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
関連コンテンツ