はじめに
gather_facts のデフォルトは true です。つまり、各種システム情報はデフォルトで収集されます。
実際のところは、お決まりのように gather_facts: false を指定して無効にするケースのほうが多いのではないでしょうか。
デフォルトの挙動は DEFAULT_GATHERING という設定項目で変更できます。
デフォルトを無効にして挙動を試してみます。
パターン1: gathering=explicit、gather_facts 指定なし
ansible.cfg に以下の設定を追加します。
[defaults] gathering=explicit
gathering が、設定項目 DEFAULT_GATHERINGを ansible.cfg で指定するときのキー名です。環境変数の場合は ANSIBLE_GATHERING。
デフォルトは implicit で、gather_facts: false しない限り暗黙的に収集します。
上記で指定した explicit は implicit の逆です。gather_facts: true しない限り収集しません。
Playbook は以下。gather_facts は指定しませんが、先の設定により収集しない動作を期待します。
--- - hosts: rt01 tasks: - name: debug: msg: hello
実行。ファクトの収集はされず、GATHERING_FACTS もログに表示されません。ok=1 です。
$ ansible-playbook -i ../inventory.ini collections.yml
PLAY [rt01] *****************************************************************************************
TASK [debug] ****************************************************************************************
ok: [rt01] => {
"msg": "hello"
}
PLAY RECAP ******************************************************************************************
rt01 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
パターン2: gathering=explicit、gather_facts: true
ansible.cfg は
[defaults] gathering=explicit
のままにして、Playbook 側で gather_facts: true を指定します。
--- - hosts: rt01 gather_facts: true # 明示的に true 指定 tasks: - name: debug: msg: hello
実行。ファクト収集がされ、Gathering Facts がログに表示されました。ok=2 です。
$ ansible-playbook -i ../inventory.ini collections.yml
PLAY [rt01] ***************************************************************************************************
TASK [Gathering Facts] ****************************************************************************************
TASK [debug] **************************************************************************************************
ok: [rt01] => {
"msg": "hello"
}
PLAY RECAP ****************************************************************************************************
rt01 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
おわりに
都度都度 gather_facts: false を指定するのがつらいときはデフォルトを変更してしまうのも手かもしれません。ただ、初見だと不思議におもられる可能性があるため少し注意です。