Ansible グループ変数

AnsibleBeginner
オンラインで実践に進む

はじめに

Ansible のグループ変数を使用すると、ホストのグループ全体に適用される変数を定義できます。これにより、特定のホストグループに対して Ansible の動作をカスタマイズしたり、共通の設定を構成したりすることが可能になります。このチャレンジでは、Ansible インベントリでグループ変数を定義および使用する方法を学びます。

グループ変数の定義

まずは、Ansible インベントリでグループ変数を定義する方法から始めましょう。これは、異なるホストグループ間で設定を効率的に管理するために不可欠なスキルです。

タスク

特定のホストグループに対してグループ変数を定義します。

  1. /home/labex/project ディレクトリに inventory という名前のファイルを作成し、以下の内容を記述してください。
    • web および db という名前のグループを定義する
    • [web:vars] セクションの下に http_port=80 変数を追加する
    • [db:vars] セクションの下に db_port=3306 変数を追加する
    • 簡単のため、localhostweb グループと db グループの両方に追加する

要件

  • Ansible がインストール済みであること
  • 管理対象ホストへの SSH 接続が構成済みであること

このステップを完了すると、Ansible の ping モジュールを使用して web グループ内のホストの状態を確認できるようになります。

ansible web -i inventory -m ping

出力例:

localhost | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Playbook でのグループ変数の利用

グループ変数の定義方法を学んだので、次は重要なステップである「Ansible Playbook での変数の利用」に進みましょう。このスキルを身につけることで、ホストグループごとに柔軟に適応できる動的な Playbook を作成できるようになります。

タスク

  1. /home/labex/project ディレクトリに my-playbook.yaml という名前の新しい Playbook ファイルを作成し、以下の内容を記述してください。

    • hostsweb に設定する
    • debug モジュールを使用して、http_port グループ変数にアクセスし、表示する
  2. ansible-playbook コマンドを使用して、インベントリファイルを指定し、Ansible Playbook を実行します。

要件

  • Ansible がインストール済みであること
  • 管理対象ホストへの SSH 接続が構成済みであること
  • インベントリファイルが作成および構成済みであること

このステップを完了し、Playbook を実行すると、以下のような出力が得られるはずです。

PLAY [Print group variables] **************************************************

TASK [Gathering Facts] ********************************************************
ok: [localhost]

TASK [Print http_port variable] ************************************************
ok: [localhost] => {
    "http_port": 80
}

PLAY RECAP *********************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

まとめ

おめでとうございます!Ansible グループ変数のチャレンジを完了しました。インベントリでグループ変数を定義し、Playbook でそれらを利用する方法を学びました。これらのスキルは、Ansible を効率的に使用するための重要な要素であり、インフラ内の異なるホストグループに対して設定を管理・カスタマイズできるようになります。

グループ変数を効果的に活用することで、より柔軟でモジュール化された自動化ワークフローを作成できます。Ansible の学習を続ける中で、さまざまなグループ変数を試し、それらがどのように自動化プロセスを強化できるかを探求してみてください。これらの概念を習得するには、実践が何よりも重要です!

✨ 解答を確認して練習✨ 解答を確認して練習