Ansible×BIG-IP LTM-ansible.cfgの解説

Ansible
スポンサーリンク
スポンサーリンク

関連リンク集

解説

以下のように記述しています。

[defaults]
inventory = ./inventory
host_key_checking = false
ask_vault_pass = false
log_path = ./logs/ansible.log

stdout_callback = yaml
verbosity = 3
pipelining = Truecallbacks_enabled = profile_tasks
callbacks_enabled = profile_tasks

 

[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null

inventory = ./inventory

playbook実行時に参照するインベントリファイルの場所を定義します。通常はplaybookの第一階層にインベントリファイルを置くため./inventoryとしています。また、拡張子.iniは不要です。

host_key_checking = false

Ansibleサーバで一度も接続したことのないターゲットノードの場合、~/.ssh/known_hostsに保存されている公開鍵のチェックをしようとして鍵が存在しないため、証明書に関する警告メッセージが表示され上手く実行されないです。falseとすることで証明書エラーを回避します。

ask_vault_pass = false

ターゲットノードにAnsibleサーバが接続する場合にはターゲットノードのユーザ名とパスワードが必要となります。そのため、パスワードをそのままplaybookに記入するのはセキュリティ上好ましくありません。そのため、vaultという機能を用いることでplaybookではハッシュ化した状態で管理することが可能です。実行時にはパスワード入力が求められます。検証時に毎度パスワードを入力するのは面倒くさいため、ここでは無効化しています。

log_path = ./logs/ansible.log

playbook実行時に出力されるログとログファイル名を定義します。logを保存するためのフォルダlogsを用意しているのでそこを指定します。また、logファイル名もここで指定します。

stdout_callback = yaml

標準出力の出力形式をyaml形式とすることで可読性を高くしています。

verbosity = 3

playbook実行時のログの詳細度を指定します。デフォルト値は0です。ここでは、3を指定します。これによって、ansible-playbook site-yml -vvvのように詳細度を指定せずとも、自動的に-vvv相当の詳細度でログ出力するようになります。

pipelining = True

以下の記事に詳細が書かれています。

callbacks_enabled = profile_tasks

タスク毎の実行結果の所要時間を表示してくれます。どのタスクにどれくらいの時間を使ったのか確認できるのは地味に便利な機能です。

ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null

Ansibleは基本的にはSSHで接続(WindowsはWinRM)します。SSH接続時の設定をここで定義します。

ControlMaster=auto

ControlMaster=autoは、SSHマルチプレキシング(同一のTCPコネクションで同一ターゲットに複数のSSHセッションを張る仕組み)が有効化されていることを指します。これを無効化した場合はplaybookの実行速度が有意に遅くなるようです。

ControlPersist=60s

SSH接続のタイムアウト値です。デフォルトが60sとなります。

StrictHostKeyChecking=no

noを指定することで、~/.ssh/known_hostsにターゲットノードの公開鍵がない場合でも無条件で接続するようにしています。検証環境のため信頼できるホストと分かり切っているため無効化していますが、要件に応じて有効化してください。

UserKnownHostsFile=/dev/null

/dev/nullを指定することで、~/.ssh/known_hostsにターゲットノードの公開鍵が保存されないようにします。それによって、検証環境のVMを再度構築した場合などでも公開鍵のフィンガープリント不一致による接続エラーを防ぐことが可能です。検証環境のため信頼できるホストと分かり切っているため無効化していますが、要件に応じては削除してください。

紹介した以外にも沢山ありますので、以下の公式ドキュメントをご参照ください。

コメント

タイトルとURLをコピーしました