3.5. ロールと自動化コンテンツをバンドルする
ロールとは、Playbook から関連する要素をまとめて、システムの特定のニーズに合わせてカスタマイズした自動化コンテンツのことです。ロールは自己完結型で移植可能であり、タスク、変数、設定テンプレート、ハンドラー、およびその他のサポートファイルのグループ化を含めて、複雑な自動化フローを調整できます。
何百ものタスクで巨大な Playbook を作成する代わりに、ロールを使用して、タスクをより小さく、より個別の作業単位に分割することができます。
ロールの詳細は、What is an Ansible Role-and how is it used? を参照してください。
3.5.1. ロールの作成 リンクのコピーリンクがクリップボードにコピーされました!
再利用可能な自動化コンポーネントを構築するために、ansible-galaxy CLI ツールを使用して Ansible ロールを作成します。
Ansible Automation Platform バンドルには、Ansible Galaxy CLI ツールが含まれています。ロール サブコマンドからロール固有のコマンドにアクセスします。
ansible-galaxy role init <role_name>
コレクション外部のスタンドアロンロールがサポートされています。Ansible Automation Platform が提供する機能を活用するには、コレクション内に新しいロールを作成してください。
手順
-
ターミナルで、コレクション内の
ロールディレクトリーに移動します。 コレクション内に
my_roleという名前のロールを作成します。$ ansible-galaxy role init my_roleこのコレクションには、
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--role-skeleton引数を使用することで、カスタムロールのスケルトンディレクトリーを指定できます。これにより、組織はニーズに合わせて新しいロールの標準化されたテンプレートを作成できます。$ ansible-galaxy role init my_role --role-skeleton ~/role_skeletonこれは、
~/role_skeletonの内容をmy_roleにコピーすることで、my_roleという名前のロールを作成します。role_skeletonの内容は、ロールディレクトリー内で有効なすべてのファイルまたはフォルダーになります。