Ansible グループ変数

AnsibleAnsibleBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ansible(("Ansible")) -.-> ansible/AnsibleSetupandConfigurationGroup(["Ansible Setup and Configuration"]) ansible(("Ansible")) -.-> ansible/InventoryManagementGroup(["Inventory Management"]) ansible/AnsibleSetupandConfigurationGroup -.-> ansible/install("Ansible Setup") ansible/InventoryManagementGroup -.-> ansible/group_variables("Set Group Variables") subgraph Lab Skills ansible/install -.-> lab-96690{{"Ansible グループ変数"}} ansible/group_variables -.-> lab-96690{{"Ansible グループ変数"}} end

グループ変数の定義

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

タスク

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

  1. /home/labex/project ディレクトリに inventory という名前のファイルを作成し、以下の内容を記述します。
    • webdb という名前のグループを定義します。
    • web グループに http_port=80 という変数を追加します。
    • db グループに db_port=3306 という変数を追加します。
    • 簡単のために localhost を使用し、web グループと db グループの両方に追加します。

要件

  • Ansible が事前にインストールされています。
  • 管理対象のホストへの SSH 接続が構成されています。

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

ansible web -i inventory -m ping

例の出力:

localhost | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
✨ 解答を確認して練習

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

グループ変数を定義したので、次の重要なステップに進みましょう。Ansible のプレイブックでこれらの変数にアクセスする方法です。このスキルを使えば、異なるホスト グループに対応できる動的で柔軟なプレイブックを作成できます。

タスク

  1. /home/labex/project ディレクトリに新しいプレイブック ファイル my-playbook.yaml を作成し、以下の内容を記述します。
    • hostsweb に設定します。
    • debug モジュールを使用して http_port グループ変数にアクセスして表示します。
  2. ansible-playbook コマンドを使用して Ansible のプレイブックを実行し、インベントリ ファイルを指定します。

要件

  • 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 の学習を続ける際には、さまざまなグループ変数を試してみて、それが自動化プロセスをどのように強化できるかを探ってみてください。覚えておいてください、これらの概念をマスターするキーは練習です!