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