# 5. ansible 設定ファイルの管理

先ほど、アドホックにansibleコマンドを実行した際に、-kオプションを使っていました。 これはansibleを実行する際にsshのパスワードを入力させるというオプションになります。

Ansibleは通常、sshのログインにパスワードなしの鍵認証を想定しているため、オプション無しで実行した場合はsshのパスワードを入力させることはありません。

しかし、今回の演習ではパスワードログインによって実行しています。 従って、毎回-kオプションを付与して実行する必要がありますが、手間になってします。

この章では、Ansibleの動作仕様や設定ファイルの管理方法について学びます。
Ansibleの設定ファイルを活用することで、動作のカスタマイズや運用の効率化が可能です。

# Ansible設定ファイルの種類

Ansibleの設定は主に以下の方法で管理できます。

  • ansible.cfg: Ansibleのメイン設定ファイル。動作全般のカスタマイズが可能です。
  • 環境変数: 環境ごとに設定値を上書きできます。
  • コマンドラインオプション: 一時的な設定変更に利用します。

# 設定ファイルでできること

Ansibleの設定ファイルでは、以下のような設定が可能です。

  • 並列実行数の設定(forks パラメータ)
  • リトライ回数の設定(retry_files_enabled パラメータ)
  • ログの保存場所指定(log_path パラメータ)
  • プラグインの設定(callback_plugins など)

他にも様々な設定が可能となっており、詳細については公式ドキュメントを確認してください

# [演習.5] 設定ファイルの編集 - パスワード入力をデフォルト動作とする

では、実際に設定ファイルを編集してみましょう。 設定ファイルは ansible.cfg となります。

  • ansible.cfg の作成
    vi ansible.cfg
    
    1
  • askpass = True[defaults]セクションに記載する
    [defaults]
    ask_pass = True
    
    1
    2

# 動作確認

  • 先ほど作成した設定が正しいことを確かめるために、ansibleコマンドで Ping モジュールを実行してみます。 -kオプションを指定しなくてもパスワードを求められるはずです
    ansible -i inventories/hosts exercise -m ping
    
    1
  • パスワードを聞かれるため事前準備で設定したパスワード(ansible)を入力します
  • 出力結果
    host01 | SUCCESS => {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/bin/python"
        },
        "changed": false,
        "ping": "pong"
    }
    host00 | SUCCESS => {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/bin/python"
        },
        "changed": false,
        "ping": "pong"
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

正しく実行されれば SUCCESS と出力されます。

# [発展演習.1] ログの設定

タスクの実行ログを保存し、後で確認できるようにします

  • 設定ファイルの編集: ansible.cfg ファイルを開き、以下の設定を追加します。
    [defaults]
    log_path = /var/log/ansible.log
    
    1
    2
  • Ansibleコマンドを実行し、ログファイルが生成されていることを確認します。
    ansible-playbook -i inventory playbook.yml
    
    1
  • ログファイル /var/log/ansible.log が生成されていることを確認します。
    cat /var/log/ansible.log
    
    1
  • ログには各タスクの実行内容や結果が記録されているはずです。

# 参考情報

# ansible.cfg パラメータの確認

Ansibleには様々な設定を施すことが可能な他、デフォルト値が定められている物もあります。 これらを確認するにはどうすれば良いのでしょうか。 また、どのような設定が可能なのか全ての設定値を覚えておくことは現実的ではありません。

こういったときのためにansible-config というコマンドを用いることができます。

 ansible-config
1