SaltStack Config には、RaaS サーバ、マスター プラグイン、2 つの中央データベースなど、4 つ以上のアーキテクチャ コンポーネントが含まれています。

次の図に、基本的な SaltStack Config アーキテクチャの主要なインストール関連コンポーネントを示します。

SaltStack Config のさまざまなコンポーネントを示すアーキテクチャ図
注: 問題のある用語を取り除くという VMware の取り組みの一環として、SaltStack Config とその関連製品およびドキュメントで使用されている Salt マスターという用語は、より適切な用語に置き換えられます。この用語の更新が完全に完了するのは、いくつかのリリース サイクル後になる可能性があります。

Salt マスターとマスター プラグイン

SaltStack Config は、オープンソースの構成管理および自動化システムである Salt を利用しています。

Salt マスターは、SaltStack Config とネットワーク上の他のノード(ミニオン)を結び付ける中心的な役割を果たします。SaltStack Config からコマンド(ジョブなど)を発行すると、そのコマンドは Salt マスターに渡され、ターゲットのミニオンに配布されます。

SaltStack Config は、必要に応じて、システム内の 1 つまたは複数の Salt マスターに接続できます。SaltStack Config が Salt マスターと通信するには、マスターにマスター プラグインがインストールされ、そのキーが SaltStack Config で受け入れられる必要があります。マスター プラグインにより、Salt マスターは SaltStack Config によって開始されたジョブまたはプロセス、および PostgreSQL データベースに格納されている外部ファイルやピラー データにアクセスすることができます。

プラグインは、Salt によって提供される既存の拡張ポイントと統合されます。たとえば、ジョブの戻り値は Salt のマスター側にある Salt 外部ジョブ キャッシュを使用して収集され、RaaS ファイル サーバは Salt ファイル サーバ プラグインを使用します。
注: 複数の Salt マスターを SaltStack Config に接続できます。SaltStack Config に接続されている各 Salt マスターにマスター プラグインがインストールされている必要があります。

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 システム アーキテクチャを参照してください。