Ansible グループ変数

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

はじめに

Ansible のグループ変数(Group Variables)を使用すると、ホストのグループ全体に適用される変数を定義できます。これにより、特定のホストグループごとに Ansible の挙動をカスタマイズしたり、共通の設定を効率的に管理したりすることが可能になります。このチャレンジでは、Ansible インベントリ(Inventory)においてグループ変数を定義し、それを利用する方法を習得します。

グループ変数の定義

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

タスク

特定のホストグループに対してグループ変数を定義してください。

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

要件

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

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

ansible web -i inventory -m ping

出力例:

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

プレイブックでのグループ変数へのアクセス

グループ変数を定義できたので、次は重要なステップである「Ansible プレイブック(Playbook)内での変数へのアクセス」に進みます。このスキルを習得することで、異なるホストグループに適応できる、動的で柔軟なプレイブックを作成できるようになります。

タスク

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

    • hostsweb に設定する
    • debug モジュールを使用して、グループ変数 http_port にアクセスし、表示する
  2. ansible-playbook コマンドを実行し、作成したインベントリファイルを指定してプレイブックを動かしてください。

要件

  • Ansible がインストール済みであること
  • 管理対象ホストへの SSH 接続が構成されていること
  • インベントリファイルが正しく作成・構成されていること

このステップを完了してプレイブックを実行すると、以下のような出力が表示されます。

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 グループ変数のチャレンジを無事に完了しました。インベントリでグループ変数を定義し、それをプレイブック内で活用する方法を習得しました。これらのスキルは、Ansible を効率的に使いこなし、インフラ内の異なるホストグループの設定を管理・カスタマイズするために不可欠な要素です。

グループ変数を効果的に活用することで、より柔軟でモジュール化された自動化ワークフローを構築できます。Ansible の学習を続けるにあたって、さまざまなグループ変数を試し、自動化プロセスをどのように強化できるか探求してみてください。継続的な練習こそが、これらの概念をマスターする鍵となります。

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