クイックリファレンス

Ansible Roles 構成と設計チートシート

Ansibleロールのディレクトリ構成、タスク、ハンドラー、変数、デフォルト値、Jinja2テンプレート、メタ依存関係のクイックリファレンス。

· 公開日

Ansible Roles(ロール)は、自動化タスク、ハンドラー、変数、テンプレートを整理・モジュール化し、高い再利用性を実現する標準機能です。

🔗 Related: Ansible 基本チートシート · Ansible 入門ガイド · Ansible Playbook 実践例集

標準的なロールのディレクトリ構成

ansible-galaxy init role_name コマンドで標準ロール構造を自動生成できます:

roles/
  common/
    tasks/
      main.yml          # ロール実行タスクのエントリーポイント
    handlers/
      main.yml          # notifyによって呼び出されるハンドラー定義
    templates/          # templateモジュールで展開するJinja2テンプレート(.j2)
    files/              # copyモジュール等で転送する静的ファイルやスクリプト
    vars/
      main.yml          # 優先順位の高いロール固有の変数
    defaults/
      main.yml          # 優先順位の低いデフォルト変数(上書き可能)
    meta/
      main.yml          # ロールの依存関係や作者メタデータ定義

Playbook でのロールの呼び出し

---
- name: Apply common and webserver roles
  hosts: webservers
  become: true
  roles:
    - role: common
    - role: nginx
      vars:
        nginx_port: 8080

ロール内の変数の優先順位

defaults/main.yml で定義された変数は Ansible で最も低い優先順位を持つため、インベントリや Playbook 側から安全に上書きできます。

vars/main.yml の変数は高い優先順位を持ち、ロール内部の定数ロジックに適しています。


公式リファレンス

関連テーマ