group_vars & host_vars ディレクトリ
ホストとグループごとに変数を整理します。
「group_vars & host_vars ディレクトリ」はCoddyKit上の無料DevOps Bootcampレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDevOps Bootcamp学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 DevOps Bootcampコースには全4レッスンが含まれています。
変数のハードコーディングをやめます
playbookの中に値を埋め込むと、すぐに管理が難しくなります。代わりにAnsibleはgroup_varsとhost_varsディレクトリから変数を自動的に読み込みます。🗂️
group_varsの読み込み方法
group_vars内のグループ名を付けたファイルは、そのグループのすべてのホストに適用されます。手動でincludeする必要はありません。
# group_vars/webservers.yml
http_port: 80
worker_processes: 4allグループ
特別なファイルgroup_vars/all.ymlを使うと、inventory内のすべてのホストに対するデフォルト値を設定できます。組織全体の設定に最適です。
# group_vars/all.yml
timezone: UTC
ntp_server: pool.ntp.orghost_varsの読み込み方法
host_vars内のファイルは単一のホスト名を付け、そのマシンだけに適用します。サーバーごとの上書き設定に適しています。
# host_vars/web01.example.com.yml
server_id: 1
backup_disk: /dev/sdb名前を一致させる必要があります
ファイル名はinventoryに記載されたグループ名またはホスト名と完全に一致しなければなりません。一致しない場合、Ansibleは何も知らせずに読み込みをスキップします。
ファイルまたはディレクトリ
各エントリには、単一の.ymlファイルまたは複数のファイルを含むディレクトリを指定できます。Ansibleはディレクトリ内のすべてのファイルをまとめて統合します。
group_vars/
webservers/
network.yml
tuning.ymlホストがグループに優先します
同じ変数が両方に存在する場合、host_varsがgroup_varsに優先します。より具体的なスコープが、常に広いスコープを上書きします。
子グループの優先順位
グループ同士では、子グループが親グループを上書きします。入れ子になったグループによって、階層的で予測しやすいデフォルト値を設定できます。
inventoryからの相対位置
Ansibleはまずinventoryファイルの隣にこれらのディレクトリがないか探し、実行対象のplaybookの隣も確認します。
通常どおり参照します
タスク内では、ほかの変数と同じように{{ }}構文を使って参照します。変数の読み込み元をタスクが意識する必要はありません。
- name: Open the web port
debug:
msg: "Port is {{ http_port }}"playbookがすっきりします
データを外部化すると、playは何をするかを記述し、group_varsとhost_varsが環境ごとの値を保持する構成になります。🎯
簡単な確認
ある変数がgroup_varsとhost_varsの両方に設定されています。どちらの値が優先されますか。
まとめ
group_varsとhost_varsが名前に基づいて自動的に読み込まれること、ホストがグループに優先し、子グループが親グループに優先することを学びました。データを外部化して、playをすっきり保ちましょう。✅
よくある質問
「group_vars & host_vars ディレクトリ」レッスンは無料ですか?
はい。「group_vars & host_vars ディレクトリ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、DevOps Bootcampコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 DevOps Bootcampコースには全4レッスンが含まれています。
「group_vars & host_vars ディレクトリ」で何を学びますか?
ホストとグループごとに変数を整理します。 ブラウザで直接実行するハンズオンコードでDevOps Bootcampを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
DevOps Bootcampを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDevOps Bootcampは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「group_vars & host_vars ディレクトリ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDevOps Bootcampレッスンでコードを書いて実行できますか?
はい。すべてのDevOps Bootcampレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 推奨ディレクトリ構成
- group_vars & host_vars ディレクトリ
- import & include による Playbook の分割
- 規模に対応できる命名・コメント・スタイル