Ansibleの応用実践|Roleによる構成管理・InventoryグループとVaultの活用

現場実践|Ansible応用
Ansibleの応用実践|Roleによる構成管理・InventoryのグループとVaultの活用
「Ansibleの基礎はわかったけど大規模環境への適用がわからない」——AnsibleのRole構造・InventoryのグループとホストVars・Vaultによる秘密情報管理を解説します。
💡 Ansibleを「大規模・本番運用」で使うためにはRoleによるコードの分割・Inventoryの整理・Vaultによる秘密情報管理の3点が必須です。
1. Roleによる構成の分割
まず、PlaybookがTaskの集合体であるのに対し、Roleはそれをより構造化した再利用可能なパッケージです。以下のディレクトリ構造でRoleを定義します。
roles/
nginx/
tasks/
main.yml # タスク定義
handlers/
main.yml # ハンドラー(サービス再起動等)
templates/
nginx.conf.j2 # Jinja2テンプレート
vars/
main.yml # 変数定義
defaults/
main.yml # デフォルト変数2. Inventoryのグループ管理
[webservers]
web01.example.com
web02.example.com
[dbservers]
db01.example.com
[production:children]
webservers
dbservers
# グループ変数はgroup_vars/webservers.ymlに記述
# ホスト変数はhost_vars/web01.example.com.ymlに記述3. Ansible Vaultで秘密情報を管理
# 暗号化ファイルの作成
ansible-vault create group_vars/all/secret.yml
# 既存ファイルの暗号化
ansible-vault encrypt group_vars/all/secret.yml
# 暗号化ファイルを含めてPlaybookを実行
ansible-playbook site.yml --ask-vault-pass
# vault_password_fileを使う場合
ansible-playbook site.yml --vault-password-file .vault_pass4. 本番運用のベストプラクティス
- –check(ドライラン)で事前確認:本番実行前にansible-playbook site.yml –checkで変更内容を確認する
- –limitで対象ホストを絞る:全台一括適用の前に1台だけ–limit web01で試す
- タスクにtagsを付ける:–tags nginxで特定のRoleだけ実行できるようにする
📌 この記事のポイント
- Roleによる構成分割でAnsibleコードが再利用可能になり大規模環境の管理が容易になる
- group_vars・host_varsでインベントリとの変数管理を分離することが保守性向上の鍵
- Ansible Vaultで秘密情報を暗号化管理することでGitに安全にコミットできる
キャリアの疑問、一緒に解決しませんか?
Route Bloomでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。
ABOUT ME




