第11章 プロジェクト
プロジェクトとは、Automation Controller にある Ansible Playbook の論理的コレクションのことです。Playbook と Playbook ディレクトリーはさまざまな方法で管理できます。
- Automation Controller サーバー上にあるプロジェクトのベースパスの下にこれらを手動で配置します。
- Playbook を Automation Controller でサポートされているソースコード管理 (SCM) システムに配置します。これらには、Git、Subversion、Mercurial、Red Hat Insights が含まれます。
Red Hat Insights プロジェクトの作成の詳細は、Red Hat Ansible Automation Platform 修復のための Red Hat Insights のセットアップ を参照してください。
プロジェクトのベースパスは /var/lib/awx/projects
です。ただし、これはシステム管理者が変更できます。これは /etc/tower/conf.d/custom.py
で設定されます。
設定を誤るとインストールが無効になる可能性があるため、このファイルを編集する場合は注意してください。
プロジェクトページには、現在利用可能なプロジェクトのリストが表示されます。
最初に使用できる Demo Project が用意されています。
デフォルトビューは、折りたたまれており (Compact)、プロジェクト名とステータスが表示されていますが、各エントリーの横にある を使用して展開すると、詳細情報を表示できます。
リストされているプロジェクトごとに、各プロジェクトの横にあるアイコンを使用して、最新の SCM リビジョン を取得し、プロジェクトの属性を編集 して、コピー します。
プロジェクトは、関連ジョブの実行中に更新できます。
大規模なプロジェクト (約 10 GB) がある場合、/tmp
のディスク領域が問題になる可能性があります。
ステータス はプロジェクトの状態を示し、以下のいずれかになる可能性があります (特定のステータスタイプでビューをフィルターできることにも留意してください)。
Pending - ソースコントロールの更新は作成されましたが、まだキューに入れられていない、または開始されていません。ジョブ (ソースコントロールの更新だけでなく) は、システムで実行できる状態になるまで保留状態になります。準備ができていない理由としては次のことが考えられます。
- 現在実行中の依存関係があるため、完了するまで待つ必要があります。
- 設定されている場所で実行するのに十分な容量がありません。
- Waiting - ソースコントロールの更新はキューに入れられており、実行を待機中です。
- Running - ソースコントロールの更新が進行中です。
- 成功 - このプロジェクトの最後のソースコントロールの更新が成功しました。
- Failed - このプロジェクトの最後のソースコントロールの更新が失敗しました。
- Error - 最後のソースコントロール更新ジョブは実行にまったく失敗しました。
- 取り消し - このプロジェクトの最後のソースコントロールの更新が取り消されました。
- 未更新 - このプロジェクトはソースコントロール用に設定されていますが、更新されていません。
- OK - プロジェクトはソースコントロール用に設定されておらず、正しく配置されています。
-
Missing -
/var/lib/awx/projects
のプロジェクトベースパスにプロジェクトがありません。これは、手動またはソースコントロール管理プロジェクトに適用されます。
認証情報タイプが 手動
のプロジェクトでは、SCM タイプの認証情報として再設定されない限りソースコントロールベースのアクションを更新したり、スケジュールしたりすることはできません。
11.1. 新しいプロジェクトの追加
Automation Controller では、プロジェクトと呼ばれる Playbook の論理コレクションを作成できます。
手順
-
ナビゲーションパネルから、
を選択します。 - Projects ページで、 をクリックして、Create Project ウィンドウを起動します。
以下の必須フィールドに適切な情報を入力します。
- Name (必須)
- オプション: Description
- Organization (必須): プロジェクトには少なくとも 1 つの組織が必要です。ここで組織を 1 つ選択してプロジェクトを作成します。プロジェクトの作成時に、組織を追加できます。
- オプション: Execution environment: このプロジェクトを実行するための実行環境の名前を入力するか、既存の環境のリストから検索します。詳細は、実行環境の作成と使用 を参照してください。
- Source control type (必須): このプロジェクトに関連付けられた SCM タイプをメニューから選択します。選択したタイプに応じて、次のセクションのオプションが使用可能になります。詳細は、Playbook の手動管理 または ソースコントロールを使用した Playbook の管理 を参照してください。
- オプション: Content signature validation credential: このフィールドを使用して、コンテンツ検証を有効にします。プロジェクトの同期中にコンテンツの署名を検証するために使用する GPG キーを指定します。コンテンツが改ざんされている場合、ジョブは実行されません。詳細は、プロジェクトの署名と検証 を参照してください。
- をクリックします。
関連情報
以下に、プロジェクトの調達方法を説明します。
11.1.1. Playbook の手動管理
手順
-
Playbook を保管する 1 つ以上のディレクトリーをプロジェクトのベースパス (例:
/var/lib/awx/projects/
) に作成します。 - Playbook ファイルを作成し、これを Playbook ディレクトリーにコピーします。
- Playbook ディレクトリーおよびファイルが、サービスを実行するのと同じ UNIX ユーザーおよびグループで所有されていることを確認します。
- パーミッションが Playbook ディレクトリーおよびファイルについて適切であることを確認します。
トラブルシューティング
ベースプロジェクトパスに Ansible Playbook ディレクトリーを追加していない場合は、エラーメッセージが表示されます。次のいずれかの方法を選択し、このエラーをトラブルシューティングしてください。
- 適切な Playbook ディレクトリーを作成し、(ソースコード管理) SCM から Playbook をチェックアウトします。
- Playbook を適切な Playbook ディレクトリーにコピーします。
11.1.2. ソースコントロールを使用した Playbook の管理
ソースコントロールを使用して Playbook を管理する場合は、次のいずれかの方法を選択します。
11.1.2.1. SCM タイプ - Git と Subversion を使用するための Playbook の設定
手順
-
ナビゲーションパネルから、
を選択します。 - 使用するプロジェクト名をクリックします。
- プロジェクトの Details タブで、 をクリックします。
- Source control type メニューから適切なオプション (Git または Subversion) を選択します。
以下のフィールドに該当する詳細を入力します。
- Source control URL - ツールチップの例を参照してください。
-
オプション: Source control branch/tag/commit: チェックアウトするソースコントロール (Git または Subversion) からの 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 ブランチまたはリビジョンで起動できるようにします。詳細は、ジョブブランチのオーバーライド を参照してください。
- をクリックします。
11.1.2.2. SCM タイプ - Red Hat Insights を使用するための Playbook の設定
手順
-
ナビゲーションパネルから、
を選択します。 - 使用するプロジェクト名をクリックします。
- プロジェクトの Details タブで、 をクリックします。
- Source Control Type メニューから Red Hat Insights を選択します。
- Red Hat Insights では認証に認証情報が必要です。Insight で使用する適切な認証情報を Insights credential フィールドで選択します。
オプション: 該当する場合、Options フィールドで起動動作を選択します。
- Clean - 更新を実行する前にローカルの変更を削除します。
- Delete - 更新を実行する前に、ローカルリポジトリー全体を削除します。リポジトリーのサイズにより、更新の完了までに必要な時間が大幅に長くなる可能性があります。
- Update revision on launch - プロジェクトのリビジョンをリモートソースコントロールの現在のリビジョンに更新し、Ansible Galaxy サポート または コレクションサポート からロールディレクトリーをキャッシュします。Automation Controller は、ローカルリビジョンが一致し、ロールとコレクションが最新であることを保証します。さらに、プロジェクトが同期できるよりも早くジョブが生成された場合に、これを選択すると、以前のプロジェクトの同期を指定した秒数キャッシュするようにキャッシュタイムアウトを設定できます。
- をクリックします。
11.1.2.3. SCM タイプ - リモートアーカイブを使用するための Playbook の設定
リモートアーカイブを使用する Playbook により、バージョン付けされたアーティファクトを生成するビルドプロセスまたはリリースに基づいてプロジェクトを提供することができます。これには、単一のアーカイブ内のそのプロジェクトのすべての要件が含まれます。
手順
-
ナビゲーションパネルから、
を選択します。 - 使用するプロジェクト名をクリックします。
- プロジェクトの Details タブで、 をクリックします。
- Source control type メニューから Remote Archive を選択します。
以下のフィールドに該当する詳細を入力します。
- Source control URL - GitHub Release や Artifactory に保存されているビルドアーティファクトなど、リモートアーカイブへの URL を要求し、それを使用するためにプロジェクトパスに展開します。
- Source control credential - 認証が必要な場合は、適切なソースコントロール認証情報を選択します。
オプション: 該当する場合、Options フィールドで起動動作を選択します。
- Clean - 更新を実行する前にローカルの変更を削除します。
- Delete - 更新を実行する前に、ローカルリポジトリー全体を削除します。リポジトリーのサイズにより、更新の完了までに必要な時間が大幅に長くなる可能性があります。
- Update revision on launch - 推奨されません。このオプションは、プロジェクトのリビジョンをリモートソースコントロールの現在のリビジョンに更新し、Ansible Galaxy サポート または コレクションサポート からのロールディレクトリーをキャッシュします。
Allow branch override - 推奨されません。このオプションを使用すると、このプロジェクトを使用するジョブテンプレートが、指定された SCM ブランチまたはプロジェクト以外のリビジョンで起動できるようになります。
注記このソースコントロールタイプは、不変のアーティファクトという概念のサポートを目的としているため、(少なくともロールに対して) Galaxy 統合を無効にすることを推奨します。
- をクリックします。