2023年4月2日日曜日

Ansibleの設定ファイル「ansible.cfg」概要

Ansibleでいくつか実行時の動作を変更することができる。例えば、Playbookを実行する際に、標準出力だけでなくテキストファイルにもログを出力させたりすることができる。

本記事では、Ansibleの設定ファイル「ansible.cfg」について設定方法と設定内容を記載する。

ansible.cfgについて

ansible.cfgの説明は公式のマニュアルにも記載されている。

ansible.cfgは複数の配置場所を選択することができる。以下に配置されているファイルについて上から順に検索され、最初に見つかったansible.cfgの設定のみが反映され、他のファイルの設定は無視される。

  • 環境変数ANSIBLE_CONFIGで指定したパス
  • カレントディレクトリのansible.cfg
  • ホームディレクトリの~/.ansible.cfg
  • /etc配下の/etc/ansible/ansible.cfg

ansible.cfgの生成

ansible.cfgはテキストファイルなので手書きで作成してもよいが、コマンドで初期ファイルを作成することもできる。ただし、1000行以上となる長いファイルとなるため可読性は低いので、どのようなオプションがあるか一覧として表示させる際に利用するなどするとよい。

実行コマンドは以下の通り。

# ansible-config init --disabled -t all > ansible.cfg
# ls -l
合計 56
-rw-r--r-- 1 root root 54413  3月 21 11:21 ansible.cfg

ansible.cfgの設定項目

個人的によく使う設定項目

ansible.cfgの設定値は非常に多くあるが、その中でも個人的によく使う設定値を以下に記載する。

設定項目 説明
display_args_to_stdout Playbookのタスク実行時に、設定したパラメータを表示する。実際の表示例は後述する。
forks 複数のホストに対する処理の同時実行数。デフォルト5台と少なめになっているので、この値を増加させることで処理の高速化が期待できる。
host_key_checking SSH接続時の警告メッセージを無視する設定。例えば、今までSSH接続したことがないホストにSSH接続すると、本当に接続して問題ないか確認する警告メッセージが表示されてしまうが、その警告が出た場合でも接続を続行することができる。
log_path Ansibleの実行ログを出力するログのパスをファイル名まで含め指定する。
nocolor 通常、Ansibleの実行結果は、okが緑、changedが黄色、failedが赤と色付けされて表示がされる。この色付けを無効化したい場合はTrueで設定する。
vault_password_file Ansible Vaultが読み込むパスワードファイルを指定する。

display_args_to_stdout設定時の表示

display_args_to_stdoutを設定しない場合(デフォルト)と設定した場合の表示の違いを以下に記載する。設定した場合は、各タスクの行において設定しているパラメータが表示されていることがわかる。

display_args_to_stdout未設定時(デフォルト)

TASK [Install yum-utils] ****************************************************************************************************************************************************************************************************
ok: [t1051kube]

TASK [Check existence of docker-ce.repo] ************************************************************************************************************************************************************************************
ok: [t1051kube]

display_args_to_stdout設定時

TASK [Install yum-utils name=yum-utils, disablerepo=dvd*, state=present] ****************************************************************************************************************************************************
ok: [t1051kube]

TASK [Check existence of docker-ce.repo _raw_params=ls -l "/etc/yum.repos.d/docker-ce.repo"] ********************************************************************************************************************************
ok: [t1051kube]

ansible.cfg設定例

最後に、ansible.cfg設定例を記載する。display_args_to_stdoutは通常は無効で利用しており、必要な場合のみ有効にすることから、通常はコメントアウトして利用している。

[defaults]
# display_args_to_stdout = True
forks = 20
host_key_checking = False
log_path = /var/log/ansible/ansible_test.log
# nocolor = True
vault_password_file = .vault_pass

Ansibleの設定ファイル「ansible.cfg」に関する説明は以上となる。

0 件のコメント:

コメントを投稿

人気の投稿