Ansible Automation Platform のスタートガイド
Ansible Automation Platform を使い始める
概要
はじめに
Red Hat Ansible Automation Platform は、プロビジョニング、設定管理、アプリケーションのデプロイメント、オーケストレーション、セキュリティーとコンプライアンスの変更 (システムのパッチ適用を含む) など、さまざまな IT プロセスを自動化する統合自動化ソリューションです。
Ansible Automation Platform は、集中認証のセットアップ、アクセス管理の設定、および 1 つのロケーションから自動化タスクの実行を可能にするプラットフォームインターフェイスを特長としています。
このガイドでは、Ansible Automation Platform を使い始める際に役立つ 3 つの中心的な概念である自動化実行、自動化決定、および自動化コンテンツを導入しています。
Red Hat ドキュメントへのフィードバック (英語のみ)
このドキュメントの改善に関するご意見がある場合や、エラーを発見した場合は、https://access.redhat.com から Technical Support チームに連絡してください。
第1章 主な機能と概念
Ansible Automation Platform を使用すると、ユーザー、チーム、およびリージョンをまたいで、組織の自動化を作成、管理、およびスケーリングできます。詳細は、Ansible Automation Platform の次の機能と概念を参照してください。
Ansible Automation Platform 2.5 リリースでは、プラットフォームの各部分を操作して管理できる新しい統合ユーザーインターフェイス (UI) が導入されています。
プラットフォームゲートウェイは、Ansible Automation Platform の認証と認可を処理するサービスです。これは Ansible Automation Platform への一元的な入り口であり、プラットフォームのユーザーインターフェイスを提供するため、ユーザーは 1 つの場所からすべての Ansible Automation Platform サービスに認証してアクセスできます。
1.1. アクティビティーストリーム
プラットフォームゲートウェイには、組織、ユーザー、サービスクラスターの作成や変更など、プラットフォームゲートウェイリソースへの変更を取得するアクティビティーストリームが組み込まれています。アクティビティーストリームは、変更ごとに、変更の時刻、変更を開始したユーザー、実行されたアクション、およびオブジェクトに対して実際に行われた変更 (可能な場合) に関する情報を収集します。収集される情報は、変更の種類によって異なります。
アクティビティーストリームによってキャプチャーされた詳細情報には、API からアクセスできます。
/api/gateway/v1/activitystream/
1.2. 自動化実行
Ansible Automation Platform の中心となるのは、自動化実行コマンドおよびコントロールセンターです。ここでは、企業全体で自動化をデプロイ、定義、操作、スケーリング、および委譲できます。この機能を使用すると、シンプルでわかりやすい Web UI からの Playbook の実行、ダッシュボードアクティビティーの監視、一元的なロギングによるジョブ実行の管理と追跡など、さまざまなタスクを 1 カ所から実行できます。
自動化実行環境では、Automation Controller タスクを使用してジョブテンプレートをビルドできます。これにより、自動化のデプロイ、開始、委譲の方法が標準化され、再利用性と一貫性が向上します。
1.2.1. インベントリー
インベントリーは、通常、Ansible コマンドと Playbook を使用して操作できるホストとグループのリストを含む INI または YAML 形式の単一のファイルです。インベントリーファイルを使用して、インストールシナリオを指定し、Ansible へのホストのデプロイメントを記述できます。インベントリーファイルを使用して、Ansible にシステム情報とネットワークのロケーションを提供する集中ファイルに管理対象ノードを整理することもできます。
1.3. 自動化コンテンツ
Automation Hub は、Ansible Automation Platform コンテンツの中心となるロケーションです。Automation Hub には、ダウンロードして自動化環境に統合できるコンテンツコレクションもあります。独自のコンテンツを作成してアップロードし、ユーザーに配布することもできます。
Ansible コンテンツコレクションは、すぐに使用できる自動化ツールキットです。ロール、モジュール、Playbook、プラグインなど、複数の種類のコンテンツをすべて 1 カ所にまとめることができます。
Automation Hub には、次の 2 つの方法のいずれかでアクセスできます。
- Red Hat がホストする Hybrid Cloud Console では、プラットフォーム環境に同期できる Red Hat の検証済みまたは認定済みのコンテンツを見つけることができます。
- セルフホスト型のオンプレミスの Private Automation Hub では、自動化ユーザー向けのコンテンツをキュレートし、コレクションと実行環境へのアクセスを管理できます。
Automation Hub にアクセスする方法に応じて、さまざまな種類のコンテンツコレクションにアクセスできます。
Red Hat Ansible コンテンツには 2 種類あります。
- Red Hat が構築、サポート、保守する Ansible Certified Content Collections。認定コレクションは、Red Hat Ansible Automation Platform のサブスクリプションに含まれており、Automation Hub で見つけることができます。
- Ansible 検証済みコンテンツコレクション。これは、カスタマイズ可能であるためサポート保証はありませんが、Ansible Automation Platform 環境でテストされています。
Ansible コンテンツの詳細は、自動化開発者として使い始める の 自動化コンテンツの作成 を参照してください。
1.3.1. Ansible ロール
Ansible ロールを使用すると、再利用可能な自動化コンテンツを作成して、チームの作業を効率化し、作業の重複を回避できます。ロールを使用すると、Playbook、設定ファイル、テンプレート、タスク、ハンドラーなど、広範囲の既存の自動化コンテンツをグループ化して、再利用したり他のユーザーと共有したりできるカスタマイズした自動化コンテンツを作成できます。
また、ロールを呼び出すときにユーザーが設定できる変数を公開することで、ロールを設定可能にし、これにより、ユーザーが組織の要件に応じてシステムを設定できるようにすることもできます。
ロールは通常、Ansible コンテンツコレクションに含まれています。
関連情報
詳細は、Ansible ロールを使用したコンテンツのバンドル を参照してください。
1.3.2. Ansible Playbook
Playbook は、人間が判読できる特定の命令セット (“プレイ”) を含む YAML ファイルです。プレイは、1 つのターゲットまたはターゲットのグループに対して実行されます。Ansible Playbook は、複雑なアプリケーションをデプロイするために設計された、繰り返し可能で再利用可能な設定管理ツールです。
Playbook を使用すると、リモートマシンの設定とデプロイを管理し、ローリング更新を含む多層ロールアウトを順序付けることができます。Playbook を使用して、アクションを他のホストに委譲し、途中で監視サーバーやロードバランサーと対話します。
作成したら、企業全体で自動化用の Playbook を再利用できます。たとえば、タスクを複数回実行する必要がある場合は、Playbook を作成してソースコントロールに配置します。その後、Playbook を使用して新しい設定をプッシュしたり、リモートシステムの設定を確認したりできます。
Ansible Playbook は、設定を宣言したり、手動で順序付けられたプロセスのステップを多数のマシン上で定義された順序で調整したり、タスクを同期的または非同期的に開始したりできます。
また、Ansible の生成 AI サービスである Red Hat Ansible Lightspeed を使用して、ニーズに合った Playbook を作成および開発することもできます。詳細は、Ansible Lightspeed のドキュメント を参照してください。
1.4. 自動化決定
Red Hat Ansible Automation Platform には、システムのイベントストリームをリッスンし、対象の自動化タスクで指定したイベントに反応する自動化エンジンである Event-Driven Ansible が含まれています。このように、Event-Driven Ansible はルーチンの自動化タスクと応答を管理し、より複雑なタスクに取り組む時間を確保します。
Event-Driven Ansible Controller を通じて管理される Ansible ルールブックは、自動化決定用のフレームワークです。Ansible ルールブックはルールセットのコレクションで、ルールセットは 1 つ以上のソース、ルール、条件で構成されます。ルールブックは、どのイベントにフラグを立てるか、またそれにどのように対応するかをシステムに指示します。プラットフォームユーザーインターフェイスの Automation Decisions セクションから、ルールブックを使用してイベントソースに接続してリッスンし、特定のイベントに応じてトリガーされるアクションを定義できます。
関連情報
ルールブック、イベント、ソースの詳細は、ルールブックのアクション を参照してください。
1.5. 自動化メッシュ
自動化メッシュは、既存の接続を使用して実行ノードのコレクション全体に自動化を容易に配布することを目的としたオーバーレイネットワークです。実行ノードは、Ansible Playbook が実際に実行される場所です。ノードは自動化実行環境を実行し、この環境で Ansible Playbook が実行されます。自動化メッシュは、これらの実行ノード間にピアツーピア接続を作成し、ネットワーク遅延や接続中断に対する自動化ワークロードの回復力を高めます。これにより、より柔軟なアーキテクチャーも可能になり、制御および実行能力の迅速かつ独立したスケーリングが可能になります。
1.6. Red Hat Ansible Lightspeed
Red Hat Ansible Lightspeed with IBM watsonx Code Assistant は、Ansible プラットフォームのエンジニアと開発者向けに独自に設計した生成 AI サービスです。ユーザーが入力した自然言語プロンプトを受け入れ、IBM watsonx 基盤モデルと対話して、Ansible のベストプラクティスに基づいて構築されたコード推奨事項を生成します。
Red Hat Ansible Lightspeed with IBM watsonx Code Assistant を使用すると、自動化チームは Red Hat Ansible Automation Platform のコンテンツをより効率的に把握、作成、保守できるようになります。
1.7. Ansible 開発ツール
Ansible 開発ツールは、あらゆるスキルレベルの IT 担当者が手動コーディングよりも速く自動化コンテンツを生成できるように支援する、統合およびサポートされている一連の機能です。Ansible 開発ツールは、推奨されるプラクティスを使用して、Playbook、実行環境、コレクションなどの自動化コンテンツを迅速かつ正確に作成、テスト、デプロイするのに役立ちます。Ansible 開発ツールが自動化コンテンツの作成に役立つ仕組みの詳細は、自動化コンテンツの開発 に関するドキュメントを参照してください。
1.8. Ansible Automation Platform のインストールと設定
Red Hat Ansible Automation Platform は、柔軟なインストールおよび設定オプションを提供します。組織のニーズに応じて、環境に基づいて次のいずれかの方法を使用して Red Hat Ansible Automation Platform をインストールできます。
1.9. ダッシュボードコンポーネント

