job (ジョブ) は、Ansible Playbook をホストのインベントリーに対して起動する Tower のインスタンスです。
ジョブリンクには、ジョブの一覧とそれらのステータスが表示 (正常に完了、失敗、またはアクティブ (実行中の) ジョブとして表示) されます。この画面から実行できるアクションには、特定のジョブの詳細および標準出力、ジョブの起動、またはジョブの削除が含まれます。
Tower 検索機能を使用して各種の条件に基づいてジョブを検索します。Tower 検索についての詳細は、検索 の章を参照してください。
どのタイプのジョブをクリックしても、そのジョブのジョブの詳細ビューに移動します。このビューは 2 つのセクションから構成されます。
詳細 ペインには、ジョブの基本的なステータス (実行中、保留中、成功、または 失敗) およびその開始時間が表示されます。詳細 ペインの右上にあるアイコンからジョブの再起動 () または削除 () を実行できます。
詳細 ペイン: ジョブ実行についての詳細を提供します。
これらの項目をクリックすると、適切な場合には該当するジョブテンプレート、プロジェクトその他の Tower オブジェクトが表示されます。
標準出力 ペインでは、インベントリー同期 Playbook の完全な実行結果が表示されます。ここでは、Ansible のコマンドラインで実行した時に表示される情報と同じ情報が表示され、これはデバッグの際に役立ちます。標準出力ペインの右上隅にあるアイコンでは、出力をメインビューに切り替えたり ()、出力をダウンロードしたりできます ()。
詳細 ペインには、ジョブの基本的なステータス (実行中、保留中、成功、または 失敗) およびその開始時間が表示されます。詳細 ペインの右上にあるアイコンからジョブの再起動 () または削除 () を実行できます。
詳細 ペイン: ジョブ実行についての詳細を提供します。
これらの項目をクリックすると、適切な場合には該当するジョブテンプレート、プロジェクトその他の Tower オブジェクトが表示されます。
標準出力 ペインでは、SCM 更新の完全な実行結果が表示されます。ここでは、Ansible のコマンドラインで実行した時に表示される情報と同じ情報が表示され、これはでデバッグに役立ちます。標準出力ペインの右上隅にあるアイコンでは、出力をメインビューに切り替えたり ()、出力をダウンロードしたりできます ()。
Playbook 実行 ジョブのジョブの詳細ビューには、ジョブテンプレート ページからジョブを起動した後にもアクセスできます。
詳細 ペインには、ジョブの基本的なステータス (実行中、保留中、成功、または 失敗) およびその開始時間が表示されます。詳細 ペインの右上にあるアイコンからジョブの再起動 () または削除 () を実行できます。
詳細 ペイン: ジョブ実行についての詳細を提供します。
これらの項目をクリックすると、適切な場合には該当するジョブテンプレート、プロジェクトその他の Tower オブジェクトが表示されます。
標準出力 ペインには、Ansible Playbook の完全な実行結果が表示されます。ここでは、Ansible のコマンドラインで実行した時に表示される情報と同じ情報が表示され、これはデバッグに役立ちます。イベントの概要、ホストのステータス、ホストのイベントを表示することができます。標準出力ペインの右上隅にあるアイコンでは、出力をメインビューに切り替えたり ()、出力をダウンロードしたりできます ()。
イベントの概要では、この Playbook の一部として実行されたイベントの集計が表示されます。
ホストのステータスバーは、標準出力 ペインの上部で実行されます。ホストステータスバーのセクションにカーソルを置くと、その特定のステータスに関連付けられたホスト数が表示されます。
Tower 検索を使用して、特定ンおイベント、ホスト名、およびそれらのステータスを検索します。特定のステータスのホストのみをフィルターするには、以下の有効なステータスのいずれかを指定します。
以下の例には、失敗したホストのみを含めた検索が表示されています。
Tower 検索の使用についての詳細は、検索 の章を参照してください。
標準出力ビューには、特定のジョブで発生するイベントすべてが表示されます。デフォルトでは、すべての行で全詳細が表示されるように展開されています。すべて折り畳む () を使用して、プレイおよびタスクのヘッダーのみを含むビューに切り替えます。標準出力のすべての行を表示するには、() ボタンをクリックします。
または、それぞれのプレイやタスクの横にある矢印アイコンをクリックすると、その詳細をすべて表示することができます。矢印をクリックして横向きから下向きに切り替えると、プレイまたはタスクに関連付けられている行が拡大されます。矢印をもう一度クリックして横向きの位置に戻すと、折りたたみ表示になり、行が非表示になります。
拡張/縮小モードで詳細を表示する際の留意点:
標準出力 ペインからイベントの行をクリックすると、ホストイベント ダイアログが別のウィンドウに表示されます。このウィンドウでは、特定のイベントの影響を受けるホストが表示されます。
ホストイベント ダイアログでは、選択したイベントの影響を受けるホストに関する情報と、それに関連するプレイおよびタスクが表示されます。
JSON 形式で結果を表示するには、JSON タブをクリックします。
Tower は、物理メモリーの容量および Playbook の複雑度に基づいて実行できる同時ジョブの数を制限します。Ansible Tower 3.1.0 は、クラスターに N の追加 Tower ホストを設定してジョブ容量を追加します。Ping API エンドポイントでジョブを実行するための Tower の容量を表示することができます。ジョブ自体には、タスクが実行されているノードも表示されます。
「起動時の更新」の設定にチェックが付けられている場合、インベントリーまたはプロジェクトに依存するジョブテンプレートはキャッシュタイムアウト内である場合、それらについての更新をトリガー することもできます。同じプロジェクトまたはインベントリーに依存するキャッシュタイムアウト内の複数のジョブが起動する場合、それらのプロジェクトまたはインベントリー更新の 1 つのみが作成されます (それに依存するジョブ単位ではない) 。
問題がある場合は、プロジェクトまたはインベントリーソースのキャッシュアウトタイムアウトを 60 秒に設定してみてください。
Tower サーバーの RAM 容量およびインベントリーのサイズに関連する制限は、ファクトがメモリーに収集され、保存されるマシンの合計数に等しくなります。使用されるアルゴリズムは以下のようになります。
50 + ((total memory in megabytes) / 1024) - 2) * 75
50 がベースラインになります。
実行される各ジョブ:
(number of forks on the job) * 10
制限が Tower のデフォルト値の 0 の場合はデフォルトの値は 50 になります。
フォークは、リモートホストとの通信時に生成される並列プロセスのデフォルト数を決定するものです。フォーク数は可能なホストの数に自動的に制限されるため、これは処理できるネットワークおよび CPU ロードの制限になります。多くのユーザーはこれを 50 に設定し、他のユーザーはこれを 500 以上に設定します。数多くのホストがある場合、高い値であるほど、それらのすべてのホストでのアクションの速度が速くなります。この値を変更するには ansible.cfg
ファイルを編集することができます。
Ansible フォーク数のデフォルトはきわめて控え目な値で (5) に設定されています。Tower でフォークの値を渡さない (これを 0 のままにする) 場合、Ansible は 5 つのフォーク (デフォルト) を使用します。フォークの値を Tower で (1) に設定する場合、Ansible は入力した値を使用し、(1) フォークが作成されます。説明にあるように 0 以外の入力が使用されます。
例として、2 GB メモリーを持つシステムにフォーク数が 0 (Tower のデフォルト) のジョブがある場合、アルゴリズムは以下のようになります。
50 + ((2048 / 1024) - 2) * 75 = 50
4 GB メモリーを持つシステムにフォーク数が 0 (Tower のデフォルト) のジョブがある場合、コールバックを含む (4) タスクを同時に実行できます。
50 + ((4096 / 1024) - 2) * 75 = 200
以下のように Tower 設定ファイル (/etc/tower/settings.py
) に値を設定して変更できます。
SYSTEM_TASK_CAPACITY = 300
実行する機能がある限り、Tower は可能な限り多くのジョブをキューに入れ、実行するよう試行します。ただし、いくつかの留意すべきブロッカーおよび例外もあります。