Automation Config には、RaaS サーバ、マスター プラグイン、2 つの中央データベースなど、4 つ以上のアーキテクチャ コンポーネントが含まれています。
次の図に、基本的な Automation Config アーキテクチャの主要なインストール関連コンポーネントを示します。
Salt マスターとマスター プラグイン
Automation Config は、オープンソースの構成管理および自動化システムである Salt を利用しています。
Salt マスターは、Automation Config とネットワーク上の他のノード(ミニオン)とを結び付ける中心的な役割を果たします。Automation Config からコマンド(ジョブなど)を発行すると、そのコマンドは Salt マスターに渡され、ターゲットのミニオンに配布されます。
Automation Config は、システムで必要に応じて 1 つまたは複数の Salt マスターに接続できます。Automation Config が Salt マスターと通信するには、Salt マスターにマスター プラグインをインストールし、そのキーを Automation Config で受け入れる必要があります。マスター プラグインにより、Salt マスターは、Automation Config によって開始されたジョブまたはプロセスにアクセスできます。Salt マスターは、PostgreSQL データベースに格納されている外部ファイルとピラー データにアクセスできます。
RaaS
RaaS (Returner as a Service) は、Automation Config の中心的なコンポーネントです。実際、Automation Config についての言及は、多くの場合 RaaS を指しています。
RaaS は、Automation Config ユーザー インターフェイスから管理コマンドを受け取るための RPC エンドポイントと、接続された Salt マスターとのインターフェイスとなる RPC 制御エンドポイントを提供します。すべての通信は、WebSockets または HTTP 上の RPC API 呼び出しを使用して送信されます。
Automation Config のユーザー インターフェイス
Automation Config のユーザー インターフェイスは、RaaS にグラフィカル ユーザー インターフェイス フロントエンドを提供する Web アプリケーションです。Automation Config は API を中心に考えられていますが、ユーザー インターフェイスで API (RaaS) と直接やり取りして、環境内のすべてのシステムを簡単に管理することもできます。さまざまなワークスペースにより、ユーザーはミニオン、ユーザー、ロール、ジョブなどを管理することができます。
データベース
[PostgreSQL データベース]
RaaS は、ミニオン データ、ジョブの戻り値、イベント データ、ファイルおよびピラー データ、ローカル ユーザー アカウントや、ユーザー インターフェイスのその他の設定を格納するために PostgreSQL データベースを使用します。
[Redis データベース]
RaaS は、キャッシュされたデータなど、特定のタイプのデータを一時ストレージに格納するために Redis データベースを使用します。また、キュー内の作業をバックグラウンド ワーカーに配布するために一時データ ストレージを使用します。
Salt の仕組みについては、Salt システム アーキテクチャを参照してください。