Project は、Tower に表示される Ansible Playbook の論理コレクションです。
Playbook および Playbook ディレクトリーをプロジェクトのベースパスに手動で配置するか、または Playbook を Tower がサポートするソースコード管理 (SCM) システム (例: Git、Subversion、Mercurial および Red Hat Insights) に配置することで、Playbook と Playbook ディレクトリーを管理できます。Red Hat Insights プロジェクトを作成するには、Insights プロジェクトの設定 を参照してください。
注釈
デフォルトで、プロジェクトのベースパスは /var/lib/awx/projects
ですが、Tower 管理者によって変更されている可能性があります。これは /etc/tower/conf.d/custom.py
で設定されます。設定が正しくないとインストールを無効にする可能性があるので、注意してこのファイルを編集してください。
このメニューでは、現在利用可能なプロジェクトリストを表示します。デフォルトビューは折りたたまれており (縮小)、プロジェクト名とステータスが表示されますが、展開して他の情報を表示できます。さまざまな条件でこのリストをソートし、検索で希望のプロジェクトに絞り込むことができます。
各プロジェクトのとなりにある適切なアイコンを使用して、リストされているプロジェクトごとに最新の SCM リビジョンの取得 ()、プロジェクト属性のコピー () またはプロジェクトの削除 () が可能です。
ステータス はプロジェクトの状態を示し、以下のいずれかになる可能性があります (特定のステータスタイプでビューをフィルターできることにも留意してください)。
保留中: ソースコントロールの更新は作成されていますが、まだキューに入れられていないか、または開始されていません。すべてのジョブ (ソースコントロールの更新に限らない) はシステムで実際に実行可能になるまで保留中の状態になります。ジョブが保留にされる理由には、依存関係にある実行中のジョブの終了を待機する必要があることや、設定された場所にジョブの実行容量が十分にないことがあります。
待機中: ソースコントロールの更新はキューに入れられており、実行を待機中です。
実行中: ソースコントロールの更新が進行中です。
成功: このプロジェクトの最後のソースコントロールの更新が成功しました。
失敗: このプロジェクトの最後のソースコントロールの更新が失敗しました。
エラー: 最後のソースコントロールの更新ジョブの実行に失敗しました (非推奨になる予定)。
取り消し: このプロジェクトの最後のソースコントロールの更新が取り消されました。
未更新: このプロジェクトはソースコントロール用に設定されていますが、更新されていません。
OK: プロジェクトはソースコントロール用に設定されていませんが、正常に実施されています (非推奨になる予定)。
不明: プロジェクトがプロジェクトベースパスの /var/lib/awx/projects
にありません (手動またはソースコントロールで管理されたプロジェクトで適用可能です)。
注釈
認証情報タイプが「手動」のプロジェクトでは、SCM タイプの認証情報として再設定されない限りソースコントロールベースのアクションを更新したり、スケジュールしたりすることはできません。
注釈
他の作業アイテムが使用するアイテムを削除する場合は、メッセージが開き、削除されるアイテムと、削除の確認を促すプロンプトが表示されます。画面によっては、無効なアイテムや、過去に削除されたアイテムが含まれる場合があるので、それらのアイテムは実行に失敗します。以下は、これらのメッセージ例です。
新規プロジェクトを作成するには、以下を実行します。
ボタンをクリックします。これにより、プロジェクトの作成 ウィンドウが起動します。
以下の必須フィールドに適切な情報を入力します。
名前
説明 (オプション)
組織: プロジェクトには 1 つ以上の組織がなければなりません。ここで 1 つの組織を選択してプロジェクトを作成し、プロジェクトの作成後にさらに組織を追加できます。
Ansible 環境 (オプション): ドロップダウンメニューリストから、このプロジェクトを実行するカスタムの仮想環境を選択します。このフィールドは、カスタムの環境がすでに作成されている場合のみ表示されます。『Ansible Tower Upgrade and Migration Guide』の「Using virtualenv with Ansible Tower」を参照してください。
SCM タイプ: ドロップダウンメニューリストから、このプロジェクトに関連付けられている SCM タイプを選択します。後に続くセクションでは、選択したタイプにより、利用可能なオプションが異なります。詳細は、後続のセクションの 「Playbook の手動による管理」および「ソースコントロールの使用による Playbook の管理」を参照してください。
注釈
手動プロジェクトを追加する場合には、プロジェクトのルートフォルダー内の各プロジェクトパスは 1 つのプロジェクトにしか割り当てることができません。以下のメッセージが表示される場合には、すでにプロジェクトパスが既存プロジェクトのパスに割り当てられていないことを確認してください。
All of the project paths have been assigned to existing projects, or there are no directories found in the base path.
You will need to add a project path before creating a new project.
完了したら 保存 をクリックします。
Playbook を保管する 1 つ以上のディレクトリーをプロジェクトのベースパス (例: /var/lib/awx/projects/) に作成します。
Playbook ファイルを作成し、これを Playbook ディレクトリーにコピーします。
Playbook ディレクトリーおよびファイルが、Tower サービスを実行するのと同じ UNIX ユーザーおよびグループで所有されていることを確認します。
パーミッションが Playbook ディレクトリーおよびファイルについて適切であることを確認します。
プロジェクトパスを追加する際に問題がある場合は、プロジェクトディレクトリーおよびファイルのパーミッションおよび SELinux コンテキスト設定を確認します。
警告
Ansible Playbook ディレクトリーをベースプロジェクトパスに追加していない場合、Tower から以下のメッセージが送信されます。
適切な Playbook ディレクトリーを作成し、SCM から Playbook をチェックアウトするか、または Playbook を適切な Playbook ディレクトリーにコピーしてこの問題を修正します。
注釈
デフォルトでは、Ansible Tower にシステム全体の設定があり、この設定で SCM プロジェクト用に requirements.yml
ファイルからロールを動的にダウンロードできます。ロールのダウンロードを有効にする の切り替えボタンを オフ にすることで、設定 () メニューの ジョブ タブにあるこのオプションをオフにできます。
SCM タイプ ドロップダウンメニューの一覧から適切なオプションを選択します。
以下のフィールドに該当する詳細を入力します。
SCM URL: ヘルプ テキストの例を参照できます。
SCM ブランチ/タグ/コミット: オプションで、ソースコントロール (Git、Subversion、または Mercurial) からチェックアウトする SCM ブランチ、タグ、コミットハッシュ値、任意の参照 (ref)、リビジョン番号 (該当する場合) を入力します。コミットハッシュ値および参照の中には、次のフィールドでカスタムの refspec も指定しないと使用できないものがあります。
SCM Refspec: このフィールドは git ソースコントロール専用のオプションであり、git の知識があり、問題なく使用できる上級ユーザーのみが、リモートリポジトリーからダウンロードする参照を指定する必要があります。詳細については、「job branch overriding」を参照してください。
SCM Credential (SCM 認証情報): 認証が必要な場合には、適切な SCM 認証情報を選択します。
SCM 更新オプション:
クリーニング: 更新の実行前にローカルの変更を削除します。
更新時の削除: 更新の実行前にローカルリポジトリーを完全に削除します。リポジトリーのサイズによっては、更新の完了までにかかる時間が大幅に増大します。
起動時のリビジョン更新: 起動時の更新: このプロジェクトを使用してジョブを実行する場合には、ジョブの開始前にローカルリポジトリーの更新を実行します。プロジェクトの同期速度よりジョブの起動速度が上回る場合のジョブのオーバーフローを避けるため、これを選択して、プロジェクトが同期するまでにキャッシュする具体的な秒数について、キャッシュのタイムアウトを設定できます。
ブランチの上書きを許可する: このプロジェクトを使用するジョブテンプレートが、指定の SCM ブランチまたは、プロジェクトのリビジョン以外のリビジョンで起動できるようにします。詳細については、「job branch overriding」を参照してください。
保存 をクリックしてプロジェクトを保存します。
ちなみに
GitHub リンクを使用すると、Playbook を簡単に使用できます。使用を開始するには、
helloworld.yml
ファイル (https://github.com/ansible/tower-example.git より利用可能) を使用します。このリンクから、Ansible Tower Quick Start Guide の説明に従って手動で作成されたものに非常に似ている Playbook を追加することができます。これを使用しても、システムが変更されたり、破損することはありません。
プロジェクトを選択し、 ボタンをクリックして、既存の SCM ベースのプロジェクトを更新します。
注釈
ソースコントロールを使用するためにプロジェクト設定を追加した直後に「同期」が開始され、設定されたソースコントロールからプロジェクト詳細の取り込みが実行されることに注意してください。
ステータス にある丸い点 (左端のプロジェクト名の横) をクリックして、更新されたプロセスについての追加の詳細を確認します。
プロジェクト、インベントリー、ジョブテンプレートおよびその他の Tower 要素の読み取り、変更および管理機能を提供する、このプロジェクトに割り当てられるパーミッションのセット (ロールベースのアクセス制御) は権限とも呼ばれています。
詳細 タブのとなりの パーミッション タブを使用して、プロジェクトのパーミッションにアクセスします。この画面では、現在このプロジェクトに対してパーミッションがあるユーザー一覧を表示します。この一覧は、ユーザー、ロール または チームロール 別で並び替え、検索が可能です。
パーミッション タブでは、ユーザーおよびチームメンバーに関連付けられたパーミッションの確認、付与、編集および削除を実行できます。このリソースについて特定ユーザーにパーミッションを割り当てるには以下を行います。
パーミッション タブをクリックします。
ボタンをクリックして、ユーザー/チームの追加ウィンドウを開きます。
アクセス権のあるユーザーまたはチームを指定してから、これらのユーザーやチームに特定のロールを割り当てます。
ユーザーまたはチームの名前の横にある 1 つまたは複数のチェックボックスをクリックしてチェックマークを付け、これらを選択します。
注釈
ユーザー と チーム タブ間を保存せずに移動して、複数のユーザーとチームを同時に選択することができます。
選択を終えると、ウィンドウが展開され、ドロップダウンメニューの一覧から選択した各ユーザーまたはチームのロールを選択できるようになります。
上記の例では、インベントリー関連のオプションが表示されます。リソース毎に、利用できるオプションが異なります。
管理者 は権限の読み取り、実行および編集を許可します (すべてのリソースに適用)。
使用 は、ジョブテンプレートのリソースの使用を許可します (ジョブテンプレート以外の全リソースに適用)。
更新: SCM 更新でのプロジェクトの更新を許可します (プロジェクトおよびインベントリーに適用)。
アドホック: アドホックコマンドの使用を許可します (インベントリーに適用)。
実行 は、ジョブテンプレートの起動を許可します (ジョブテンプレートに適用)。
読み取り は、表示のみのアクセスを許可します (すべてのリソースに適用)。
ちなみに
ロールの選択ペインの キー ボタンを使用して、各ロールの説明を表示します。詳細情報は、本ガイドの「ロール」を参照してください。
選択したユーザーまたはチームに適用するロールを選択します。
注釈
ユーザー と チーム タブ間を保存せずに移動すると、複数のユーザーとチームにロールを割り当てることができます。
各ユーザーとチームのロールの割り当てを確認します。
完了したら 保存 をクリックすると、ユーザー/チームの追加ウィンドウが閉じ、各ユーザーやチームに割り当てられた更新済みのロールが表示されます。
特定ユーザーのパーミッションを削除するには、そのリソースの横にある「関連付けの解除」 (x) ボタンをクリックします。
これにより確認ダイアログが起動し、関連付けの解除を確定するように求められます。
通知 タブをクリックすると、設定した通知の統合を確認できます。
トグルを使用して、特定のプロジェクトで使用する通知を有効または無効にします。詳細については、「通知の有効化と無効化」を参照してください。
通知が設定されていない場合には、グレーのボックス内の 通知 リンクをクリックして新規通知を作成します。
さまざまな通知タイプの設定に関する追加の情報は、「通知タイプ」を参照してください。
ジョブテンプレート をクリックして、このプロジェクトに関連付けられているワークフローテンプレートまたはジョブテンプレートを追加し、レビューできます。展開 をクリックして、テンプレートで実行したジョブのステータス、他の有用な情報など、各テンプレートの情報を表示します。さまざまな条件でこのリストをソートし、検索を実行して希望のテンプレートに絞り込むことができます。
このビューからテンプレートの設定を起動 ()、コピー () または削除 () できます。注記: 上記の例は、展開ビューとなっています。
スケジュール をクリックすると、このプロジェクトに設定されているスケジュールを確認できます。
プロジェクト更新の終了時に、Tower は <project-top-level-directory>/roles/requirements.yml
の roles
ディレクトリーで requirements.yml
というファイルを検索します。このファイルが見つかると、以下のコマンドが自動的に実行されます。
ansible-galaxy install -r roles/requirements.yml -p ./roles/ --force
このファイルにより、Galaxy ロールや、独自のプロジェクトと共にチェックアウトできる他のリポジトリー内のロールを参照できます。Ansible Galaxy サポートの追加により、これを実行するために git サブモジュールを作成する必要はなくなります。
requirements.yml
の構文に関する詳細情報と例については、Ansible ドキュメントの role requirements section を参照してください。
とくに公開する必要のあるディレクトリーがある場合には、「Configure Tower (Tower の設定)」画面の 分離されたジョブの公開するパス に指定するか、または設定ファイルで以下のエントリーを更新して指定することができます。
AWX_PROOT_SHOW_PATHS = ['/list/of/', '/paths']
注釈
Playbook が
/var/lib/awx/.ssh
で定義した鍵や設定を使用する必要がある場合には、このファイルを主要ファイルとして、AWX_PROOT_SHOW_PATHS
に追加してください。
設定ファイルに変更を加えた場合には、変更の保存後に ansible-tower-service restart
コマンドを使用してサービスを再起動するようにしてください。
Tower ユーザーインターフェースでは、ジョブ設定ウィンドウで上記のオプションを設定できます。詳細については、各フィールドの () アイコンをクリックしてください。
Tower は、ジョブの実行でのプロジェクト固有の Ansible コレクションをサポートします。collections/requirements.yml
で SCM 内のコレクション要件ファイルを指定すると、Tower は、ジョブの実行前に暗黙的なプロジェクト同期でそのファイル内のコレクションをインストールします。コレクションの要件を指定するには、次のようにします。
ansible-galaxy collection install -r requirements.yml -p <job tmp location>
注釈
Ansible Tower 3.6 より、このプロジェクトフォルダーは各ジョブ実行に対してコピーされるようになります。これにより、Playbook は、他のジョブに干渉する可能性なしに、利便性のためにソースツリーに対してローカルの変更 (一時ファイルの作成など) ができるようになります。
詳細については、「Using Collections」を参照してください。