1.4. インベントリーのビルド


インベントリーは、Ansible にシステム情報とネットワークの場所を提供する集中ファイルにマネージドノードを編成します。インベントリーファイルを使用すると、Ansible は 1 つのコマンドで多数のホストを管理できます。

前提条件

  • 次の手順を完了するには、少なくとも 1 つのホストシステムの IP アドレスまたは完全修飾ドメイン名 (FQDN) が必要です。デモの目的で、ホストはコンテナーまたは仮想マシン内でローカルに実行できます。
  • また、公開 SSH 鍵が各ホストの authorized_keys ファイルに追加されていることを確認する必要があります。インベントリーを構築するには、以下の手順を使用します。

手順

  1. 作成した ansible_quickstart ディレクトリーに inventory.ini という名前のファイルを作成します。
  2. 新しい [myhosts] グループを inventory.ini ファイルに追加し、各ホストシステムの IP アドレスまたは完全修飾ドメイン名 (FQDN) を指定します。

    [myhosts]
    192.0.2.50
    192.0.2.51
    192.0.2.52
    Copy to Clipboard Toggle word wrap
  3. 以下を使用してインベントリーを確認します。

    ansible-inventory -i inventory.ini --list

  4. 以下を使用して、インベントリー内の myhosts グループに ping します。

    'ansible myhosts -m ping -i inventory.ini`

    コントロールノードと管理ノードでユーザー名が異なる場合は、Ansible コマンドに -u オプションを渡します。

    192.0.2.50 | SUCCESS => {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/bin/python3"
        },
        "changed": false,
        "ping": "pong"
    }
    192.0.2.51 | SUCCESS => {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/bin/python3"
        },
        "changed": false,
        "ping": "pong"
    }
    192.0.2.52 | SUCCESS => {
        "ansible_facts": {
            "discovered_interpreter_python": "/usr/bin/python3"
        },
        "changed": false,
        "ping": "pong"
    }
    Copy to Clipboard Toggle word wrap

    インベントリーが正常に作成されました。

1.4.1. INI または YAML 形式のインベントリー

インベントリーは、INI ファイルまたは YAML を使用して作成できます。前述の例のように、ほとんどの場合、INI ファイルは単純で、マネージドノードが少数の場合は簡単に確認できます。マネージドノードの数が増えると、YAML 形式でインベントリーを作成すると適切なオプションになります。

以下は、管理対象ノードの一意の名前を宣言し、ansible_host フィールドを使用する inventory.ini と同じです。

myhosts:
  hosts:
    my_host_01:
      ansible_host: 192.0.2.50
    my_host_02:
      ansible_host: 192.0.2.51
    my_host_03:
      ansible_host: 192.0.2.52
Copy to Clipboard Toggle word wrap

1.4.2. インベントリーのビルドに関するヒント

Ansible 自動化用のインベントリーを構築するときは、ホストの効率的かつ効果的な管理を実現するために、次のベストプラクティスを考慮してください。

  • グループ名が一意で、わかりやすいものであることを確認してください。
  • グループ名も大文字と小文字が区別されます。
  • グループ名にはスペース、ハイフン、または前に数字を付けないでください (19th_floor ではなく、floor_19 を使用してください)。
  • インベントリー内のホストを、その内容、場所、時間に基づいて論理的にグループ化します。

    • 内容: トポロジーに基づいてホストをグループ化します (例: db、web、leaf、spine)。
    • 場所: 地理的な場所ごとにホストをグループ化します (例: データセンター、リージョン、フロア、建物)。
    • 時間: ステージごとにホストをグループ化します (例: 開発、テスト、ステージング、実稼働)。

1.4.3. メタグループの使用

インベントリーを整理するには、メタグループを使用して複数のグループをグループ化します。

以下の構文を使用して、インベントリー内に複数のグループを整理するメタグループを作成します。

metagroupname:
  children:
Copy to Clipboard Toggle word wrap

次のインベントリーは、データセンターの基本構造を示しています。このインベントリーの例には、すべてのネットワークデバイスを含む network メタグループと、network グループとすべての Web Server を含む datacenter メタグループが含まれています。

leafs:
  hosts:
    leaf01:
      ansible_host: 192.0.2.100
    leaf02:
      ansible_host: 192.0.2.110

spines:
  hosts:
    spine01:
      ansible_host: 192.0.2.120
    spine02:
      ansible_host: 192.0.2.130

network:
  children:
    leafs:
    spines:

webservers:
  hosts:
    webserver01:
      ansible_host: 192.0.2.140
    webserver02:
      ansible_host: 192.0.2.150

datacenter:
  children:
    network:
    webservers:
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat