今回はansible-playbook
を実行するときに毎回実行されるGathering Facts
を実行しないように設定してみたいと思います。
(意外と実行に時間がかかってるようなきがするので)
そもそもGathering Facts
ってなにやってんの?
ターゲットノードのメタデータ(IPアドレスからCPUやディスクの情報)を取得してくれています。
ちなみにこの取得したデータのことをファクト変数といいます。
設定方法
設定する方法はかんたんです。
playbookに以下のように設定してあげるだけ
gather_facts: no
デフォルトではgather_facts: yes
と設定されているのと同じですので明示的にno
と設定してあげます。
動作を見てみる
こんなかんじの超単純なplaybookを実行してみます。
gather_facts_no.yml
- hosts: localhost gather_facts: no
実行結果
Gathering Facts
が実行されていないことがわかります。
$ ansible-playbook -i ansible_hosts gather_facts_no.yml PLAY [localhost] ******************************************************************************************************* PLAY RECAP *************************************************************************************************************
補足: Gathering Factsの実行時間検証
gather_facts
の実行ありなしをtime`コマンドで実行時間を比較してみる。
だいたいこんなかんじ。
gather_facts: yes
real 0m1.690s user 0m1.312s sys 0m0.076s
gather_facts: no
real 0m1.036s user 0m0.960s sys 0m0.056s
まあ微々たるものですね…
おわりに
確実にファクト変数をつかわないのであればgather_facts: no
に設定したほうがいいんじゃないかなぁとは思います。
- 作者: 若山史郎
- 発売日: 2014/07/30
- メディア: Kindle版
- この商品を含むブログ (2件) を見る