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/settings.py
で設定されます。設定が正しくないとインストールを無効にする可能性があるので、注意してこのファイルを編集してください。
このメニューには、現在利用可能なプロジェクトの一覧が表示されます。プロジェクトの一覧は、ステータス、名前、または タイプ で並び替え、検索できます。一覧表示されている各プロジェクトについて、編集および削除アイコンを使用してプロジェクトのプロパティーを編集したり、プロジェクトを削除したりできます。
ステータス はプロジェクトの状態を示し、以下のいずれかになる可能性があります (特定のステータスタイプでビューをフィルターできることにも留意してください)。
/var/lib/awx/projects
にありません (手動またはソースコントロールで管理されたプロジェクトで適用可能です)。アクション では、以下のアクションを選択できます。
注釈
認証情報タイプが「手動」のプロジェクトでは、SCM タイプの認証情報として再設定されない限りソースコントロールベースのアクションを更新したり、スケジュールしたりすることはできません。
新規プロジェクトを作成するには、以下を実行します。
注釈
手動プロジェクトを追加する場合、プロジェクトのルートフォルダー内の各プロジェクトパスは 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.
プロジェクト、インベントリー、ジョブテンプレートおよびその他の Tower 要素の読み取り、変更および管理機能を提供する、このプロジェクトに割り当てられるパーミッションのセット (ロールベースのアクセス制御) は権限とも呼ばれています。
この画面には、選択されたユーザーに対して現在利用できる権限の一覧が表示されます。権限の一覧は、名前、タイプ、または ロール で並べ替え、検索できます。
パーミッション タブでは、ユーザーおよびチームメンバーに関連付けられたパーミッションの確認、付与、編集および削除を実行できます。このリソースについて特定ユーザーにパーミッションを割り当てるには以下を行います。
- クリックして、ユーザーまたはチームの名前の横にある 1 つまたは複数のチェックボックスを選択してこれらを選択します。
注釈
ユーザー と チーム タブ間を保存せずに移動して、複数のユーザーとチームを同時に選択することができます。
選択を終えると、ウィンドウが展開され、選択した各ユーザーまたはチームに対してドロップダウンメニュー一覧からロールを選択できるようになります。
上記の例では、インベントリー関連のオプションが表示されます。リソース毎に、利用できるオプションが異なります。
- 管理者 は権限の読み取り、実行および編集を許可します (すべてのリソースに適用)。
- 使用 は、ジョブテンプレートのリソースの使用を許可します (ジョブテンプレート以外の全リソースに適用)。
- 更新 は、SCM 更新でのプロジェクト更新を許可します (プロジェクトおよびインベントリーに適用)。
- アドホック はアドホックコマンドの使用を許可します (インベントリーに適用)。
- 実行 は、ジョブテンプレートの起動を許可します (ジョブテンプレートに適用)。
ちなみに
ロールの選択ペインの キー ボタンを使用して、各ロールの説明を表示します。
- 選択したユーザーまたはチームに適用するロールを選択します。
注釈
ユーザー と チーム タブ間を保存せずに移動すると、複数のユーザーとチームにロールを割り当てることができます。
完了したら 保存 をクリックすると、ユーザー/チームの追加ウィンドウが閉じ、各ユーザーやチームに割り当てられた更新済みのロールが表示されます。
特定ユーザーのパーミッションを削除するには、そのリソースの横にある「関連付けの解除 (x)」ボタンをクリックします。
これにより確認ダイアログが起動し、関連付けの解除の確認が求められます。
プロジェクトパスを追加する際に問題がある場合は、プロジェクトディレクトリーおよびファイルのパーミッションおよび SELinux コンテキスト設定を確認します。
警告
Ansible Playbook ディレクトリーをベースプロジェクトパスに追加していない場合、Tower から以下のメッセージが送信されます。
適切な Playbook ディレクトリーを作成し、SCM から Playbook をチェックアウトするか、または Playbook を適切な Playbook ディレクトリーにコピーしてこの問題を修正します。
- SCM URL: ヘルプ テキストの例を参照できます。
- SCM ブランチ: オプションで Mercurial の SCM ブランチ、SCM ブランチ、タグまたは Git のリビジョンを入力します。
- リビジョン #: オプションで Subversion のリビジョン # を入力します。
- SCM Credential (SCM 認証情報): 認証が必要な場合、適切な SCM 認証情報を選択します。
- SCM 更新オプション:
- クリーニング: 更新の実行前にローカルの変更を削除します。
- 更新時の削除: 更新の実行前にローカルリポジトリーを完全に削除します。リポジトリーのサイズによっては、更新の完了までにかかる時間が大幅に増大します。
- 起動時の更新: このプロジェクトを使用してジョブを実行する場合には、ジョブの開始前にローカルリポジトリーの更新を実行します。ジョブの生成速度がプロジェクトの同期速度を上回る場合のジョブのオーバーフローを避けるため、これを選択して、特定の期間 (秒単位) 以前のプロジェクトの同期をキャッシュするようキャッシュタイムアウトを設定することができます。
ちなみに
Github リンクを使用すると、Playbook を簡単に使用できます。使用を開始するには、
helloworld.yml
ファイル (https://github.com/ansible/tower-example.git より利用可能) を使用します。このリンクから、Ansible Tower Quick Start Guide の説明に従って手動で作成されたものに非常に似ている Playbook を追加することができます。これを使用しても、システムが変更されたり、破損することはありません。
注釈
ソースコントロールを使用するためにプロジェクト設定を追加した直後に「同期」が開始され、設定されたソースコントロールからプロジェクト詳細の取り込みが実行されることに注意してください。
3. To set a schedule for updating the project from SCM, click the button. This will navigate to the Schedules screen.
この画面には、選択された プロジェクト で現在利用できるスケジュールの一覧が表示されます。スケジュールの一覧は、名前 で並べ替えできます。
スケジュールの一覧には以下が含まれます。
スケジュール 画面の右上にあるボタンを使用して以下のアクションを実行できます。
新規スケジュールを作成するには、以下を実行します。
SCHEDULE DESCRIPTION (スケジュールの説明): 選択したローカルタイムゾーンで設定されたスケジュールとスケジュールされたオカレンスの一覧を確認できます。
ご用心
ジョブは UTC でスケジュールされます。ジョブが 1 日の特定の時間に繰り返し実行される場合には、夏時間 (DST) へ/からの切り替えがあると、ローカルタイムゾーンに合わせてこれらのジョブのスケジュールは移動する場合があります。基本的に、Tower はスケジュールの保存時に UTC に対してローカルタイムゾーンベースの時間を解決します。スケジュールを正確に設定するには、スケジュールを UTC 時間で設定する必要があります。
ON/OFF トグルボタンを使用して、アクティブなスケジュールを停止したり、停止したスケジュールをアクティブにしたりできます。
プロジェクトのスケジュール概要画面には、初回、次回および最終実行のスケジュールについても表示されます。
アクション 列では、スケジュールについてのいくつかのアクションを選択できます。
プロジェクト更新の終了時に、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 ドキュメントの Advanced Control Over Role Requirements を参照してください。