1.4. インベントリーのビルド
インベントリーは、Ansible にシステム情報とネットワークの場所を提供する集中ファイルにマネージドノードを編成します。インベントリーファイルを使用すると、Ansible は 1 つのコマンドで多数のホストを管理できます。
前提条件
- 次の手順を完了するには、少なくとも 1 つのホストシステムの IP アドレスまたは完全修飾ドメイン名 (FQDN) が必要です。デモの目的で、ホストはコンテナーまたは仮想マシン内でローカルに実行できます。
-
また、公開 SSH 鍵が各ホストの
authorized_keysファイルに追加されていることを確認する必要があります。インベントリーを構築するには、以下の手順を使用します。
手順
-
作成した
ansible_quickstartディレクトリーにinventory.iniという名前のファイルを作成します。 新しい
[myhosts]グループを inventory.ini ファイルに追加し、各ホストシステムの IP アドレスまたは完全修飾ドメイン名 (FQDN) を指定します。[myhosts] 192.0.2.50 192.0.2.51 192.0.2.52
[myhosts] 192.0.2.50 192.0.2.51 192.0.2.52Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下を使用してインベントリーを確認します。
ansible-inventory -i inventory.ini --list以下を使用して、インベントリー内の
myhostsグループに ping します。'ansible myhosts -m ping -i inventory.ini`
コントロールノードと管理ノードでユーザー名が異なる場合は、Ansible コマンドに
-uオプションを渡します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーが正常に作成されました。
1.4.1. INI または YAML 形式のインベントリー リンクのコピーリンクがクリップボードにコピーされました!
インベントリーは、INI ファイルまたは YAML を使用して作成できます。前述の例のように、ほとんどの場合、INI ファイルは単純で、マネージドノードが少数の場合は簡単に確認できます。マネージドノードの数が増えると、YAML 形式でインベントリーを作成すると適切なオプションになります。
以下は、管理対象ノードの一意の名前を宣言し、ansible_host フィールドを使用する inventory.ini と同じです。
1.4.2. インベントリーのビルドに関するヒント リンクのコピーリンクがクリップボードにコピーされました!
Ansible 自動化用のインベントリーを構築するときは、ホストの効率的かつ効果的な管理を実現するために、次のベストプラクティスを考慮してください。
- グループ名が一意で、わかりやすいものであることを確認してください。
- グループ名も大文字と小文字が区別されます。
- グループ名にはスペース、ハイフン、または前に数字を付けないでください (19th_floor ではなく、floor_19 を使用してください)。
インベントリー内のホストを、その内容、場所、時間に基づいて論理的にグループ化します。
- 内容: トポロジーに基づいてホストをグループ化します (例: db、web、leaf、spine)。
- 場所: 地理的な場所ごとにホストをグループ化します (例: データセンター、リージョン、フロア、建物)。
- 時間: ステージごとにホストをグループ化します (例: 開発、テスト、ステージング、実稼働)。
1.4.3. メタグループの使用 リンクのコピーリンクがクリップボードにコピーされました!
インベントリーを整理するには、メタグループを使用して複数のグループをグループ化します。
以下の構文を使用して、インベントリー内に複数のグループを整理するメタグループを作成します。
metagroupname: children:
metagroupname:
children:
次のインベントリーは、データセンターの基本構造を示しています。このインベントリーの例には、すべてのネットワークデバイスを含む network メタグループと、network グループとすべての Web Server を含む datacenter メタグループが含まれています。