ansible.cfgのパラメータについて気になることがあって調べていたのですが、日本語の情報が少ないと感じたのでまとめてみようと思いました。
下記に示したのは、stable-2.2にサンプルとして入っているansible.cfgから値を抜き出しています。(実際にはここに書いてないパラメータなどもいろいろあります)
バージョンによっては使えないものがあったり、デフォルトの値が違う場合もあるので注意してください。
defaultsセクション
| パラメータ | 項目 | デフォルト値 | 備考 |
|---|---|---|---|
| inventory | インベントリのパスを指定 | /etc/ansible/hosts | -iで指定可能 |
| library | 自作モジュールを読み込ませる場合にパスを指定 | /usr/share/ansible | -Mで指定可能 |
| remote_tmp | リモートホストのtmpディレクトリを指定(リモートホストで実行されるスクリプトが一時的に配置される) | $HOME/.ansible/tmp | ANSIBLE_KEEP_REMOTE_FILES=1を指定するとtmpファイルを削除しない local_actionでローカルに対してスクリプトを配置する際も、このパラメータで指定したローカルのディレクトリが適用される |
| local_tmp | リモートにモジュールを転送する前に、必要な変数等を一時的に格納するディレクトリを指定 | $HOME/.ansible/tmp | |
| forks | 並列実行する数を指定 | 5 | |
| poll_interval | 非同期タスク用のインターバルを指定 | 15 | |
| sudo_user | sudoで実行するユーザを指定 | root | |
| ask_sudo_pass | ssh時のsudoのパスワードを聞くかどうかを指定 | False | True or False(yes or no) |
| ask_pass | ssh時にパスワードを対話的に入力するかを指定 | False | True or False(yes or no) |
| transport | sshの接続設定を指定 | smart | smart:ControlPersist(OpenSSH5.6以上の場合)が利用可能な場合はOpenSSHを使い、そうでない場合はparamikoを使う paramiko: paramikoを使う |
| remote_port | リモートのポート番号を指定 | 22 | |
| module_lang | モジュール間のやりとりで使う言語を指定 | (Ansible実行マシンと同様の値、セットされていない場合はen_US.UTF-8, 古いバージョンではC) | |
| module_set_locale | ロケール変数の設定の可否を指定 | False | Ansible2.1で追加されたパラメータで、2.1ではデフォルトの値はTrue |
| gathering | 対象ホストの情報を集めるか否かを指定 | smart | smart: 対象ホストの情報を収集するが、すでに収集済みの場合は収集しない implicit: 対象ホストの情報を収集する。不要な場合はgather_facts: Falseを指定する explicit: 対象ホストの情報を収集しない。必要な場合はgather_facts: Trueを指定する |
| gather_subset | 対象ホストの収集する情報を指定する | all | all: 全ての情報 network: ネットワークに関連する情報 hardware: ハードウェアに関連する情報 virtual: 仮想マシンに関連する情報 ohai: ohaiから収集できる情報 facter: facterから収集できる情報 |
| gather_timeout | ホストから情報を収集する場合のタイムアウト値を指定 | 30 | |
| roles_path | 別のplaybook等のroleを使う場合にパスを指定 | /etc/ansible/roles | playbook内のrolesディレクトリ配下は自動で読み込まれる |
| host_key_checking | known_hostsのkeyをチェックするかを指定 | True | known_hostsの情報が変わった場合等、Trueにしているとエラーとなる |
| stdout_callback | デフォルトのコールバックを指定 | skippy | |
| callback_whitelist | 上記で指定したコールバック以外を有効にしたりしたい場合に指定 | timer, mail | |
| task_includes_static | タスクを静的にincludeするかを指定 | False | Ansible 2.0からは動的にincludeされるようになっている |
| handler_includes_static | ハンドラを静的にincludeするかを指定 | False | 同上 |
| error_on_missing_handler | ハンドラが存在しない場合にエラーを出力するかを指定 | True | |
| sudo_exe | デフォルトのsudo以外を利用する場合に指定する | sudo | |
| sudo_flags | sudoのオプションを指定 | -H -S -n | |
| timeout | SSHのタイムアウトの時間 | 10 | |
| remote_user | リモートユーザ名を指定 | 指定しない場合、Ansible実行ユーザがデフォルト値となる | |
| log_path | 実行結果のログを保存するパスを指定 | /var/log/ansible.log | Ansible実行ユーザが、指定したディレクトリの権限を持っていないとエラーとなるので注意 |
| module_name | ansibleコマンドの-mオプションで、モジュールを指定しなかった場合に実行されるモジュールを指定 | command | |
| executable | sudo環境で使うシェルを指定 | /bin/bash | |
| hash_behaviour | 同名のハッシュ(Pythonでいう辞書)が複数箇所で宣言されていた場合の挙動を指定 | merge | merge: 結合する replace: 変数の優先度が高い方で上書きされる (参考) Variables |
| private_role_vars | role内で呼び出された変数を他roleでも共有するかを指定する | yes | |
| jinja2_extensions | jinja2のextensionを指定 | jinja2.ext.do,jinja2.ext.i18n | |
| private_key_file | SSH接続で使う秘密鍵のファイルのパスを指定 | /path/to/file | |
| vault_password_file | Vaultパスワードファイルのパスを指定 | /path/to/vault_password_file | |
| ansible_managed | templateモジュールで操作するファイルに挿入する文字列を指定 | Ansible managed | |
| display_skipped_hosts | skippedになったタスクを表示するかを指定 | True | |
| display_args_to_stdout | 各タスクで使われる変数を表示するかを指定する | False | セキュリティ上の理由からデフォルトではオフになっている |
| error_on_undefined_vars | 未定義の変数が存在した場合に、エラーでタスクを中断するかを指定 | True | |
| system_warnings | システムに関する警告を出力するかを指定 | True | |
| deprecation_warnings | Deprecation(古いバージョンの文法等で記載されており、将来的に使えなくなる可能性のある表記)が存在する場合に、警告を表示するかを指定 | True | 表示しておかないと、Ansibleのバージョンアップをした際に急にエラーになることも… |
| command_warnings | commandモジュールで指定したコマンドが、既にモジュールとして存在している場合に警告を出すか指定(例えば、commandモジュールでserviceコマンドを実行する場合など) | True | |
| action_plugins | action_pluginsのコードを配置するパスを指定 | /usr/share/ansible/plugins/action | |
| cache_plugins | cache_pluginsのコードを配置するパスを指定 | /usr/share/ansible/plugins/cache | |
| callback_plugins | callback_pluginsのコードを配置するパスを指定 | /usr/share/ansible/plugins/callback | |
| connection_plugins | connection_pluginsのコードを配置するパスを指定 | /usr/share/ansible/plugins/connection | |
| lookup_plugins | lookup_pluginsのコードを配置するパスを指定 | /usr/share/ansible/plugins/lookup | |
| inventory_plugins | inventory_pluginsのコードを配置するパスを指定 | /usr/share/ansible/plugins/inventory | |
| vars_plugins | vars_pluginsのコードを配置するパスを指定 | /usr/share/ansible/plugins/vars | |
| filter_plugins | filter_pluginsのコードを配置するパスを指定 | /usr/share/ansible/plugins/filter | |
| test_plugins | test_pluginsのコードを配置するパスを指定 | /usr/share/ansible/plugins/test | |
| strategy_plugins | strategy_pluginsのコードを配置するパスを指定 | /usr/share/ansible/plugins/strategy | |
| strategy | Ansibleの実行方式を指定する | linear | linear: ホスト間で同期をとってタスクを進行する free: ホスト間で同期をとらず、タスクが早く終わったホストから先のタスクに進む |
| bin_ansible_callbacks | ansibleコマンドを実行した際にコールバックをロードするかを指定 | False | |
| nocows | ログをcowsayで出力するかを指定 | 1 | 0: 無効 1: 有効 1に設定していてもcowsayをインストールしていないと意味がありません |
| cow_selection | cowsayの種類を指定 | default | |
| nocolor | 実行結果に色をつけるかを指定 | 0 | 0:色つけ有り 1: 色つけなし(ANSIBLE_NOCOLOR=1でも同様の挙動) |
| fact_caching | factのキャッシュ先を指定 | 無効 | redis, memcached, memory, jsonfile |
| retry_files_enabled | タスクが失敗した場合に.retryファイルを作成するかどうかを指定 | True | |
| retry_files_save_path | .retryファイルを作成する場合のパスを指定 | 失敗したタスクを実行したPlaybookと同様のパス | |
| squash_actions | with_で値を渡した際に、ループを回さずに1回で実行したいモジュールがある場合に指定(yum install xxx, yum install yyy -> yum install xxx, yyyとなるようなイメージ | apk,apt,dnf,homebrew,pacman,pkgng,yum,zypper | |
| no_log | ログを出力するか指定 | false | セキュリティの観点から出力したくない場合等に使う |
| no_target_syslog | targetでログを出力させない設定…だと思うんですが、いまいちわかりませんでした、すいません | False | |
| allow_world_readable_tmpfiles | Ansibleで実行するスクリプトを全ユーザに読み取り権限を付与するかを指定 | False | Ansible2.1からは管理者権限がないユーザでは、リモートに配置するスクリプトにアクセスできなくなった。このパラメータを設定することで、以前のバージョンのように、管理者権限がないユーザでも実行できるようになる |
| var_compression_level | 変数の圧縮レベルを指定 | 0 | 0〜9を指定 0:圧縮なし 9: zlibで圧縮 |
| module_compression | moduleの圧縮レベルを指定 | ZIP_DEFLATED | ZIP_STORED:圧縮なし ZIP_DEFLATED: zlibで圧縮 |
| merge_multiple_cli_flags | 複数のタグを認識するかを指定 | True: 全てのタグを認識してタスクを実行 False: 最後に指定したタグのタスクを実行 |
privilege_escalationセクション
| パラメータ | 項目 | デフォルト値 | 備考 |
|---|---|---|---|
| become | 管理者権限(su or sudo)でタスクを実行するかを指定 | False | |
| become_method | 管理者権限を使うためのコマンドを指定 | sudo | su, pbrun, pfexec, doas, ksu |
| become_user | 管理者権限を持っているどのユーザになるかを指定 | root | |
| become_ask_pass | 管理者権限になるためにパスワードを聞くかを指定 | False |
paramiko_connectionセクション
| パラメータ | 項目 | デフォルト値 | 備考 |
|---|---|---|---|
| record_host_keys | known_hostsにキーを登録するかを指定 | True | host_key_checkingもTrueにしていないと意味がない |
| pty | 擬似端末を使うかどうかを指定 | True |
ssh_connectionセクション
| パラメータ | 項目 | デフォルト値 | 備考 |
|---|---|---|---|
| ssh_args | sshの引数を指定 | -C -o ControlMaster=auto -o ControlPersist=60s | |
| control_path_dir | control pathソケットを保持するパスを指定 | /tmp/.ansible/cp | |
| pipelining | sshを多重化するかを指定 | False | 多重化するとスクリプトの転送が早くなるが、requirettyを無効にする必要があるため、デフォルトではFalseになっている |
| scp_if_ssh | scpでファイルを転送するかを指定 | smart | True: scpのみ False: sftpのみ smart: 通常はsftpを使い、sftpが使えない場合はscpを使う |
| stfp_batch_mode | sftpのバッチモードを使うかを指定 | False |
accelerateセクション
| パラメータ | 項目 | デフォルト値 | 備考 |
|---|---|---|---|
| accelerate_port | accelerateモードで使用するポートを指定 | 5099 | accelerateモードとは、Ansible独自のデーモンを通じてデータを転送することで、速度を向上させるモード |
| accelerate_timeout | accelerateモードのタイムアウト値を指定 | 30 | |
| accelerate_connect_timeout | accelerateモードの接続タイムアウト値を指定 | 5.0 | |
| accelerate_daemon_timeout | accelerateモードのデーモンの生存期間を分単位で指定 | 30 | |
| accelerate_multi_key | デーモンに複数の鍵を登録するかどうかを指定 | yes |
selinuxセクション
| パラメータ | 項目 | デフォルト値 | 備考 |
|---|---|---|---|
| special_context_filesystem | ファイルシステム依存のセキュリティコンテキストがある場合に、そのファイルシステムを指定 | nfs,vboxsf,fuse,ramfs | |
| libvirt_lxc_noseclabel | libvirtがLXCに接続するのを許可するかを指定 | False |
colorsセクション
| パラメータ | 項目 | デフォルト値 | 備考 |
|---|---|---|---|
| verbose | ログの詳細表示を出力する色を指定 | blue | |
| warn | 警告のログを出力する色を指定 | bright purple | |
| error | エラーのログを出力する色を指定 | red | |
| debug | debugのログを出力する色を指定 | dark gray | |
| deprecate | deprecateのログを出力する色を指定 | purple | |
| skip | skipのログを出力する色を指定 | cyan | |
| unreachable | targetに到達できなかった場合のログを出力する色を指定 | red | |
| ok | OKのログを出力する色を指定 | green | |
| changed | changedのログを出力する色を指定 | yellow | |
| diff_add | 増分のログを出力する色を指定 | green | |
| diff_remove | 差分のログを出力する色を指定 | red | |
| diff_lines | 変化分の行を出力する色を指定 | cyan |