0Pricing
DevOps Bootcamp · レッスン

インベントリのホスト変数とグループ変数

接続設定と構成変数をホストに割り当てます

「インベントリのホスト変数とグループ変数」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。

変数をホストとともに管理

インベントリに記載するのは名前だけではありません。ホストやグループに変数を付けて、マシンごとにタスクの動作を変えられます。

INIのホスト変数

INIでは、ホスト名の直後にkey=valueの組を同じ行に記述します。これらはそのホスト1台だけに適用されます。

web1.example.com http_port=8080

接続変数が特に重要

ansible_userやansible_hostのような特殊な変数は、設定内容だけでなく、Ansibleが接続する方法を指定します。

db1.example.com ansible_user=deploy ansible_port=2222

実際のアドレスを上書き

ansible_hostを使うと、インベントリでは分かりやすい名前を使いながら、実際には背後にあるIPアドレスへ接続できます。

app1 ansible_host=10.0.0.21

INIのグループ変数

[group:vars]セクションを使うと、グループ内のすべてのホストに1つの値を適用できます。一度設定すれば、どこでも共有できます。

[web:vars]
ansible_user=ubuntu

YAMLインベントリの変数

YAMLでは、グループにvarsブロックを追加するか、空のコロンの代わりにホストへ値のマッピングを指定します。

web:
  vars:
    ansible_user: ubuntu
  hosts:
    web1.example.com:

ホストごとのYAML変数

ホストキーの下に値を入れ子にすると、1台のホストに固有の値を設定できます。空だったコロンの位置がマッピングになります。

hosts:
  web1.example.com:
    http_port: 8080

ホストがグループに優先

ホストとそのグループが同じ変数を設定している場合は、ホストの値が優先されます。常に具体的な設定が一般的な設定を上書きします。

タスクで変数を使用

二重の中括弧でインベントリ変数を参照します。ここではタスクがホストの定義からhttp_portを直接読み取ります。

- debug:
    msg: "Serving on port {{ http_port }}"

解決済みの値を確認

--hostフラグを使うと、ホストに最終的に適用されるすべての変数を確認できます。実際にどの値が使われたかをデバッグするのに便利です。

ansible-inventory -i inventory.ini --host web1.example.com

インベントリをシンプルに保つ

インライン変数をいくつか使うのは問題ありませんが、複雑な設定は後でgroup_varsファイルに移します。インベントリには、詳しい設定方法ではなく対象だけを記載します。

確認テスト

ホストとそのグループが、どちらもansible_userを定義しています。Ansibleはどちらの値を使いますか。

まとめ

INIまたはYAMLでホストやグループに変数を付け、接続や設定の値を指定できます。値が競合した場合は、グループよりホストが優先されます。🔧

よくある質問

「インベントリのホスト変数とグループ変数」レッスンは無料ですか?

はい。「インベントリのホスト変数とグループ変数」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。

「インベントリのホスト変数とグループ変数」で何を学びますか?

接続設定と構成変数をホストに割り当てます ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

DevOps Bootcampを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「インベントリのホスト変数とグループ変数」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDevOps Bootcampレッスンでコードを書いて実行できますか?

はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. INIとYAMLのインベントリファイル
  2. ホストのグループ化:web、db、app
  3. ネストしたグループとchildrenキーワード
  4. インベントリのホスト変数とグループ変数
← DevOps Bootcampに戻る