Ansible Automation Platform をシステムにインストールし、初めてログインしたら、プラットフォームダッシュボードを使い慣れるようにします。
- クイックスタート
- クイックスタートと呼ばれるガイド付きチュートリアルを使用して、Ansible Automation 機能を学習できます。ダッシュボードでは、クイックスタートカードを選択してクイックスタートにアクセスできます。表示されたパネルから をクリックし、画面の指示に従います。キーワードやステータスで、クイックスタートをフィルタリングすることもできます。
- リソースステータス
- ホスト、プロジェクト、インベントリーのステータスを示します。ステータスインジケーターは、設定されたホスト、プロジェクト、インベントリーにリンクしており、これらのリソースを検索、フィルタリング、追加、変更できます。
- ジョブアクティビティー
- 現在のジョブステータスの概要を表示できます。ジョブのステータスを一定期間内またはジョブの種類別にフィルタリングするか、 をクリックして現在利用可能なジョブの完全なリストを表示します。
- ジョブ
- 最近実行されたジョブを表示するか、 をクリックして現在利用可能なジョブの完全なリストを表示するか、新しいジョブを作成できます。
- プロジェクト
- 最近更新されたプロジェクトを表示するか、 をクリックして現在利用可能なプロジェクトの完全なリストを表示するか、新しいプロジェクトを作成できます。
- インベントリー
- 最近更新されたインベントリーを表示するか、 をクリックして利用可能なインベントリーの完全なリストを表示するか、新しいインベントリーを作成できます。
- ルールブックアクティベーション
- 最近のルールブックのアクティベーションとそのステータスのリストを表示したり、現在利用可能なルールブックのアクティベーションの完全なリストを表示したり、新しいルールブックアクティベーションを作成したりできます。
- ルール監査
- 最近実行されたルール監査の表示、ルール監査レコードの表示、対応するルールブックアクティベーションの実行に基づくルール監査データの表示を行います。
- 決定環境
- 最近更新された決定環境を表示したり、 をクリックして利用可能なインベントリーの完全なリストを表示したり、新しい決定環境を作成したりできます。
1.10. このガイドの使用
Ansible Automation Platform 2.5 をインストールし、ダッシュボードを使い慣れたら、このドキュメントを使用して、セットアップと日常の使用に関するさらなるオプションの理解を深めてください。このガイドは、所属する組織内でのユーザーとユーザーのロールに最も適したパスを選択できるように説明しています。また、このガイドで概説されている他のパスをご覧になり、さまざまな役割や目的を持つユーザーによる自動化タスクの構築とカスタマイズを Ansible によって支援する方法を確認することを推奨します。
使い始めるには、次のいずれかのパスを選択してください。
- 認証を設定し、チームと組織をセットアップするシステム管理者の場合は、プラットフォーム管理者として使い始める を参照してください。
- 開発環境をセットアップし、Playbook、ルールブック、ロール、またはプロジェクトを作成する開発者の場合は、自動化開発者として使い始める を参照してください。
- Playbook の使用、カスタムコンテンツの公開、プロジェクトの作成、インベントリーの作成と使用を行う運用担当者の場合は、自動化運用担当者として使い始める を参照してください。
第2章 プラットフォーム管理者として使い始める
プラットフォーム管理者の場合、Ansible Automation Platform を使用すると、ユーザーとチームが自動化を開発および実行できるようになります。
このガイドでは、ユーザー向けのプラットフォームの設定と保守など、Ansible Automation Platform の管理者としてセットアップするための基本的な手順を説明します。
管理者として使い始めるには、以下を参照してください。
2.1. 初めてのログイン
Ansible Automation Platform に管理者としてログインし、サブスクリプション情報を入力します。その後、ユーザープロファイルを作成し、ロールを割り当てることができます。
手順
- インストール完了後に提供されたログイン情報を使用して、Web ブラウザーを開き、サーバー URL https://<AAP_SERVER_NAME>/ に移動して Red Hat Ansible Automation Platform にログインします。
インストールプロセス中に指定した認証情報を使用してログインします。
- デフォルトのユーザー名は admin です。
- admin のパスワードはインストール時に指定した値です。
初めてログインすると、サブスクリプションマニフェストを追加するように求められます。
手順
サブスクリプションマニフェストのコピーをアップロードするか、ログイン認証情報を入力してプロファイルに関連付けられているサブスクリプションを見つけるか、のいずれかを選択できます。
- サブスクリプションマニフェストをアップロードするには、ファイルを Red Hat サブスクリプションマニフェスト の下のフィールドにドラッグするか、ローカルマシン上のファイルを参照します。
- サブスクリプションを見つけるには、Username / password タブをクリックし、認証情報を入力します。サブスクリプションは、Subscription というラベルの付いたリストメニューに表示されます。サブスクリプションを選択します。
- サブスクリプションを追加したら、 をクリックします。
- End User License Agreement に同意することを示すボックスをチェックします。
- 情報を確認して、 をクリックします。
ログイン後、クイックスタートのセクションを参照して役立つガイダンスを確認してください。
2.2. 認証の設定
管理者として初めてログインした後、ユーザーの認証を設定する必要があります。組織のニーズとリソースに応じて、次のいずれかを実行できます。
- ユーザー、チーム、組織を手動で作成して認証を設定する
- システムの認証を設定するために、GitHub などの外部ソースを使用する
2.3. ロールベースアクセス制御によるユーザーアクセスの管理
ロールベースアクセス制御 (RBAC) は、組織内でのロールに基づいてユーザーアクセスを制限します。RBAC のロールとは、ユーザーがネットワークに対して持つアクセスレベルを指します。
RBAC ポリシーに応じて、Ansible Automation Platform のコンポーネントを使用してユーザーが実行できる操作を大まかなまたは詳細なレベルで制御できます。ユーザーがシステム管理者であるか通常ユーザーであるかを選択し、ロールとアクセス権限を組織内のポジションに合わせて調整できます。
多くの権限を持つロールを定義し、それをリソース、チーム、ユーザーに割り当てることができます。ロールを設定する権限によって、割り当てられたロールで許可される内容が決まります。権限は、ユーザーが自分のロールに適したタスクを実行するために必要なアクセスのみに割り当てられます。
2.4. 組織の作成
Ansible Automation Platform は、デフォルトの組織を自動的に作成します。Self-Support レベルのライセンスをお使いの場合は、デフォルトの組織しか使用できないため、デフォルトの組織は削除できません。
手順
- ナビゲーションパネルから、 → を選択します。
- をクリックします。
組織の Name を入力し、オプションで Description を入力します。
注記プラットフォーム上で Automation Controller が有効になっている場合は、ステップ 4 に進みます。そうでない場合は、ステップ 6 に進みます。
- Execution environment の名前を選択するか、このチームのメンバーが自動化を実行できる既存の実行環境を検索します。
- この組織を実行する Instance Groups の名前を入力します。
- オプション: Galaxy credentials を入力するか、既存の認証情報のリストから検索します。
この組織の Max hosts を選択します。デフォルトは 0 です。この値が 0 の場合、制限がないことを示します。ホストの上限に達したか、上限を超えた組織にホストを追加しようとすると、次のエラーメッセージが表示されます。
You have already reached the maximum number of 1 hosts allowed for your organization. Contact your System Administrator for assistance.
- をクリックします。
1 つ以上のインスタンスグループを選択した場合は、リスト内でインスタンスグループを上下にドラッグアンドドロップし、
をクリックすることで、順序を管理できます。注記実行の優先順位は、インスタンスグループがリストされている順序によって決まります。
- をクリックして、組織の設定を確認します。
- をクリックします。
2.5. チームの作成
新しいチームを作成し、チームに組織を割り当て、各チームに関連付けられているユーザーと管理者を管理できます。チームに関連付けられたユーザーは、そのチームに関連付けられた権限と、チームがメンバーシップを持つ組織の権限を継承します。
チームにユーザーまたは管理者を追加するには、ユーザーがすでに作成されている必要があります。
手順
- ナビゲーションパネルから、 → を選択します。
- をクリックします。
- チームの Name を入力し、オプションで Description を入力します。
このチームに関連付ける Organization を選択します。
注記各チームは 1 つの組織にのみ割り当てることができます。
Details ページが開き、チーム情報を確認および編集できます。
2.6. ユーザーの作成
Ansible Automation Platform には 3 種類のユーザーがいます。
- 標準ユーザー
- 標準ユーザーには、適切なロールや権限が付与されているリソース (インベントリー、プロジェクト、およびジョブテンプレートなど) に限定される読み取りおよび書き込みアクセスがあります。標準ユーザーはデフォルトのユーザータイプです。
- Ansible Automation Platform 管理者
- 管理者 (スーパーユーザーとも呼ばれる) は、インストール全体に対する読み取りおよび書き込み権限をすべて持つ、完全なシステム管理権限を持っています。管理者は通常、日常業務のあらゆる側面を管理し、業務をさまざまなユーザーに委任します。
- Ansible Automation Platform Auditor
- Auditor は、環境内のすべてのオブジェクトに対して読み取り専用権限を持ちます。
手順
- ナビゲーションパネルから、 → を選択します。
- をクリックします。
- Create user ページのフィールドに新しいユーザーの詳細を入力します。アスタリスク (*) の付いたフィールドは必須です。
ユーザータイプが指定されていない場合は、標準ユーザーがデフォルトになります。ユーザーを管理者または監査者として定義するには、User type チェックボックスを選択します。
注記自分のパスワードを変更する場合は、ログアウトして再度ログインし、変更を有効にします。
- このユーザーに割り当てる Organization を選択します。新しい組織の作成は、組織の作成 を参照してください。
- をクリックします。
ユーザーが正常に作成されると、User ダイアログが開きます。ここから、ユーザーのチーム、ロール、トークン、その他のメンバーシップの詳細を確認および変更できます。
新規作成されたユーザーでない場合、詳細画面にはそのユーザーの最後のログインアクティビティーが表示されます。
自分自身としてログインし、ユーザープロファイルの詳細を表示すると、Tokens タブを選択して、ユーザープロファイルからトークンを管理できます。
2.7. GitHub 認証の設定
OAuth を使用して GitHub アイデンティティーを Ansible Automation Platform に接続できます。GitHub 認証をセットアップするには、新しいアプリケーションを GitHub に登録する 方法を使用して、組織所有のアプリケーションを GitHub から登録し、OAuth2 キーとシークレットを取得する必要があります。
OAuth2 キー (クライアント ID) とシークレット (クライアントシークレット) は、UI の必須フィールドに入力する際に使用します。アプリケーションを登録するには、オーセンティケーター設定の Authenticator details に表示される Callback URL である Web ページの URL を指定する必要があります。
手順
- ナビゲーションパネルから、 → を選択します。
- をクリックします。
- Authentication type リストから GitHub を選択し、 をクリックします。
- この認証設定の Name を入力します。
アプリケーションの登録が済むと、GitHub では クライアント ID および クライアントシークレット が表示されます。
- GitHub クライアント ID をコピーして、GitHub OAuth2 Key フィールドにペーストします。
- GitHub クライアントシークレットをコピーして、GitHub OAuth2 Secret フィールドにペーストします。
オプション: このオーセンティケーターが使用できる Additional Authenticator Fields を入力します。これらのフィールドは検証されず、オーセンティケーターに直接返されます。
注記このフィールドで定義された値は、UI で提供される専用フィールドをオーバーライドします。ここで定義されていない値はオーセンティケーターに提供されません。
- 正常にログインした際に組織、ユーザー、チームを自動的に作成するには、Create objects を選択します。
- 作成時にこの認証方法を有効にするには、Enabled を選択します。
- このソースから認証する際に以前に追加されたグループからユーザーを削除するには、Remove users を選択します。
- をクリックします。
検証
認証が正しく設定されていることを確認するには、Ansible Automation Platform からログアウトし、ログイン画面に選択した認証方法のロゴが表示され、その認証情報を使用してログインできることを確認します。
次のステップ
Ansible Automation Platform サーバーにアクセスできるユーザーを制御し、ユーザーの属性 (ユーザー名やメールアドレスなど) または所属するグループに基づいて Ansible Automation Platform 組織またはチームに配置するには、マッピング に進みます。
第3章 自動化開発者として使い始める
自動化開発者は、Ansible Automation Platform を使用して組織の自動化ストラテジーを実装できます。Ansible Automation Platform は、自動化コンテンツの作成、テスト、共有、および Red Hat 認定コレクションのダウンロードと使用に役立ちます。このガイドでは、自動化開発者が Ansible Automation Platform を準備する際の基本的な手順と、以下を行う方法を説明します。
- 開発環境の設定
- カスタム自動化コンテンツの作成、公開、使用
- 自動化の実行環境と決定環境の構築と使用
- Event-Driven Ansible のルールブックアクティベーションの作成および実行
- ジョブテンプレートの作成と使用
3.1. 開発環境の設定
コンテンツの作成を開始する前に、自動化コンテンツの開発 に関するガイドを参照してください。このガイドでは、環境に統合できる Ansible 開発ツールに関する情報や、Playbook プロジェクトをスキャフォールディングする方法を確認できます。
3.2. Playbook を使用した自動化コンテンツの作成
Ansible Playbook は、どのデバイスでどのタスクを実行するかを Ansible Automation Platform に指示するブループリントです。Playbook を使用して、プラットフォームで実行する自動化タスクを定義できます。
3.2.1. Playbook の作成
Playbook には 1 つ以上のプレイを含めます。基本的なプレイには、次のパラメーターを含めます。
- 名前: Playbook の全体的な機能の簡単な説明。これにより、Playbook をすべてのユーザーにとって理解しやすく整理されたものにすることができます。
- ホスト: Ansible を実行するターゲットを示します。
-
become ステートメント: これは任意のステートメントです。
true
またはyes
に設定すると、become プラグイン (sudo
、su
、pfexec
、doas
、pbrun
、dzdo
、ksu
など) を使用して権限昇格を有効にできます。 - タスク: これは、プレイ内の各ホストに対して実行されるアクションのリストです。
以下は Playbook 内のプレイの例です。プレイの名前、ホスト、プレイに含まれるタスクのリストを確認できます。
- name: Set Up a Project and Job Template hosts: host.name.ip become: true tasks: - name: Create a Project ansible.controller.project: name: Job Template Test Project state: present scm_type: git scm_url: https://github.com/ansible/ansible-tower-samples.git - name: Create a Job Template ansible.controller.job_template: name: my-job-1 project: Job Template Test Project inventory: Demo Inventory playbook: hello_world.yml job_type: run state: present
Playbook の作成に関する詳細な手順は、自動化コンテンツの開発 を参照してください。または、AI アシスタンスを使用して Playbook を生成する方法は、Red Hat Ansible Lightspeed with IBM watsonx Code Assistant ユーザーガイド ドキュメントを参照してください。
3.3. ルールブックでのイベントの定義
Ansible ルールブックは、1 つ以上のソース、ルール、条件を参照するルールセットのコレクションです。
Event-Driven Ansible にとってルールブックは、Ansible Automation Platform 全体にとっての Playbook に相当します。Playbook と同様に、ルールブックはプラットフォームの自動化タスクと、それらをいつトリガーするかを定義します。
3.3.1. ルールブックのアクション
ルールブックは、"if-this-then-that” ロジックを使用して、ルールがトリガーされた際にどのアクションをアクティブにするかを Event-Driven Ansible に指示します。Event-Driven Ansible は、コントローラーのイベントストリームをリッスンし、イベントがルールをトリガーすると、それに応じて自動化アクションをアクティブ化します。
ルールブックは、次のアクティブ化をトリガーできます。
-
run_job_template
-
run_playbook
(ansible-rulebook CLI でのみサポート) -
debug
-
print_event
-
set_fact
-
post_event
-
retract_fact
-
shutdown
ルールブックアクティベーションの詳細は、Ansible ルールブックのドキュメントの Actions を参照してください。
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 Automation Platform が提供する機能を活用するには、コレクション内に新しいロールを作成してください。
手順
-
ターミナルで、コレクション内の
roles
ディレクトリーに移動します。 コレクション内に
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
の内容は、ロールディレクトリー内で有効なファイルまたはフォルダーであれば、任意のものを使用できます。
3.5. コンテンツコレクションについて
Ansible コンテンツコレクションは、自動化コンテンツの集合体です。Ansible コレクションには 2 つの種類があります。
- Ansible Certified Content Collections: エンタープライズ環境および実稼働環境での使用に対応した、フルサポート対象のロールとモジュールが含まれています。
- Ansible 検証済みコンテンツコレクション: エキスパートのガイドに基づく信頼性の高い手法を利用して、お使いの製品で基本的な操作とタスクを実行できます。
どちらの種類のコンテンツコレクションも、Hybrid Cloud Console から Automation Hub で見つけることができます。
3.6. コレクションへの公開
プロジェクトを、Git または任意のソースコントロールマネージャーにアップロードするように設定できます。
手順
- ナビゲーションパネルから、 → を選択します。
- ソースコントロールマネージャーに公開するプロジェクトを検索するか、作成します。
- プロジェクトの Details タブで、Edit project を選択します。
- Source Control Type ドロップダウンメニューから Git を選択します。
以下のフィールドに該当する詳細を入力します。
- Source Control URL - ツールチップの例を参照してください。
-
オプション: Source control branch/tag/commit: チェックアウトするソースコントロールの SCM ブランチ、タグ、コミットハッシュ、任意の参照、またはリビジョン番号 (該当する場合) を入力します。次のフィールドにカスタム refspec も指定しない限り、一部のコミットハッシュと参照は使用できない場合があります。空白のままにした場合、デフォルトは
HEAD
(このプロジェクトで最後にチェックアウトされたブランチ、タグ、またはコミット) になります。 - Source Control Refspec - このフィールドは、Git ソースコントロール専用のオプションです。Git の知識があり、問題なく使用できる上級ユーザーである場合にのみ、リモートリポジトリーからダウンロードする参照を指定してください。詳細は、ジョブブランチのオーバーライド を参照してください。
- Source Control Credential - 認証が必要な場合は、適切なソースコントロール認証情報を選択します。
オプション: Options - 該当する場合、起動動作を選択します。
- Clean - 更新を実行する前にローカルの変更を削除します。
- Delete - 更新を実行する前に、ローカルリポジトリー全体を削除します。リポジトリーのサイズにより、更新の完了までに必要な時間が大幅に長くなる可能性があります。
- Track submodules - 最新のコミットを追跡します。詳細はツールチップを参照してください。
- Update Revision on Launch - プロジェクトのリビジョンをリモートソースコントロールの現在のリビジョンに更新し、Ansible Galaxy または コレクションサポート からロールディレクトリーをキャッシュします。Automation Controller は、ローカルリビジョンが一致し、ロールとコレクションが最終更新で最新であることを確認します。さらに、これを選択すると、プロジェクトが同期できるよりも早くジョブが生成された場合にジョブのオーバーフローを回避するために、以前のプロジェクトの同期を指定した秒数キャッシュするようにキャッシュタイムアウトを設定できます。
- Allow Branch Override - このプロジェクトを使用するジョブテンプレートまたはインベントリーソースが、プロジェクト以外の指定された SCM ブランチまたはリビジョンで起動できるようにします。詳細は、ジョブブランチのオーバーライド を参照してください。
- をクリックしてプロジェクトを保存します。
3.6.1. Automation Hub へのコレクションのアップロード
作成したコレクションを Ansible コミュニティーの他のメンバーと共有する場合は、それを Automation Hub にアップロードできます。
コレクションを Ansible コミュニティーと共有するには、Partner Engineering チームによるコレクションの認定または検証を受ける必要があります。認定または検証を受けることができるのは、パートナークライアントだけです。パートナーになる方法の詳細は、ソフトウェア認定に関するドキュメント をご覧ください。
コレクションは、Automation Hub ユーザーインターフェイスまたは ansible-galaxy
クライアントのいずれかを使用してアップロードできます。
前提条件
-
Automation Hub 用に
ansible-galaxy
クライアントを設定した。 - 名前空間が 1 つ以上ある。
-
すべてのコンテンツを
ansible-test sanity
で実行した。
手順
- ナビゲーションパネルから、 → を選択します。
- My namespaces タブ内で、コレクションのアップロード先の名前空間を見つけてクリックします。
- Collections タブを選択し、 をクリックします。
- New collection モーダルで、Select file をクリックします。システムのファイルを見つけます。
- をクリックします。
ansible-galaxy
クライアントを使用して、次のコマンドを入力します。
$ ansible-galaxy collection publish path/to/my_namespace-my_collection-1.0.0.tar.gz --api-key=SECRET
3.7. 実行環境の構築および使用
Red Hat Ansible Automation Platform のすべての自動化は、自動化実行環境と呼ばれるコンテナーイメージ上で実行されます。
自動化実行環境は、Ansible コントロールノードとして機能する一貫性のある共有可能なコンテナーイメージです。自動化実行環境は、外部の依存関係のある Ansible コンテンツを共有する際の課題を軽減します。自動化コンテンツが開発者が作成したスクリプトのようなものだとすると、自動化実行環境はその開発者の環境のレプリカのようなもので、開発者が作成した自動化コンテンツを再現およびスケーリングすることが可能となります。このように、実行環境を使用すると、さまざまな環境で自動化を簡単に実装できます。
自動化実行環境には、以下が含まれます。
- Ansible Core
- Ansible Runner
- Ansible コレクション
- Python ライブラリー
- システムの依存関係
- カスタムのユーザーニーズ
Ansible Automation Platform サブスクリプションに含まれるデフォルトのベース実行環境を使用することも、Ansible Builder を使用して自動化実行環境を定義して作成することもできます。
3.7.1. ベース自動化実行環境の使用
Ansible Automation Platform のサブスクリプションにより、いくつかのベース自動化実行環境にアクセスできます。ベース自動化実行環境は、カスタマイズされた実行環境を作成するための土台として使用できます。
Ansible Automation Platform に含まれるベースイメージは、Red Hat Ecosystem Catalog (registry.redhat.io) でホストされています。
前提条件
- 有効な Red Hat Ansible Automation Platform サブスクリプションがある。
手順
registry.redhat.io にログインします。
$ podman login registry.redhat.io
- レジストリーからベースイメージをプルします。
$podman pull registry.redhat.io/aap/<image name>
3.7.1.1. ベース実行環境イメージのカスタマイズ
Ansible Automation Platform には、次のデフォルトの実行環境が含まれています。
-
Minimal
- 最新の Ansible-core 2.15 リリースと Ansible Runner が含まれていますが、コレクションやその他のコンテンツは含まれていません。 -
EE Supported
- Minimal に加え、Red Hat がサポートするすべてのコレクションと依存関係が含まれています。
これらの環境は多くの自動化ユースケースに対応しますが、追加の項目を追加して、特定のニーズに合わせてこれらのコンテナーをカスタマイズできます。実行環境のカスタマイズの詳細は、「実行環境の作成と使用」ガイドの 既存の自動化実行環境イメージのカスタマイズ を参照してください。
3.7.1.2. Ansible Builder について
Ansible Builder (実行環境ビルダーとも呼ばれます) を使用して、まったく新しい実行環境を作成することもできます。Ansible Builder は、Ansible の実行環境を作成するために使用できるコマンドラインツールです。実行環境を作成するには、Ansible Builder を使用する必要があります。
独自の実行環境を構築するには、以下を実行する必要があります。
- Ansible Builder のダウンロード
- 実行環境を定義する定義ファイルの作成
- 定義ファイルをベースとする実行環境イメージの作成
実行環境の構築の詳細は、実行環境の作成と使用 を参照してください。
3.7.2. ジョブテンプレートへの実行環境の追加
前提条件
- Ansible Builder の使用 の説明に従って、ansible-builder を使用して実行環境が作成されている。実行環境を作成したら、その環境を使用してジョブを実行できます。Automation Controller UI を使用して、ジョブテンプレートで使用する実行環境を指定します。
- 実行環境がグローバルに使用できるように指定されているか、組織に関連付けられているかに応じて、ジョブで実行環境を使用するための適切なレベルの管理者権限を持っている。組織に関連付けられた実行環境では、組織管理者がそれらの実行環境でジョブを実行できる必要があります。
- 認証情報が割り当てられた実行環境を使用するジョブまたはジョブテンプレートを実行する前に、認証情報にユーザー名、ホスト、およびパスワードが含まれていることを確認している。
手順
- ナビゲーションパネルから、 → → を選択します。
- をクリックして実行環境を作成します。
以下のフィールドに該当する詳細を入力します。
- Name (必須): 実行環境の名前を入力します。
-
Image (必須): イメージ名を入力します。イメージ名には、完全な場所 (リポジトリー)、レジストリー、イメージ名、バージョンタグが必要です。たとえば、
quay.io/ansible/awx-ee:latestrepo/project/image-name:tag
のように入力します。 オプション: Pull: ジョブを実行するときのプルのタイプを選択します。
- Always pull container before running: コンテナーの最新のイメージファイルをプルします。
- Only pull the image if not present before running: 何も指定されていない場合にのみ、最新のイメージをプルします。
Never pull container before running: コンテナーイメージの最新バージョンをプルしません。
注記プルのタイプを設定しなかった場合、値はデフォルトで Only pull the image if not present before running になります。
- オプション: Description: 必要に応じて説明を入力します。
- オプション: Organization: この実行環境を使用する組織を指定します。実行環境を複数の組織間で使用できるようにするには、このフィールドを空白のままにします。
- Registry credential: イメージに保護されたコンテナーレジストリーがある場合は、それにアクセスするための認証情報を提供します。
- をクリックします。新しく追加した実行環境をジョブテンプレートで使用する準備ができました。
- ジョブテンプレートに実行環境を追加するために、execution environment というラベルの付いたフィールドで実行環境を指定します。 → に移動してテンプレートを選択します。 をクリックし、
実行環境をジョブテンプレートに追加すると、そのテンプレートが実行環境の詳細の Templates タブにリストされます。
3.7.2.1. コンテナーレジストリーについて
維持したい実行環境が多数ある場合は、Private Automation Hub にリンクされたコンテナーレジストリーにそれらを保存できます。
詳細は、「実行環境の作成と使用」ガイドの Private Automation Hub コンテナーレジストリーへの入力 を参照してください。
3.8. 決定環境の構築と使用
Event-Driven Ansible には、サンプルソース、イベントフィルター、ルールブックを含む ansible.eda コレクションが含まれています。すべてのコレクション、Ansible ルールブック、およびそれらの依存関係は、決定環境を使用します。決定環境は、Podman または Kubernetes で実行できるイメージです。
決定環境では、ソース (通常は Python コード) は ansible-collections を通じて配布されます。外部イベントは、ルールブックに挿入されて処理されます。ルールブックは次の内容で構成されます。
- Python インタープリター
- Drools ルールエンジン用の Java ランタイム環境
- ansible-rulebook Python パッケージ
- ansible.eda コレクション
ベースとなる決定環境を使用し、追加のコレクションとコレクションの依存関係を使用することで、独自にカスタマイズした決定環境を構築できます。Dockerfile を使用して決定環境を構築することも、必要に応じて CA 証明書をイメージにデプロイすることもできます。
3.8.1. 新しい決定環境の設定
次の手順では、決定環境をプラットフォームにインポートする方法について説明します。
前提条件
- 必要な認証情報をすべて設定した。詳細は、「自動化決定の使用」ガイドの 認証情報の設定 セクションを参照してください。
-
決定環境イメージをイメージリポジトリーにプッシュしたか、registry.redhat.io で提供されている
de-supported
イメージを使用することを選択した。
手順
- → に移動します。
- をクリックします。
以下の設定を入力します。
- 名前
- 名前を入力します。
- Description
- このフィールドは任意です。
- Image
- これは、コンテナーレジストリー、イメージ名、およびバージョンタグを含む完全なイメージの場所です。
- Credential
- このフィールドは任意です。これは、決定環境イメージを使用するために必要なトークンです。
- を選択します。
これで決定環境が作成され、Decision Environments ページで管理できるようになります。
新しい決定環境を保存すると、決定環境の詳細ページが表示されます。そのページまたは Decision Environment リストビューから、決定環境を編集または削除できます。
3.9. 自動化実行プロジェクトの作成
プロジェクトとは、Playbook の論理的なコレクションです。プロジェクトは、選択した整理原則に従って自動化コンテンツをグループ化する方法として役立ちます。
プラットフォーム UI で自動化実行プロジェクトをセットアップできます。
手順
- ナビゲーションパネルから、 → を選択します。
- Projects ページで、 をクリックして、Create Project ウィンドウを起動します。
以下の必須フィールドに適切な情報を入力します。
- Name (必須)
- オプション: Description
- Organization (必須): プロジェクトには少なくとも 1 つの組織が必要です。ここで組織を 1 つ選択してプロジェクトを作成します。プロジェクトの作成時に、組織を追加できます。
- オプション: Execution Environment: このプロジェクトを実行するための実行環境の名前を入力するか、既存の環境のリストから検索します。
- Source Control Type (必須): このプロジェクトに関連付けられた SCM タイプをメニューから選択します。選択したタイプに応じて、次のセクションのオプションが使用可能になります。詳細は、Playbook の手動管理 または ソースコントロールを使用した Playbook の管理 を参照してください。
- オプション: Content Signature Validation Credential: このフィールドを使用して、コンテンツ検証を有効にします。プロジェクトの同期中にコンテンツの署名を検証するために使用する GPG キーを指定します。コンテンツが改ざんされている場合、ジョブは実行されません。詳細は、プロジェクトの署名と検証 を参照してください。
- をクリックします。
3.10. 自動化決定プロジェクトの作成
自動化実行プロジェクトと同様に、自動化決定プロジェクトは自動化決定コンテンツの論理的なコレクションです。プロジェクト機能を使用すると、自動化決定内容を自分にとってわかりやすい方法で整理できます。
前提条件
- 必要な認証情報をすべて設定した。詳細は、「自動化決定の使用」ガイドの 認証情報の設定 セクションを参照してください。
- Automation Controller が使用する、リポジトリーに含まれている Playbook と統合されたルールブックを含む既存のリポジトリーがある。
手順
- ナビゲーションパネルから、 → を選択します。
- をクリックします。
以下の情報を入力します。
- Name: プロジェクト名を入力します。
- Description: このフィールドは任意です。
- Organization: プロジェクトに関連付ける組織を選択します。
- Source control type: 使用できる SCM タイプは Git のみです。
- Proxy: HTTP または HTTPS サーバーにアクセスするために使用されるプロキシー。
- Source control branch/tag/commit: チェックアウトするブランチ。タグ、コミットハッシュ、または任意の参照にすることもできます。
- Source control refspec: 取得する refspec。このパラメーターにより、他の方法では利用できないブランチフィールド経由の参照にアクセスできるようになります。
- オプション: Source control credential: ソースコントロール URL を使用するために必要なトークン。
- Content signature validation credential: コンテンツ署名を有効にして、プロジェクトの同期時にコンテンツがセキュアな状態に保たれていることを検証します。コンテンツが改ざんされている場合、ジョブは実行されません。
- Options: Verify SSL の横にあるボックスをオンにすると、プロジェクトのインポート時に HTTPS で SSL が検証されます。
- をクリックします。
プロジェクトが作成され、Projects 画面で管理できるようになります。
新しいプロジェクトを保存すると、プロジェクトの詳細ページが表示されます。そのページまたは Projects リストビューから、プロジェクトを編集または削除できます。
3.11. インベントリーについて
インベントリーは、Ansible Automation Platform によって管理される一連のホストを指定したファイルです。組織はインベントリーに割り当てられます。一方、インベントリーに対して Playbook を起動する権限は、ユーザーまたはチームレベルで制御されます。
3.11.1. インベントリーの閲覧と作成
→ → に移動すると、UI でインベントリーを確認できます。Inventories ウィンドウには、現在使用可能なインベントリーのリストが表示されます。インベントリーのリストは、名前で並べ替えたり、インベントリータイプ、組織、説明、インベントリー作成者または変更者、その他の条件で検索したりできます。新しいインベントリーを作成するには、次の手順に従います。
手順
- ナビゲーションパネルから Inventories ビューに、現在利用可能なインベントリーのリストが表示されます。 → → を選択します。
- をクリックし、リストメニューから作成するインベントリーのタイプを選択します。
以下のフィールドに該当する詳細を入力します。
- Name: インベントリーの名前を入力します。
- オプション: Description: 説明を入力します。
- Organization: 利用可能な組織の中から選択します。
- スマートインベントリーにのみ適用: Smart Host Filter: フィルターは、該当する名前を含む特定のホストをフィルタリングするために使用されるという点で、タグに似ています。したがって、このフィールドに入力する際には、ホスト自体ではなく、必要なホストを含むタグを指定します。フィルターでは大文字と小文字が区別されます。詳細は、「自動化実行の使用」ガイドの スマートホストフィルター を参照してください。
- Instance groups: このインベントリーを実行するインスタンスグループを選択します。リストが膨大な場合は、検索を使用してオプションを絞り込みます。複数のインスタンスグループを選択し、実行する順序で並べ替えることができます。
- オプション: Labels: このインベントリーを説明するラベルを追加します。これにより、ラベルを使用してインベントリーとジョブをグループ化およびフィルタリングできるようになります。
- 構築型インベントリーにのみ適用: Input inventories: この構築型インベントリーに含めるソースインベントリーを指定します。入力インベントリーの空のグループが、構築型インベントリーにコピーされます。
- 構築型インベントリーにのみ適用 (オプション): Cache timeout (seconds): キャッシュプラグインデータのタイムアウト時間を設定します。
構築型インベントリーにのみ適用: Verbosity: 構築型インベントリーに関連付けられたインベントリーソースに関連する Playbook の実行時に Ansible が生成する出力のレベルを制御します。冗長性を標準からさまざまな冗長またはデバッグ設定まで選択します。これは "details" のレポートビューにのみ表示されます。
- 詳細ログには、すべてのコマンドの出力が含まれます。
- デバッグログは非常に詳細であり、特定のサポートインスタンスで役立つ SSH 操作に関する情報が含まれています。ほとんどのユーザーはデバッグモードの出力を確認する必要はありません。
- 構築型インベントリーにのみ適用: Limit: 構築済みインベントリーに関連付けられたインベントリーソースに対して返されるホストの数を制限します。グループ名を limit フィールドに貼り付けて、そのグループ内のホストのみを含めることができます。詳細は、Source variables 設定を参照してください。
標準インベントリーにのみ適用: Options: Instance groups フィールドにリストされているインスタンスグループのみがジョブを実行できるようにするには、Prevent instance group fallback の横にあるチェックボックスをオンにします。オフにすると、「自動化実行の設定」ガイドの ジョブ実行場所の制御 で説明されている階層に基づいて、実行プール内の使用可能なすべてのインスタンスが使用されます。詳細はツールチップをクリックしてください。
注記スマートインベントリーの
prevent_instance_group_fallback
オプションは、API を介して設定します。Variables (構築型インベントリーの場合は Source variables):
- Variables このインベントリー内のすべてのホストに適用する変数の定義と値。JSON または YAML 構文を使用して変数を入力します。ラジオボタンを使用して、その 2 つを切り替えます。
-
構築型インベントリーの Source variables は、構築型インベントリーのプラグインを設定するために使用されます。ソース変数は、
groups
データキーの下にグループを作成します。変数は、Jinja2 テンプレート構文を受け入れ、それをすべてのホストに対してレンダリングし、true
またはfalse
の評価を行い、結果がtrue
の場合はホストを (エントリーのキーから) グループに含めます。
- をクリックします。
新しいインベントリーを作成したら、インベントリーのタイプに応じて、権限、グループ、ホスト、ソースの設定、完了したジョブの表示に進むことができます。
3.12. ジョブテンプレートの使用
ジョブテンプレートは、Ansible ジョブを実行するための定義とパラメーターのセットです。
ジョブテンプレートは、プロジェクトの Ansible Playbook と、Playbook の実行対象となるターゲットホストに関する情報、ホストにアクセスするための認証情報、その他の関連変数など、Playbook の起動に必要な設定を組み合わせます。ジョブテンプレートは、同じジョブを何度も実行する場合に役立ちます。また、ジョブテンプレートは、Ansible Playbook コンテンツの再利用とチーム間のコラボレーションを促進します。詳細は、「Automation Controller ユーザーガイド」の「ジョブテンプレート」を参照してください。
3.12.1. ジョブテンプレートの使い始める
初期設定の一環として、Demo Job Template が作成されます。
手順
- 既存のテンプレートを確認するには、ナビゲーションパネルから → を選択します。
- をクリックして、その詳細を表示します。
3.12.2. ジョブテンプレートの作成
手順
- ナビゲーションパネルから、 → を選択します。
- Templates ページで、Create template リストから Create job template を選択します。
次のフィールドに適切な詳細を入力します。
注記フィールドで Prompt on launch を表示するチェックボックスがオンになっている場合、ジョブを起動すると、起動時にそのフィールドの値の入力を求めるプロンプトが表示されます。
ほとんどのプロンプト値は、ジョブテンプレートに設定されている値をオーバーライドします。
次の表に例外を示します。
フィールド オプション Prompt on Launch Name
ジョブの名前を入力します。
該当なし
Description
必要に応じて、任意の説明を入力します (オプション)。
該当なし
Job Type
ジョブタイプを選択します。
- Run: 起動時に Playbook を開始し、選択したホストで Ansible タスクを実行します。
- Check: Playbook の「ドライラン」を実行します。実際に変更を加えずに、変更内容を報告します。チェックモードをサポートしていないタスクは無視され、変更予定の内容は報告されません。
ジョブタイプの詳細は、Ansible ドキュメントの Playbook セクションを参照してください。
はい
Inventory
ログインしているユーザーが使用できるインベントリーから、このジョブテンプレートで使用するインベントリーを選択します。
システム管理者は、ジョブテンプレート内の特定のインベントリーを使用できるように、ユーザーまたはチームのパーミッションを割り当てる必要があります。
必須です。
インベントリーのプロンプトは、後続のプロンプトウィンドウに独自のステップとして表示されます。
Project
ログインしているユーザーが利用できるプロジェクトから、このジョブテンプレートで使用するプロジェクトを選択します。
該当なし
Source control branch
このフィールドは、ブランチの上書きを許可するプロジェクトを選択した場合にのみ表示されます。ジョブの実行で使用する上書きブランチを指定します。空白のままにすると、プロジェクトから指定された SCM ブランチ (またはコミットハッシュまたはタグ) が使用されます。
詳細は、ジョブブランチのオーバーライド を参照してください。
はい
Execution Environment
このジョブの実行に使用するコンテナーイメージを選択します。実行環境を選択する前にプロジェクトを選択する必要があります。
必須です。
実行環境のプロンプトは、後続のプロンプトウィンドウに独自のステップとして表示されます。
Playbook
使用可能な Playbook から、このジョブテンプレートで起動する Playbook を選択します。このフィールドには、選択したプロジェクトのプロジェクトベースパスにある Playbook の名前が自動的に入力されます。あるいは、Playbook がリストされていない場合は、その Playbook での実行に使用するファイル (foo.yml など) の名前など、Playbook の名前を入力することもできます。無効なファイル名を入力すると、テンプレートにエラーが表示されるか、ジョブが失敗します。
該当なし
Credentials
アイコンを選択すると、別のウィンドウが開きます。
利用可能なオプションから、このジョブテンプレートで使用する認証情報を選択します。
リストが膨大な場合は、ドロップダウンメニューリストを使用して認証情報タイプでフィルタリングします。一部の認証情報タイプは、特定のジョブテンプレートに適用されないため、リストされていません。
- 選択した場合、デフォルトの認証情報が含まれるジョブテンプレートが起動したときに、別の認証情報を指定すると、デフォルトの認証情報が置き換えられます (認証情報が同じタイプの場合)。このメッセージの例を次に示します。
Job Template default credentials must be replaced with one of the same type.Please select a credential for the following types in order to proceed: Machine.
- 必要に応じて、さらに認証情報を追加できます。
- 認証情報のプロンプトは、後続のプロンプトウィンドウに独自のステップとして表示されます。
Labels
-
必要に応じて、このジョブテンプレートを説明するラベル (
dev
やtest
など) を指定します。 - ラベルを使用して、表示内のジョブテンプレートと完了したジョブをグループ化およびフィルタリングします。
- ラベルはジョブテンプレートの追加時に作成されます。ラベルは、ジョブテンプレートで指定されたプロジェクトを使用して、単一の組織に関連付けられます。組織のメンバーは、編集パーミッション (管理者ロールなど) を持っている場合、ジョブテンプレートにラベルを作成できます。
- ジョブテンプレートを保存すると、Expanded ビューの Job Templates の概要にラベルが表示されます。
-
ラベルの横にある
を選択して削除します。ラベルが削除されると、そのラベルはその特定のジョブまたはジョブテンプレートとの関連付けが解除されますが、ラベルを参照する他のジョブには関連付けられたままになります。
- ジョブは、起動時にジョブテンプレートからラベルを継承します。ジョブテンプレートからラベルを削除すると、ジョブからも削除されます。
- 選択すると、デフォルト値が指定されている場合でも、必要に応じて起動時に追加のラベルを指定するようにプロンプトが表示されます。
-
既存のラベルは削除されません。つまり、
を選択すると、新たに追加したラベルだけが削除され、既存のデフォルトラベルは削除されません。
Forks
Playbook の実行中に使用する並列または同時プロセスの数です。値 0 は、
/etc/ansible/ansible.cfg
でオーバーライドされない限り、Ansible のデフォルト設定 (5 つの並列プロセス) を使用します。はい
Limit
Playbook が管理または影響を与えるホストのリストをさらに制限するためのホストのパターンを指定します。複数のパターンをコロン (:) で区切ることができます。コア Ansible と同じです。
- a:b は「a または b のグループに含まれる」という意味です。
- a:b:&c は、「a または b に含まれるが、c には必ず含まれなければならない」という意味です。
- a:!b は「a にはあるが、b には絶対にない」という意味です。
詳細は、Ansible ドキュメントの Patterns: targeting hosts and groups を参照してください。
はい
選択されていない場合、ジョブテンプレートがインベントリー内のすべてのノードに対して実行されるか、または Limit フィールドで事前定義されたノードに対してのみ実行されます。ワークフローの一部として実行する場合は、代わりにワークフロージョブテンプレートの制限が使用されます。
Verbosity
Playbook の実行時に Ansible が生成する出力レベルを制御します。Normal やさまざまな Verbose または Debug 設定から詳細度を選択します。これは details レポートビューにのみ表示されます。詳細ログには、すべてのコマンドの出力が含まれます。デバッグログは非常に詳細で、一部のサポート事例に役立つ SSH 操作に関する情報が含まれています。
詳細の値が
5
の場合、Automation Controller はジョブの実行時にブロックを実行し、これによりジョブが終了したことを示すレポートが遅延するため (レポートが作成されている場合でも)、ブラウザータブがロックアップする可能性があります。はい
Job Slicing
このジョブテンプレートを実行するスライスの数を指定します。各スライスは、インベントリーの一部に対して同じタスクを実行します。ジョブスライスの詳細は、ジョブスライス を参照してください。
はい
Timeout
ジョブがキャンセルされるまでの実行時間 (秒単位) を指定できます。タイムアウト値を設定するには、次の点を考慮してください。
- 設定にはグローバルタイムアウトが定義されており、デフォルトは 0 で、タイムアウトがないことを示します。
- ジョブテンプレートの負のタイムアウト (<0) は、ジョブの "タイムアウト" はありません。
- ジョブテンプレートのタイムアウトが 0 の場合、ジョブはデフォルトでグローバルタイムアウトになります (デフォルトではタイムアウトなし)。
- 正のタイムアウトは、そのジョブテンプレートのタイムアウトを設定します。
はい
Show Changes
Ansible タスクによって加えられた変更を確認できます。
はい
Instance Groups
このジョブテンプレートに関連付ける インスタンスおよびコンテナーグループ を選択します。リストが膨大な場合は、
アイコンを使用してオプションを絞り込みます。ジョブテンプレートのインスタンスグループは、ジョブのスケジュール基準に影響します。ルールは、ジョブランタイムの動作 および ジョブ実行場所の制御 を参照してください。システム管理者は、ジョブテンプレート内のインスタンスグループを使用できるように、ユーザーまたはチームのパーミッションを割り当てる必要があります。コンテナーグループを使用するには管理者権限が必要です。
- 必須です。
選択すると、ジョブの優先インスタンスグループが優先順に提供されます。最初のグループの容量が不足している場合は、容量のあるグループが見つかるまでリスト内の後続のグループが検討され、見つかった時点でそのグループが選択されてジョブが実行されます。
- インスタンスグループの入力を求めるプロンプトが表示された場合は、入力した内容が通常のインスタンスグループ階層を置き換え、組織とインベントリーのすべてのインスタンスグループをオーバーライドします。
- インスタンスグループのプロンプトは、後続のプロンプトウィンドウに独自のステップとして表示されます。
Job Tags
Create メニューを入力して選択し、Playbook のどの部分を実行するかを指定します。詳細と例は、Ansible ドキュメントの Tags を参照してください。
はい
Skip Tags
Create メニューを入力して選択し、スキップする Playbook の特定のタスクまたは部分を指定します。詳細と例は、Ansible ドキュメントの Tags を参照してください。
はい
Extra Variables
- 追加のコマンドライン変数を Playbook に渡します。これは、ansible-playbook の "-e" または "-extra-vars" コマンドラインパラメーターで、これは、Ansible Tower ドキュメント (Defining variables at runtime) に説明されています。
-
YAML または JSON を使用してキーまたは値のペアを提供します。これらの変数には優先順位の最大値があり、他の場所で指定された他の変数をオーバーライドします。
git_branch: production release_version: 1.5
は、値の例です。
必須です。
スケジュールで
extra_vars
を指定できるようにするには、ジョブテンプレートの変数に対して Prompt on launch を選択するか、ジョブテンプレートで Survey を有効にする必要があります。回答された Survey の質問はextra_vars
になります。必要に応じて、このテンプレートを起動するための次のオプションを設定できます。
-
Privilege Escalation: オンにすると、この Playbook を管理者として実行できるようになります。これは、
--become
オプションをansible-playbook
コマンドに渡すことと同じです。 - Provisioning callback: オンにすると、ホストが REST API 経由で Automation Controller にコールバックし、このジョブテンプレートからジョブを起動できるようになります。詳細は、プロビジョニングコールバック を参照してください。
Enable webhook: オンにすると、ジョブテンプレートの起動に使用される事前定義された SCM システム Web サービスとのインターフェイス機能が有効になります。GitHub と GitLab がサポートされている SCM システムです。Webhook を有効にすると、他のフィールドが表示され、以下の追加情報の入力を求められます。
- Webhook service: Webhook からリッスンするサービスを選択します。
- Webhook URL: POST 要求を送信する Webhook サービスの URL が自動的に入力されます。
- Webhook key: Webhook サービスが Automation Controller に送信するペイロードに署名する際に使用するための、生成された共有シークレット。Automation Controller がこのサービスから Webhook を受け入れるようにするには、Webhook サービスの設定で指定する必要があります。
Webhook credential: オプションで、Webhook サービスにステータス更新を送信するために使用する認証情報として、GitHub または GitLab の Personal Access Token (PAT) を指定します。
選択する前に、認証情報が存在している必要があります。
認証情報を作成するには、認証情報タイプ を参照してください。
- Webhook の設定の関連情報は、Webhook の使用 を参照してください。
- Concurrent jobs: オンにすると、キュー内のジョブが相互に依存していない場合に同時に実行されるようになります。ジョブスライスを同時に実行する場合は、このボックスをオンにします。詳細は、Automation Controller の容量決定とジョブへの影響 を参照してください。
- Enable fact storage: オンにすると、ジョブの実行に関連するインベントリー内のすべてのホストについて収集されたファクトを Automation Controller が保存します。
- Prevent instance group fallback: このオプションをオンにすると、Instance Groups フィールドにリストされているインスタンスグループのみがジョブを実行できます。オフの場合、ジョブの実行場所の制御 で説明されている階層に基づいて、実行プール内の使用可能なすべてのインスタンスが使用されます。
-
Privilege Escalation: オンにすると、この Playbook を管理者として実行できるようになります。これは、
- ジョブテンプレートの詳細の設定が完了したら、 をクリックします。
テンプレートを作成してもジョブテンプレートページは終了せず、ジョブテンプレートの Details タブに進みます。テンプレートを保存したら、 をクリックしてジョブを開始できます。また、 をクリックして、権限、通知、完了したジョブの表示、アンケートの追加 (ジョブタイプがスキャンでない場合) などのテンプレートの属性を追加または変更することもできます。起動する前にまずテンプレートを保存する必要があります。そうしないと、 は無効のままになります。
検証
- ナビゲーションパネルから、 → を選択します。
- 新しく作成したテンプレートが Templates ページに表示されることを確認します。
3.12.3. ジョブテンプレートの編集
初期設定時には、デフォルトの Demo Job Template をそのままにしておくことができます。後で編集することもできます。
手順
次のいずれかの方法を使用して、テンプレートを開いて編集します。
- ジョブテンプレートの Details ページで をクリックします。
- ナビゲーションパネルから、 → を選択します。テンプレート名の横にある をクリックし、適切な詳細を編集します。
変更を保存します。
- 保存後に終了して Templates リストビューに戻るには、パンくずリストのナビゲーションリンクを使用するか、 をクリックします。 をクリックしても Details ダイアログは終了しません。
3.13. ルールブックアクティベーションの作成および実行
Event-Driven Ansible では、ルールブックアクティベーションは、特定のルールブックを実行する決定環境によって定義され、バックグラウンドで実行されるプロセスです。
3.13.1. ルールブックアクティベーションの設定
前提条件
- プロジェクトを設定している。
- 決定環境を設定している。
手順
- ナビゲーションパネルから、 → を選択します。
- をクリックします。
以下の情報を入力します。
- Name: 名前を入力します。
- Description: このフィールドは任意です。
- Organization: このフィールドは任意です。
- Project: このフィールドは任意です。
- Rulebook: 選択したプロジェクトに応じてルールブックが表示されます。
Credential: このルールブックアクティベーションの認証情報を 0 個以上選択します。このフィールドは任意です。
注記このフィールドに表示される認証情報は、ルールブックアクティベーションに基づいてカスタマイズされています。表示される認証情報のタイプは、Vault、Red Hat Ansible Automation Platform、または作成したカスタム認証情報タイプだけです。認証情報の詳細は、「自動化決定の使用」ガイドの 認証情報 を参照してください。
Decision environment: 決定環境は、Ansible ルールブックを実行するためのコンテナーイメージです。
注記Event-Driven Ansible Controller では、決定環境のプルポリシーをカスタマイズすることはできません。デフォルトでは、always ポリシーの動作に従います。アクティベーションが開始されるたびに、システムはイメージの最新バージョンを取得しようとします。
Restart policy: これは、ソースプラグインを実行しているコンテナープロセスが終了した後にアクティベーションを再開する方法を決定するポリシーです。以下のオプションから選択します。
- Always: ルールブックアクティベーションが正常に終了したかどうかに関係なく、ルールブックのアクティベーションを直ちに再開します。これは 5 回まで実行されます。
- Never: コンテナープロセスが終了したときに、ルールブックアクティベーションを再開しません。
- On failure: コンテナープロセスが失敗した場合にのみ、デフォルトで 60 秒後にルールブックアクティベーションを再開します。これは 5 回まで実行されます。
Log level: このフィールドでは、ログに記録するイベントの重大度とコンテンツのタイプを定義します。次のいずれかのオプションを選択します。
- Error: アクティベーションの History タブに表示されるエラーメッセージを含むログ。
- Info: 成功または失敗、トリガーされたアクション名と関連するアクションイベント、エラーなど、ルールブックアクティベーションに関する有用な情報を含むログ。
- Debug: デバッグフェーズでのみ役立ち、運用時にはあまり有用でない可能性がある情報を含むログ。このログレベルでは、エラーデータとログレベルデータの両方が対象となります。
- Service name: アクティベーションによってポートが公開される場合に、Kubernetes が受信接続を設定するためのサービス名を定義します。このフィールドは任意です。
- Rulebook activation enabled?: ルールブックアクティベーションを自動的に有効にして実行するかどうかを切り替えます。
-
Variables: ルールブックの変数は JSON または YAML 形式です。内容は、ansible-rulebook コマンドの
--vars
フラグによって渡されるファイルと同等です。 - Options: ルール監査にイベントを表示しない場合は、Skip audit events オプションをオンにします。
- をクリックします。
ルールブックアクティベーションが作成され、Rulebook Activations 画面で管理できるようになります。
新しいルールブックアクティベーションを保存すると、ルールブックアクティベーションの詳細ページが、Pending、Running、または Failed ステータスとともに表示されます。詳細ページまたは Rulebook Activations リストビューから、ルールブックアクティベーションを再開または削除できます。
ソースプラグインのシャットダウンが原因で、ルールブックが正常に終了するまでに一定の時間かかることがあります。ルールブックアクティベーションがシャットダウンすると、待機中のタスクがすべてキャンセルされ、アクティベーションのログに info レベルのメッセージが送信されます。詳細は、Rulebooks を参照してください。
3.13.1.1. ルールブックアクティベーションのリストビュー
Rulebook Activations ページでは、作成したルールブックアクティベーションを、Status、ルールブックの Number of rules、Fire count、および Restart count とともに表示できます。
Status が Running の場合、ルールブックアクティベーションがバックグラウンドで実行されており、ルールブックで宣言されたルールに従って必要なアクションが実行されていることを意味します。
Rulebook Activations リストビューからアクティベーションを選択すると、詳細を確認できます。
![Rulebook activation][width=25px](https://access.redhat.com/webassets/avalon/d/Red_Hat_Ansible_Automation_Platform-2.5-Getting_started_with_Ansible_Automation_Platform-ja-JP/images/2b2fdf25e67d6f64b92e05f42a6918c4/eda-rulebook-activations-list-view.png)
実行されたすべてのアクティベーションについて、Details タブと History タブを表示して、実行結果に関する詳細情報を取得できます。
3.13.2. ルールブックアクティベーションの有効化および無効化
手順
- 行レベルのスイッチを選択して、選択したルールブックを有効または無効にします。
- ウィンドウで、 を選択します。
- を選択します。
3.13.3. ルールブックアクティベーションの再開
ルールブックアクティベーションを再開できるのは、ルールブックアクティベーションが現在有効で、作成時に再開ポリシーを Always に設定した場合だけです。
手順
- Rulebook Activation enabled/disabled トグルの横にある アイコン ⋮ を選択します。
- を選択します。
- ウィンドウで、 を選択します。
- を選択します。
3.13.4. ルールブックアクティベーションの削除
手順
- Rulebook Activation enabled/disabled トグルの横にある アイコン ⋮ を選択します。
- を選択します。
- ウィンドウで、 を選択します。
- を選択します。
3.13.5. Webhook ルールブックのアクティブ化
Openshift 環境では、ルールブックアクティベーションの Kubernetes サービスを公開するルートを作成することで、Webhook が特定のポートを介して activation-job-pod に到達できるようにすることが可能です。
前提条件
- ルールブックアクティベーションを作成した。
特定の Webhook を含むルールブックの例を以下に示します。
- name: Listen for storage-monitor events hosts: all sources: - ansible.eda.webhook: host: 0.0.0.0 port: 5000 rules: - name: Rule - Print event information condition: event.meta.headers is defined action: run_job_template: name: StorageRemediation organization: Default job_args: extra_vars: message: from eda sleep: 1
手順
サービスを公開するためのルートを (OpenShift Container Platform 上に) 作成します。以下は、決定環境 Pod のポート 5000 で POST を要求する ansible-rulebook ソースのルートの例です。
kind: Route apiVersion: route.openshift.io/v1 metadata: name: test-sync-bug namespace: dynatrace labels: app: eda job-name: activation-job-1-5000 spec: host: test-sync-bug-dynatrace.apps.aap-dt.ocp4.testing.ansible.com to: kind: Service name: activation-job-1-5000 weight: 100 port: targetPort: 5000 tls: termination: edge insecureEdgeTerminationPolicy: Redirect wildcardPolicy: None
ルートを作成したら、ルート URL へのポスト を使用してテストします。
curl -H "Content-Type: application/json" -X POST test-sync-bug-dynatrace.apps.aap-dt.ocp4.testing.ansible.com -d '{}'
注記ポートはルート (targetPort) で指定されているため、必要ありません。
第4章 自動化運用担当者として使い始める
Ansible Automation Platform は、自動化運用担当者が Red Hat の認定コレクションや組織のカスタムコンテンツを使用して自動化プロジェクトを整理および管理する際に役立ちます。
プラットフォーム Operator として使い始めるには、次のセクションを参照してください。
4.1. Playbook を使い始める
Playbook は上から下へ順番にタスクを実行します。各プレイ内では、タスクは上から下に順番に実行されます。
4.1.1. Playbook を把握する
複数の “プレイ” を含む Playbook を使用すると、複数のマシンのデプロイメントを調整して、Web サーバーで 1 つのプレイを実行し、データベースサーバーで別のプレイを実行し、ネットワークインフラストラクチャーで 3 つ目のプレイを実行できます。
詳細は、Playbook のスタートガイド を参照してください。
4.2. Playbook の作成
ホストに ping を送信し、"Hello world" メッセージを出力する Playbook を作成します。
Ansible は YAML 構文を使用します。YAML は、人間が読める言語で、複雑なコーディング言語を学ばなくても Playbook を作成できます。
手順
ansible_quickstart
ディレクトリーに次の内容のplaybook.yaml
という名前のファイルを作成します。- name: My first play hosts: myhosts tasks: - name: Ping my hosts ansible.builtin.ping: - name: Print message ansible.builtin.debug: msg: Hello world
Playbook を実行します。
$ ansible-playbook -i inventory.ini playbook.yaml
Ansible は次の出力を返します。
PLAY [My first play] ******************************************************** TASK [Gathering Facts] ****************************************************** ok: [192.0.2.50] ok: [192.0.2.51] ok: [192.0.2.52] TASK [Ping my hosts] ******************************************************** ok: [192.0.2.50] ok: [192.0.2.51] ok: [192.0.2.52] TASK [Print message] ******************************************************** ok: [192.0.2.50] => { "msg": "Hello world" } ok: [192.0.2.51] => { "msg": "Hello world" } ok: [192.0.2.52] => { "msg": "Hello world" } PLAY RECAP ****************************************************************** 192.0.2.50: ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 192.0.2.51: ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 192.0.2.52: ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
関連情報
- Playbook の詳細は、Playbook のスタートガイド を参照してください。
- Playbook の作成に関する支援が必要な場合は、Red Hat Ansible Lightspeed with IBM watsonx Code Assistant を参照してください。
4.3. Ansible ロールでのコンテンツのバンドル
ロールは、システムの特定のニーズに合わせて Playbook の関連部分をまとめた、カスタマイズされた自動化コンテンツのようなものです。ロールは自己完結型で移植可能であり、タスク、変数、設定テンプレート、ハンドラー、およびその他のサポートファイルのグループ化を含めて、複雑な自動化フローを調整できます。
何百ものタスクで巨大な Playbook を作成する代わりに、ロールを使用して、タスクをより小さく、より個別の作業単位に分割することができます。
ロールの詳細は、What is an Ansible Role-and how is it used? を参照してください。
4.3.1. ロールの作成
Ansible Automation Platform バンドルに含まれている Ansible Galaxy CLI ツールを使用して、ロールを作成できます。role
サブコマンドからロール固有のコマンドにアクセスします。
ansible-galaxy role init <role_name>
コレクション外部のスタンドアロンロールがサポートされています。Ansible Automation Platform が提供する機能を活用するには、コレクション内に新しいロールを作成してください。
手順
-
ターミナルで、コレクション内の
roles
ディレクトリーに移動します。 コレクション内に
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
の内容は、ロールディレクトリー内で有効なファイルまたはフォルダーであれば、任意のものを使用できます。
4.4. 自動化コンテンツについて
Ansible 開発プロジェクトに着手する前に、次の Ansible の概念を使用して、効果的な Ansible Playbook と自動化実行環境を作成してください。
4.4.1. コンテンツコレクションについて
Ansible コンテンツコレクションは、自動化コンテンツの集合体です。Ansible コレクションには 2 つの種類があります。
- Ansible Certified Content Collections: エンタープライズ環境および実稼働環境での使用に対応した、フルサポート対象のロールとモジュールが含まれています。
- Ansible 検証済みコンテンツコレクション: エキスパートのガイドに基づく信頼性の高い手法を利用して、お使いの製品で基本的な操作とタスクを実行できます。
どちらの種類のコンテンツコレクションも、Hybrid Cloud Console から Automation Hub で見つけることができます。
4.4.2. コンテンツのダウンロード
コレクションが完成したら、組織全体の他のユーザーに配布できる場所にコレクションをインポートできます。
手順
- Red Hat Ansible Automation Platform にログインします。
- ナビゲーションパネルから、Collections ページには、すべてのリポジトリーにわたるすべてのコレクションが表示されます。特定のコレクションを検索できます。 → を選択します。
- エクスポートするコレクションを選択します。コレクションの詳細ページが開きます。
-
Install タブから、Download tarball を選択します。
.tar
ファイルが、デフォルトのブラウザーのダウンロードフォルダーにダウンロードされます。これで、選択した場所にインポートできるようになります。
4.5. コレクションへの公開
プロジェクトを、Git または任意のソースコントロールマネージャーにアップロードするように設定できます。
手順
- ナビゲーションパネルから、 → を選択します。
- ソースコントロールマネージャーに公開するプロジェクトを検索するか、作成します。
- プロジェクトの Details タブで、Edit project を選択します。
- Source Control Type ドロップダウンメニューから Git を選択します。
以下のフィールドに該当する詳細を入力します。
- Source Control URL - ツールチップの例を参照してください。
-
オプション: Source control branch/tag/commit: チェックアウトするソースコントロールの SCM ブランチ、タグ、コミットハッシュ、任意の参照、またはリビジョン番号 (該当する場合) を入力します。次のフィールドにカスタム refspec も指定しない限り、一部のコミットハッシュと参照は使用できない場合があります。空白のままにした場合、デフォルトは
HEAD
(このプロジェクトで最後にチェックアウトされたブランチ、タグ、またはコミット) になります。 - Source Control Refspec - このフィールドは、Git ソースコントロール専用のオプションです。Git の知識があり、問題なく使用できる上級ユーザーである場合にのみ、リモートリポジトリーからダウンロードする参照を指定してください。詳細は、ジョブブランチのオーバーライド を参照してください。
- Source Control Credential - 認証が必要な場合は、適切なソースコントロール認証情報を選択します。
オプション: Options - 該当する場合、起動動作を選択します。
- Clean - 更新を実行する前にローカルの変更を削除します。
- Delete - 更新を実行する前に、ローカルリポジトリー全体を削除します。リポジトリーのサイズにより、更新の完了までに必要な時間が大幅に長くなる可能性があります。
- Track submodules - 最新のコミットを追跡します。詳細はツールチップを参照してください。
- Update Revision on Launch - プロジェクトのリビジョンをリモートソースコントロールの現在のリビジョンに更新し、Ansible Galaxy または コレクションサポート からロールディレクトリーをキャッシュします。Automation Controller は、ローカルリビジョンが一致し、ロールとコレクションが最終更新で最新であることを確認します。さらに、これを選択すると、プロジェクトが同期できるよりも早くジョブが生成された場合にジョブのオーバーフローを回避するために、以前のプロジェクトの同期を指定した秒数キャッシュするようにキャッシュタイムアウトを設定できます。
- Allow Branch Override - このプロジェクトを使用するジョブテンプレートまたはインベントリーソースが、プロジェクト以外の指定された SCM ブランチまたはリビジョンで起動できるようにします。詳細は、ジョブブランチのオーバーライド を参照してください。
- をクリックしてプロジェクトを保存します。
4.5.1. Automation Hub でのコレクションの管理
プラットフォーム Operator は、Automation Hub の名前空間を使用して、次の目的でコレクションをキュレートおよび管理できます。
- 名前空間をキュレートし、コレクションを Private Automation Hub にアップロードする権限を持つグループを作成する。
- コレクションのエンドユーザーの自動化タスクで役立つように、名前空間に情報とリソースを追加する。
- コレクションを名前空間にアップロードする。
- 名前空間のインポートログを確認して、コレクションのアップロードの成功または失敗と現在の承認ステータスを確認する。
コレクションの詳細は、自動化コンテンツの管理 を参照してください。
4.5.2. Automation Hub へのコレクションのアップロード
作成したコレクションを Ansible コミュニティーの他のメンバーと共有する場合は、それを Automation Hub にアップロードできます。
コレクションを Ansible コミュニティーと共有するには、Partner Engineering チームによるコレクションの認定または検証を受ける必要があります。認定または検証を受けることができるのは、パートナークライアントだけです。パートナーになる方法の詳細は、ソフトウェア認定に関するドキュメント をご覧ください。
コレクションは、Automation Hub ユーザーインターフェイスまたは ansible-galaxy
クライアントのいずれかを使用してアップロードできます。
前提条件
-
Automation Hub 用に
ansible-galaxy
クライアントを設定した。 - 名前空間が 1 つ以上ある。
-
すべてのコンテンツを
ansible-test sanity
で実行した。
手順
- ナビゲーションパネルから、 → を選択します。
- My namespaces タブ内で、コレクションのアップロード先の名前空間を見つけてクリックします。
- Collections タブを選択し、 をクリックします。
- New collection モーダルで、Select file をクリックします。システムのファイルを見つけます。
- をクリックします。
ansible-galaxy
クライアントを使用して、次のコマンドを入力します。
$ ansible-galaxy collection publish path/to/my_namespace-my_collection-1.0.0.tar.gz --api-key=SECRET
4.6. 実行環境の構築および使用
Red Hat Ansible Automation Platform のすべての自動化は、自動化実行環境と呼ばれるコンテナーイメージ上で実行されます。
自動化実行環境は、Ansible コントロールノードとして機能する一貫性のある共有可能なコンテナーイメージです。自動化実行環境は、外部の依存関係のある Ansible コンテンツを共有する際の課題を軽減します。自動化コンテンツが開発者が作成したスクリプトのようなものだとすると、自動化実行環境はその開発者の環境のレプリカのようなもので、開発者が作成した自動化コンテンツを再現およびスケーリングすることが可能となります。このように、実行環境を使用すると、さまざまな環境で自動化を簡単に実装できます。
自動化実行環境には、以下が含まれます。
- Ansible Core
- Ansible Runner
- Ansible コレクション
- Python ライブラリー
- システムの依存関係
- カスタムのユーザーニーズ
Ansible Automation Platform サブスクリプションに含まれるデフォルトのベース実行環境を使用することも、Ansible Builder を使用して自動化実行環境を定義して作成することもできます。
4.6.1. ベース自動化実行環境の使用
Ansible Automation Platform のサブスクリプションにより、いくつかのベース自動化実行環境にアクセスできます。ベース自動化実行環境は、カスタマイズされた実行環境を作成するための土台として使用できます。
Ansible Automation Platform に含まれるベースイメージは、Red Hat Ecosystem Catalog (registry.redhat.io) でホストされています。
前提条件
- 有効な Red Hat Ansible Automation Platform サブスクリプションがある。
手順
registry.redhat.io にログインします。
$ podman login registry.redhat.io
- レジストリーからベースイメージをプルします。
$podman pull registry.redhat.io/aap/<image name>
4.6.1.1. ベース実行環境イメージのカスタマイズ
Ansible Automation Platform には、次のデフォルトの実行環境が含まれています。
-
Minimal
- 最新の Ansible-core 2.15 リリースと Ansible Runner が含まれていますが、コレクションやその他のコンテンツは含まれていません。 -
EE Supported
- Minimal に加え、Red Hat がサポートするすべてのコレクションと依存関係が含まれています。
これらの環境は多くの自動化ユースケースに対応しますが、追加の項目を追加して、特定のニーズに合わせてこれらのコンテナーをカスタマイズできます。実行環境のカスタマイズの詳細は、「実行環境の作成と使用」ガイドの 既存の自動化実行環境イメージのカスタマイズ を参照してください。
4.6.1.2. Ansible Builder について
Ansible Builder (実行環境ビルダーとも呼ばれます) を使用して、まったく新しい実行環境を作成することもできます。Ansible Builder は、Ansible の実行環境を作成するために使用できるコマンドラインツールです。実行環境を作成するには、Ansible Builder を使用する必要があります。
独自の実行環境を構築するには、以下を実行する必要があります。
- Ansible Builder のダウンロード
- 実行環境を定義する定義ファイルの作成
- 定義ファイルをベースとする実行環境イメージの作成
実行環境の構築の詳細は、実行環境の作成と使用 を参照してください。
4.6.2. ジョブテンプレートへの実行環境の追加
前提条件
- 実行環境の構築 で説明されているように、ansible-builder を使用して実行環境が作成されている必要があります。実行環境を作成したら、その環境を使用してジョブを実行できます。Automation Controller UI を使用して、ジョブテンプレートで使用する実行環境を指定します。
- 実行環境がグローバルに使用できるように指定されているか、組織に関連付けられているかに応じて、ジョブで実行環境を使用するための適切なレベルの管理者権限を持っている。組織に関連付けられた実行環境では、組織管理者がそれらの実行環境でジョブを実行できる必要があります。
- 認証情報が割り当てられた実行環境を使用するジョブまたはジョブテンプレートを実行する前に、認証情報にユーザー名、ホスト、およびパスワードが含まれていることを確認してください。
手順
- ナビゲーションパネルから、 → → を選択します。
- をクリックして、実行環境を追加します。
以下のフィールドに該当する詳細を入力します。
- Name (必須): 実行環境の名前を入力します。
-
Image (必須): イメージ名を入力します。イメージ名には、完全な場所 (リポジトリー)、レジストリー、イメージ名、および
quay.io/ansible/awx-ee:latestrepo/project/image-name:tag
のサンプル形式のバージョンタグが必要です。 オプション: Pull: ジョブを実行するときのプルのタイプを選択します。
- Always pull container before running: コンテナーの最新のイメージファイルをプルします。
- Only pull the image if not present before running: 何も指定されていない場合のみ、最新のイメージをプルします。
Never pull container before running: コンテナーイメージの最新バージョンをプルしません。
注記プルのタイプを設定しなかった場合、値はデフォルトで Only pull the image if not present before running になります。
- オプション: 説明:
- オプション: Organization: この実行環境を使用する組織を指定します。実行環境を複数の組織間で使用できるようにするには、このフィールドを空白のままにします。
- Registry Credential: イメージに保護されたコンテナーレジストリーがある場合は、それにアクセスするための認証情報を指定します。
新しく追加した実行環境をジョブテンプレートで使用する準備ができました。
- ジョブテンプレートに実行環境を追加するには、ジョブテンプレートの Execution Environment フィールドで実行環境を指定します。
実行環境をジョブテンプレートに追加すると、それらのテンプレートは実行環境の Templates タブにリストされます。
4.7. 自動化実行プロジェクト
プロジェクトは、Ansible Automation Platform で管理できる Ansible Playbook を論理的に集めたものです。
プラットフォーム管理者と自動化開発者には、プロジェクトを作成する権限があります。自動化運用担当者は、プロジェクトを表示および同期できます。
4.7.1. プロジェクトの詳細の表示
Projects ページに、現在利用可能なプロジェクトのリストが表示されます。
- ナビゲーションパネルから、 → を選択します。
- プロジェクトをクリックして詳細を表示します。
- リストされている各プロジェクトについて、各プロジェクトの横にあるアイコンを使用して、最新のリビジョンを同期したり、プロジェクトを編集したり、プロジェクトの属性をコピーしたりできます。
4.8. ジョブテンプレートの使用
ジョブテンプレートは、Ansible ジョブを実行するための定義とパラメーターのセットです。
ジョブテンプレートは、プロジェクトの Ansible Playbook と、ジョブを起動するために必要な設定を組み合わせたものです。ジョブテンプレートは、同じジョブを何度も実行する場合に役立ちます。ジョブテンプレートは、Ansible Playbook コンテンツの再利用とチーム間のコラボレーションも促進します。詳細は、「自動化実行の使用」ガイドの ジョブテンプレート を参照してください。
プラットフォーム管理者と自動化開発者には、ジョブテンプレートを作成する権限があります。自動化運用担当者は、ジョブテンプレートを起動し、その詳細を表示できます。
4.8.1. ジョブテンプレートの起動
Ansible Automation Platform は、Ansible Playbook のプッシュボタンデプロイメントを提供します。コマンドラインで常に Ansible Playbook に渡すすべてのパラメーターを保存するようにテンプレートを設定できます。テンプレートは、Playbook に加えて、インベントリー、認証情報、追加の変数、およびコマンドラインで指定できるすべてのオプションと設定を渡します。
手順
- ナビゲーションパネルから、 → を選択します。
- テンプレートを選択して詳細を表示します。初期設定時に、作業を開始できるようにデフォルトのジョブテンプレートが作成されますが、独自のジョブテンプレートを作成することもできます。
- Templates ページから起動アイコンをクリックしてジョブテンプレートを実行します。
Templates リストビューには、現在利用可能なジョブテンプレートが表示されます。デフォルトのビューは折りたたまれており (コンパクト)、テンプレート名、テンプレートタイプ、およびそのテンプレートを使用して実行された最後のジョブのタイムスタンプが表示されます。各エントリーの横にある矢印アイコンをクリックすると、詳細を展開して表示できます。このリストは、名前でアルファベット順に並んでいます。他の条件で並べ替えたり、テンプレートのさまざまなフィールドや属性で検索したりすることもできます。
この画面から、ジョブテンプレートを起動、編集、コピーできます。
テンプレートの詳細は、「自動化実行の使用」ガイドの ジョブテンプレート および ワークフロージョブテンプレート セクションを参照してください。
4.9. インベントリーについて
インベントリーは、Ansible Automation Platform によって管理される一連のホストを指定したファイルです。組織はインベントリーに割り当てられます。一方、インベントリーに対して Playbook を起動する権限は、ユーザーまたはチームレベルで制御されます。
プラットフォーム管理者と自動化開発者には、インベントリーを作成する権限があります。自動化運用担当者は、インベントリーとその詳細を表示できます。
4.9.1. インベントリーの実行
手順
ナビゲーションパネルから Inventories ウィンドウには、現在利用可能なインベントリーのリストと次の情報が表示されます。
→ → を選択します。- Name: インベントリー名。
Status: ステータスには次のものがあります。
- Success: インベントリーの同期が正常に完了しました。
- Disabled: インベントリーにインベントリーソースが追加されていません。
- Error: インベントリーソースが完了しましたが、エラーがあります。
- Type: インベントリーが、標準インベントリー、スマートインベントリー、または構築型インベントリーのいずれであるかを示します。
- Organization: インベントリーが属する組織。
- インベントリー名を選択すると、インベントリーのグループとホストを含むインベントリーの Details ページが表示されます。
インベントリーの詳細は、「自動化実行の使用」ガイドの インベントリー セクションを参照してください。
4.10. 自動化実行ジョブ
ジョブは、ホストのインベントリーに対して Ansible Playbook を起動する Ansible Automation Platform のインスタンスです。
4.10.1. ジョブステータスの確認
Jobs リストビューには、ジョブとそのステータスのリストが表示され、completed successfully、failed または active (running) ジョブとして表示されます。
手順
ナビゲーションパネルから、
→ を選択します。デフォルトのビューは折りたたまれて (コンパクト)、ジョブ名、ステータス、ジョブタイプ、開始時刻、終了時刻が表示されます。矢印アイコンをクリックすると、詳細を展開して表示できます。このリストをさまざまな基準で並べ替えたり、検索を実行して目的のテンプレートをフィルタリングしたりできます。
この画面から、次のタスクを実行できます。
- ジョブの詳細と標準出力を表示する。
- ジョブを再起動する。
- 選択したジョブを削除する。
再起動操作は、Playbook 実行の再起動にのみ適用されます。プロジェクトまたはインベントリーの更新、システムジョブ、ワークフロージョブには適用されません。
4.10.2. ジョブ出力の確認
ジョブを再起動すると、ジョブの Output ビューが表示されます。
手順
- ナビゲーションパネルから、 → を選択します。
ジョブを選択します。そのジョブの Output ビューが表示されます。このビューでは、次の基準でジョブ出力をフィルタリングできます。
- Search output オプションを使用すると、キーワードで検索できます。
- Event オプションを使用すると、エラー、ホストの障害、ホストの再試行、スキップされた項目などの関心のあるイベントによってフィルタリングできます。フィルターには、必要な数のイベントを含めることができます。