3.4. Ansible ロールでのコンテンツのバンドル
ロールは、システムの特定のニーズに合わせて Playbook の関連部分をまとめた、カスタマイズされた自動化コンテンツのようなものです。ロールは自己完結型で移植可能であり、タスク、変数、設定テンプレート、ハンドラー、およびその他のサポートファイルのグループ化を含めて、複雑な自動化フローを調整できます。
何百ものタスクで巨大な Playbook を作成する代わりに、ロールを使用して、タスクをより小さく、より個別の作業単位に分割することができます。
ロールの詳細は、What is an Ansible Role-and how is it used? を参照してください。
3.4.1. ロールの作成
Ansible Automation Platform バンドルに含まれている Ansible Galaxy CLI ツールを使用して、ロールを作成できます。role
サブコマンドからロール固有のコマンドにアクセスします。
ansible-galaxy role init <role_name>
ansible-galaxy role init <role_name>
コレクション外部のスタンドアロンロールがサポートされています。Ansible Automation Platform が提供する機能を活用するには、コレクション内に新しいロールを作成してください。
手順
-
ターミナルで、コレクション内の
roles
ディレクトリーに移動します。 コレクション内に
my_role
というロールを作成します。ansible-galaxy role init my_role
$ ansible-galaxy role init my_role
Copy to Clipboard Copied! 次の例に示すように、コレクションの
roles
ディレクトリー内にmy_role
という名前のロールが追加されます。~/.ansible/collections/ansible_collections/<my_namespace>/<my_collection_name> ... └── roles/ └── my_role/ ├── .travis.yml ├── README.md ├── defaults/ │ └── main.yml ├── files/ ├── handlers/ │ └── main.yml ├── meta/ │ └── main.yml ├── tasks/ │ └── main.yml ├── templates/ ├── tests/ │ ├── inventory │ └── test.yml └── vars/ └── main.yml
~/.ansible/collections/ansible_collections/<my_namespace>/<my_collection_name> ... └── roles/ └── my_role/ ├── .travis.yml ├── README.md ├── defaults/ │ └── main.yml ├── files/ ├── handlers/ │ └── main.yml ├── meta/ │ └── main.yml ├── tasks/ │ └── main.yml ├── templates/ ├── tests/ │ ├── inventory │ └── test.yml └── vars/ └── main.yml
Copy to Clipboard Copied! --role-skeleton
引数を使用して、カスタムロールのスケルトンディレクトリーを指定できます。これにより、組織はニーズに合わせて新しいロールの標準化されたテンプレートを作成できます。ansible-galaxy role init my_role --role-skeleton ~/role_skeleton
$ ansible-galaxy role init my_role --role-skeleton ~/role_skeleton
Copy to Clipboard Copied! これにより、
~/role_skeleton
の内容がmy_role
にコピーされて、my_role
という名前のロールが作成されます。role_skeleton
の内容は、ロールディレクトリー内で有効なファイルまたはフォルダーであれば、任意のものを使用できます。