5.3. Playbook 実行ジョブ
Playbook が実行されると、結果が Output タブに表示されます。使用すると、Ansible CLI に同じ情報が表示されます。これはデバッグに役立ちます。
イベントの概要には、この Playbook の一部として実行される次のイベントが表示されます。
- この Playbook が実行された回数が Plays フィールドに表示されます。
- この Playbook に関連付けられたタスクの数は、Tasks フィールドに表示されます。
- この Playbook に関連付けられているホストの数が Hosts フィールドに表示されます。
- Elapsed フィールドで Playbook の実行を完了するのにかかった時間
、 、ジョブ出力のダウンロード 、またはジョブの削除 を実行できます。
Output ビューのホストステータスバーのセクションにマウスをかざすと、そのステータスに関連付けられたホストの数が表示されます。
Playbook ジョブの出力には、Jobs Templates ページの Jobs タブからジョブを起動した後もアクセスできます。出力内のラインアイテムタスクをクリックして、ホストの詳細を表示します。
5.3.1. 検索
Search を使用して、特定のイベント、ホスト名、およびそれらのステータスを検索します。特定のステータスの特定のホストのみをフィルターするには、次の有効なステータスのいずれかを指定します。
- ok
- タスクは正常に完了しましたが、ホスト上で変更が実行されなかったことを示します。
- changed
- Playbook タスクが実行されました。Ansible タスクは冪等になるように作成する必要があるため、ホスト上で何も実行せずにタスクが正常に終了する場合があります。このような場合、タスクは ok を返しますが、変更されません。
- failed
- タスクは失敗しました。このホストに対するそれ以降の Playbook の実行は停止されました。
- unreachable
- ホストはネットワークからアクセスできないか、またはそれに関連する別の回復不可能なエラーがあります。
- skipped
- ホストが目標状態に到達するために変更が必要なかったため、Playbook タスクはスキップされました。
- rescued
- 失敗したタスクが表示してから、レスキューセクションが実行されます。
- ignored
-
ignore_errors: yes
が設定されていて、失敗したタスクを示しています。
次の例は、到達不能なホストのみを使用した検索を示しています。
検索の使用方法の詳細は、検索 セクションを参照してください。
標準出力ビューには、特定のジョブで発生したイベントが表示されます。デフォルトでは、詳細が表示されるようにすべての行がデプロイメントされます。すべて折りたたむ ( ) アイコンをクリックして、プレイとタスクのヘッダーのみを含むビューに切り替えます。プラス記号 ( ) アイコンをクリックすると、標準出力のすべての行が表示されます。
特定のプレイまたはタスクの横にある矢印アイコンをクリックすると、その詳細をすべて表示できます。横から下への矢印をクリックして、そのプレイまたはタスクに関連付けられた線をデプロイメントします。矢印をクリックして横の位置に戻り、線を折りたたんで非表示にします。
デプロイメントモードまたは折りたたみモードで詳細を表示する場合は、次の点に注意してください。
- 縮小表示されない行で、対応する行番号と開始時間を含む、表示されたそれぞれの行。
- プレイまたはタスクの完了後のプレイまたはタスクの開始時の展開/折りたたみアイコン。
- 特定のプレイまたはタスクのクエリーを実行する場合、それは完了したプロセスの最後に縮小表示されます。
- 場合によっては、出力が大きすぎて表示できない可能性があることを示すエラーメッセージが表示されます。これはイベントが 4000 を超える場合に発生します。エラーを回避するには、特定のイベントの検索とフィルターを使用します。
Stdout ペインでイベントの行をクリックすると、別のウィンドウに Host Events ウィンドウが表示されます。このウィンドウには、その特定のイベントの影響を受けたホストが表示されます。
Ansible Automation Platform の最新バージョンにアップグレードするには、すべての履歴 Playbook 出力とイベントを段階的に移行する必要があります。この移行プロセスは段階的に行われ、インストールの完了後にバックグラウンドで自動的に実行されます。非常に大量の履歴ジョブ出力 (数十 GB または数百 GB の出力) を含むインストールでは、移行が完了するまでジョブ出力が欠落する可能性があります。最新のデータが出力の先頭に表示され、その後に古いイベントが続きます。
5.3.2. Playbook 実行の出力:
Details タブにアクセスして、ジョブの実行に関する詳細を表示します。
実行したジョブの次の詳細を表示できます。
ステータス: 次のいずれかになります。
- Pending: Playbook の実行は作成されましたが、まだキューに入れられていないか、開始されていません。Playbook の実行だけでなく、すべてのジョブは、システムによって実行される準備ができるまで保留状態になります。Playbook の準備ができていない理由としては、現在実行中の依存関係 (次のステップを実行する前にすべての依存関係が完了している必要がある) に含まれていないか、または設定されている場所で実行するのに十分な容量がないことが考えられます。
- Waiting: Playbook 実行はキューに入れられており、実行を待機中です。
- Running: Playbook 実行が進行中です。
- Successful: 直前の Playbook 実行が成功しました。
- Failed: 直前の Playbook 実行が失敗しました。
- Job Template: ジョブが起動されるジョブテンプレートの名前。
- Inventory: このジョブを実行するために選択されたインベントリー。
- Project: 起動したジョブに関連付けられたプロジェクトの名前。
- Project Status: 起動したジョブに関連付けられたプロジェクトのステータス。
- Playbook: このジョブを起動するために使用される Playbook。
- Execution Environment: このジョブで使用される実行環境の名前。
- Container Group: このジョブで使用されるコンテナーグループの名前。
- Credentials: このジョブで使用される認証情報。
- Extra Variables: ジョブテンプレートの作成時に渡される追加変数がここに表示されます。
これらの項目のいずれかを選択すると、対応するジョブテンプレート、プロジェクト、およびその他のオブジェクトが表示されます。
5.3.3. Playbook のアクセスおよび情報共有
Automation Controller は、自動化実行環境および Linux コンテナーを使用しているため、Playbook がプロジェクトディレクトリー外のファイルを読み取ることはできません。
デフォルトでは、コンテナー内の ansible-playbook プロセスに公開されるデータは、現在使用しているプロジェクトのみです。
これをジョブ設定でカスタマイズし、追加のディレクトリーをホストからコンテナーに公開できます。
5.3.4. 分離機能および変数
Automation Controller は、コンテナーテクノロジーを使用してジョブを相互に分離します。デフォルトでは、現在のプロジェクトのみがジョブテンプレートを実行するコンテナーに公開されます。
追加のディレクトリーを公開する必要がある場合は、Playbook の実行をカスタマイズする必要があります。ジョブの分離を設定するには、変数を設定します。
デフォルトでは、Automation Controller はシステムの tmp
ディレクトリー (デフォルトでは /tmp
) をステージング領域として使用します。これは、Jobs settings ページの Job Execution Path フィールド、または /api/v2/settings/jobs
の REST API で変更できます。
AWX_ISOLATION_BASE_PATH = "/opt/tmp"
ホストから Playbook を実行するコンテナーに追加のディレクトリーを公開する場合は、Jobs Settings ページの Paths to expose to isolated jobs フィールド、または /api/v2/settings/jobs
の REST API で以下を使用することで、そのディレクトリーを指定できます。
AWX_ISOLATION_SHOW_PATHS = ['/list/of/', '/paths']
Playbook で AWX_ISOLATION_SHOW_PATHS
で定義されたキーまたは設定を使用する必要がある場合は、このファイルを /var/lib/awx/.ssh
に追加します。
ここで説明するフィールドは、Jobs settings ページにあります。