SaltStack Config を利用する主な理由の 1 つが、システムの構成管理を向上させることです。SaltStack Config のジョブを使用することにより、自分やチームが定期的に行う一般的なタスクと手順を簡素化および自動化できます。構成管理にジョブを使用すれば、システム内のノードを手動でインストール、設定、監視、および保守するためにチームが費やす時間を短縮できます。また、システムを常に整合性のある望ましい状態に保つことができます。

ジョブの作成と実行は複数の手順からなるプロセスであり、SaltStack Config の異なるツールやワークスペースをいくつか使用する必要があります。次の図は、ジョブのワークフロー全体の概要を示しています。


ジョブのワークフローをフローチャート形式で解説している図

各手順については、以降のセクションで説明します。

ターゲットの作成

ジョブの実行を開始する前に、ターゲットを作成して定義する必要があります。ターゲットは 1 つ以上の Salt Controller 上に構成されるミニオンのグループで、これに対してジョブの Salt コマンドが適用されます。Salt Controller もミニオンのように管理でき、ミニオン サービスを実行している場合はターゲットにすることができます。つまり、ジョブを実行するノードはターゲットによって決定されます。ミニオンのシンプルなリストを使用してターゲットを作成することも、オペレーティング システムやサーバ タイプなど、ミニオンの基本プロパティに基づいて、より複雑なターゲットを作成することもできます。

ミニオン ワークスペースを使用してターゲットを作成します。詳細については、ミニオンを参照してください。

ジョブの作成

ジョブを実行するには、まずジョブを作成する必要があります。ジョブは、リモート実行タスクの実行、状態の適用、Salt ランナーの起動に使用されます。つまり、どのタスク、プロセス、または状態ファイルをターゲット ノードに適用する必要があるかはジョブによって決まります。

特定のタスクの実行が必要になるたびにミニオンに対してコマンドを実行することもできますが、ジョブを作成し、ミニオンに適用する必要があるプロセスや状態を正確に記録する方が効果的です。ジョブを使用することで、適用する手順の一貫性が保たれ、将来の再利用のためにその手順を確実に保存できます。

ジョブを作成するときは、後でジョブを実行するときに適用できるように、ターゲットを未定義のままにしておくことができます。

ジョブ ワークスペースを使用してジョブを作成します。詳細については、ジョブを参照してください。

ロールの定義

システムのセキュリティを維持するには、アクセスが許可されている特定のノードやジョブのみにチームがアクセスできる必要があります。このアプローチは、一般にロールベースのアクセス コントロール (RBAC) と呼ばれます。RBAC は、チームの各メンバーのロールに応じたリソースにアクセスを限定する必要があることを意味します。チーム メンバーには、各メンバーの業務上の責任を果たすために必要なリソースへのアクセス権のみを与える必要があります。

SaltStack Config ではロールと権限をネイティブに定義できます。また、ターゲットやジョブへのアクセスを、Active Directory のような LDAP ベースのシステムや Google のような SAML ベースのシステムなど、組織の RBAC システムにマッピングすることもできます。

詳細については、以下を参照してください。

ジョブの実行

ジョブを実行する前に、以下に示すジョブの要素を定義する必要があります。

  • ターゲット
  • 関数(実行する必要があるコマンド、または適用する必要がある状態)
  • 権限(ターゲットに対して誰がジョブを実行できるか)

これらの設定を定義したら、ジョブを定期的に実行することも、必要な場合に限り実行することもできます。必要なときにのみ実行されるジョブは、通常、アドホック ジョブと呼ばれます。

スケジュールの作成

特定のタイミング(スケジュール設定されたメンテナンス ウィンドウなど)で実行されるジョブや、規則的な間隔で繰り返し実行されるジョブをスケジュール設定できます。

スケジュール ワークスペースを使用してスケジュールを作成します。詳細については、スケジュールを参照してください。

アドホック ジョブの実行

ミニオン ワークスペースまたはジョブ ワークスペースのいずれかを使用して、アドホック ジョブを実行できます。

詳細については、以下を参照してください。

ジョブのステータスと出力の確認

ジョブの実行中や完了後に、アクティビティ ワークスペースを使用してジョブのステータスと詳細な出力を確認できます。詳細については、アクティビティを参照してください。