現場実践|Ansible応用

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

「Ansibleの基礎はわかったけど大規模環境への適用がわからない」——AnsibleのRole構造・InventoryのグループとホストVars・Vaultによる秘密情報管理を解説します。

読了目安:約18分更新日:2026年3月

💡 Ansibleを「大規模・本番運用」で使うためにはRoleによるコードの分割・Inventoryの整理・Vaultによる秘密情報管理の3点が必須です。

この記事を書いた人
現役ITエンジニア・IT講師(経験14年)
CCNA・CCNP 取得LPIC-1 保有SES現場を複数経験

Ansible環境の設計・実装を多数担当してきた立場から応用テクニックを解説します。

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_pass

4. 本番運用のベストプラクティス

  • –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月からフリーランス講師として本格始動予定です。

※Ansibleのバージョンにより構文が異なります。公式ドキュメントもご参照ください。

ABOUT ME
たから
サラリーマンをしながら開業して経営やってます。 今年、本業で独立・別事業を起業予定です。 ◆経験:IT講師/インフラエンジニア/PM/マネジメント/採用/運用・保守・構築・設計 ◆取得資格:CCNA/CCNP/LPIC-1/AZ-900/FE/サーティファイC言語 ◆サイドビジネス:アパレル事業/複数のWEBメディアを運営