#1.Ansible.cnf (環境設定ファイル)について
ansibleコマンドやansible-playbookコマンドを実行するときに参照される各種設定ファイルです。
いろいろな設定がありますが、今回はその一部を紹介します。
2.設定可能なパラメータについて
ansible.cfgのパラメータは初期状態ではすべてコメントアウトされています。
デフォルトの状態では無効になっているため、設定変更を行うためには、コメントアウトを解除し、
設定を行う必要があります。
ansible.cfgで接続可能なパラメータは多岐にわたりますが、最低ライン知っておくとよいかと思われる
物をピックアップして記載します。
詳細は以下を参照してください。
https://docs.ansible.com/ansible/latest/reference_appendices/config.html#ansible-configuration-settings
基本書式
(パラメータ名)=(値)
※コメントアウトするには、#を頭につけます。
・通信に関わる設定
概要 | パラメータ名 | セクション | デフォルト値 | 値 |
---|---|---|---|---|
接続先の SSHポート |
remote_port | [default] | 22 | ポート番号 |
接続先の ユーザー |
remote_user | [default] | ローカル ユーザー |
ユーザー名 |
SSHの引数 | ssh_args | [ssh_connection] | なし | sshコマンドの引数 |
・ログの設定
ansible、ansible-playbook コマンド実行時に標準出力に出力されるメッセージを保存します。
実行時のエビデンスとして利用できます。
概要 | パラメータ名 | セクション | デフォルト値 | 値 |
---|---|---|---|---|
ログ出力先 | log_path | [default] | なし | フルパス指定 |
※log_pathはコメントアウト状態の初期値では、/var/log/ansible.logが
指定されています。これだとrootユーザー以外で実行した場合は出力エラーになるため、
ansibleの環境ディレクトリにlogディレクトリを作るなど、別のディレクトリを選択するることをお勧めします。
・接続後のユーザー変更
概要 | パラメータ名 | セクション | デフォルト値 | 値 |
---|---|---|---|---|
変更実行? | become | [privilege_escalation] | しない | true/false |
ユーザー変更方法 | become_method | [privilege_escalation] | なし | su/sudo |
変更ユーザー | become_user | [privilege_escalation] | なし | ユーザー名 |
変更時のパスワード確認 | become_ask_pass | privilege_escalation] | なし | true/false |
※become_ask_passをfalseにした場合、最初に接続したユーザーと同じパスワードにしておく、
接続先の/etc/sudoers設定などの方法でユーザー切り替え可能にしておく必要があります。
#3.環境設定ファイルの読み込み場所と優先順位
デフォルトではansible.cfg というファイルになります。
ansible、ansible-playbookコマンドを実行する際、環境変数で指定されたパス、/etc/ansible/ansible.cfg の順に見つけられたものを読み込みます。
(参照)Ansibleの環境設定
(参考)https://docs.ansible.com/ansible/latest/cli/ansible-config.html
#4.ansible.cfg で記載された設定値の上書きについて
状況により、ansible.cfgで記載された設定値を変更したい場合がありえます。
こういった場合、ansible.cfgを変更する方法もありますが、一時的であれば以下の方法でも変更できます。
①コマンド引数に変数として定義
ansible、ansible-playbook の引数 -e "変数名" "値" として追記
また、sshの接続ユーザーなどは -U などのオプションで置き換えられます。
②環境変数に定義
export ANSIBLE_(環境変数名英大文字)=(値)で定義
③playbookに記述
すべての項目ではありませんが、実行ユーザーなどの一部の項目については、playbookに記述して指定できます。
(これは自動化処理個別の設定であり、環境変数の変更かといわれると微妙ですが)
以上