はじめに
Ansible 2.5 から facts は ansible_facts.* という名前空間配下でも参照可能になりました。
例
ansilbe_distributionであればansible_facts.distributionでも参照可能
ansilbe_nodenameであればansible_facts.nodenameでも参照可能
そのため、ansible_facts を参照すると、配下の facts の一覧を取得できます。
サンプル Playbook
- hosts: webservers gather_facts: yes tasks: - name: facts debug: msg: "{{ ansible_facts }}"
実行結果
$ ansible-playbook -i inventory junos_test.yml --tag=d
PLAY [webservers] ***************************************************
TASK [Gathering Facts] *******************************************************
ok: [172.16.0.1]
TASK [facts list] ************************************************************
ok: [172.16.0.1] => {
"msg": {
"all_ipv4_addresses": [
"172.17.0.1",
"172.16.0.9",
"10.0.2.15"
],
"all_ipv6_addresses": [
"fe80::42:75ff:fe85:****",
"fe80::a00:27ff:fe74:****",
"fe80::5054:ff:feda:****"
],
"ansible_local": {},
"apparmor": {
"status": "disabled"
},
"architecture": "x86_64",
"bios_date": "12/01/2006",
"bios_version": "VirtualBox",
(略)
"userspace_bits": "64",
"virtualization_role": "guest",
"virtualization_type": "virtualbox"
}
}
PLAY RECAP *****************************************************************
172.16.0.1 : ok=2 changed=0 unreachable=0 failed=0
まとめ
既存の ansible_ というプレフィックよりも ansible_facts という名前空間で整理されているほうが、まとめて処理がしやすいので使いやすいと感じました。
- 参考リンク