Project (プロジェクト) は、Tower で表される Ansible Playbook の論理コレクションです。
Playbook および Playbook ディレクトリーをプロジェクトのベースパスに手動で配置するか、Tower がサポートするソースコード管理 (SCM) システム (例: Git、Subversion、Mercurial) に Playbook を配置することで、Playbook と Playbook ディレクトリーを管理できます。
注釈
デフォルトで、プロジェクトのベースパスは /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 更新からのプロジェクトの更新を許可します。
注釈
チームとユーザー間を切り換える必要はありません。複数のロールを複数のユーザーまたはチームの両方に一度に割り当てることができるため、 ボタンをクリックする必要は ありません。これは、選択した後に保存しないまま 1 つのタブから別のタブに移動して単純に実行できます。
ちなみに
キー ボタンを使用して、選択したリソースに適用されるそれぞれのロールのヘルプテキストを表示します。
「パーミッションの追加」ウィザードの拡張されたセクション 2 のボタンをクリックし、それぞれの Tower オブジェクトのロールの割り当てを確認します。
終了したら 保存 をクリックします。「パーミッションの追加」ウィザードが閉じ、選択された各リソースのロールが割り当てられ状態でユーザーおよびチームの更新プロファイルが表示されます。
特定リソースのパーミッションを削除するには、そのリソースの横にある「関連付けの解除 (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 を参照してください。