1.3. Automation Controller の主なワークロード
Automation Controller の主なワークロードは次のとおりです。
- Automation Controller プロジェクトを通じて自動化コンテンツを管理する
- ジョブを実行して自動化を開始する
1.3.1. Automation Controller プロジェクトの同期 リンクのコピーリンクがクリップボードにコピーされました!
Ansible Playbooks などの Automation Controller プロジェクト内の自動化コンテンツのソースを定義します。これらのプロジェクトにおける主なワークロードは、同期処理です。API のプロジェクト更新ジョブは同期を管理します。これらのジョブは、UI ではソース制御更新とも呼ばれます。
これらのプロジェクト更新ジョブは、コントロールプレーンと OpenShift Container Platform 内のタスク Pod でのみ実行されます。これらのロールは、Git リポジトリーなどの定義されたソースから最新の自動化コンテンツを使用して Automation Controller を更新することです。
プロジェクトに Playbook と Ansible 関連のテキストファイルのみが保存されている限り、プロジェクトの更新はパフォーマンスに影響しません。ただし、プロジェクトが過度に大きくなると問題が発生する可能性があります。プロジェクト内に大容量のバイナリーデータを保存しないでください。ジョブがデータに追加でアクセスする必要がある場合は、Playbook のスコープ内のオブジェクトストレージまたはファイルストレージからこの追加のデータを取得してください。
1.3.2. ジョブと自動化ワークロード リンクのコピーリンクがクリップボードにコピーされました!
ジョブは Automation Controller の主なワークロードであり、実行プレーンで実行されます。次のようなジョブが含まれます。
- 標準ジョブ
- ワークフロージョブ、スライスジョブ、一括ジョブ
- システムジョブ
1.3.2.1. 標準ジョブ リンクのコピーリンクがクリップボードにコピーされました!
標準ジョブには、インベントリーのホストのセットに対してプロジェクトから Ansible Playbook を実行することが含まれます。ジョブはコントロールノードによって開始され、制御ノードはジョブの結果をストリーミング、処理、および保存します。
この中でパフォーマンスが重要な部分は、Playbook の出力処理です。この出力は Automation Controller によってキャプチャーされ、ジョブイベントにシリアル化されます。ホストに対して実行される単一の Ansible タスクは通常、複数のジョブイベント (タスクの開始、ホスト固有の詳細、タスクの完了など) を生成します。
イベントのボリュームは、Playbook に設定された詳細レベルによって大きく異なります。たとえば、1 つのホストで Hello World を出力する単純なデバッグタスクでは、詳細度 1 で 6 つのジョブイベントが生成され、詳細度 3 では 34 のジョブイベントに増加する可能性があります。
ディスパッチャーとコールバックレシーバーは連携してジョブイベントを処理、送信、および保存します。これらのアクションは、プラットフォームのストレージと処理の使用状況に影響します。ジョブイベントはコントロールプレーンで処理され、データベースに保存されます。ディスパッチャーはジョブイベントを処理して、コールバックレシーバーはそのイベントを保存します。
1.3.2.2. ワークフロージョブ、スライスジョブ、一括ジョブ リンクのコピーリンクがクリップボードにコピーされました!
複雑な自動化とオーケストレーションを可能にするには、次のジョブタイプを使用して標準ジョブを拡張します。
- スライスジョブ: インベントリーのスライスに対して並行してジョブを分割して実行します。
- 一括ジョブ: 1 回の要求で複数のジョブを起動します。
- ワークフロージョブ: 複数のジョブテンプレートを調整します。
これらのジョブタイプは、基盤となる複数の標準ジョブの起動と管理を調整します。これらは、コントロールプレーンで行われるジョブのスケジューリングに影響しますが、それ以外のサービスには大きな影響はありません。
1.3.2.3. システムジョブ リンクのコピーリンクがクリップボードにコピーされました!
システムジョブには、古いジョブイベントデータのクリーンアップなどの内部メンテナンスタスクが含まれます。システムジョブの実行頻度はスケジュールによって管理されます。システムジョブは、コントロールプレーンで実行されます。これは、データベースと対話する管理コマンドを実行するためです。これらのワークロードには、主要なプラットフォームアクティビティーが含まれます。システムジョブの頻度を減らしたり、ジョブが保持するデータの日数を増やしたりすると、データベースのパフォーマンスが低下する可能性があります。一般的に、保持するデータの期間をできるだけ少なくし、長期的な監査データの保存には外部ロギング機能を活用することを推奨します。データベースに保存するデータが増えると、大きなテーブルをスキャンするクエリーの負荷が高くなり、データベースの処理コストが上がる可能性があります。