SaltStack Config のジョブを使用することにより、自分やチームが定期的に行う一般的な構成管理タスクと手順を簡素化および自動化できます。

SaltStack Config のジョブについて

ジョブは、リモート実行タスクを実行する場合や、SaltStack Config によって管理されるノード(ミニオン)に状態ファイルを適用する場合に使用します。ジョブは一般的に、自動化して複数回実行する必要があるシステム操作を対象とします。ジョブを作成すると、システム内のノードのプロビジョニング、構成、展開、監視、および管理を行う際に定期的に実行する一般的なタスクを自動化できます。また、構成エラーを定期的にチェックして防止するジョブなど、定期的に実行するジョブを設定することもできます。

頻繁に繰り返されるジョブを保存し、今後チームが再利用できるように、豊富なジョブ ライブラリを段階的に構築することができます。構成管理にジョブを使用すれば、システム内のノードを手動でインストール、構成、展開、更新、および保守するためにチームが費やす時間を短縮できます。

一般的なジョブの例

ジョブの仕組みについての実践的な知識を取得して、一般的なジョブの実用的な例を確認するには、SaltStack Configスタート ガイドの次のチュートリアルを参照してください。

目標や目的によっては、SaltStack Config で何千もの異なる種類のジョブを実行できる可能性があります。実行するタスクや解決する必要がある問題を特定したら、使用可能な Salt モジュールを検索して、必要な機能を実行するモジュールを見つけることができます。

SaltStack Config のジョブには通常、Salt オープン ソース コミュニティによって開発された実行モジュールまたは状態モジュールが 1 つ以上組み込まれています。Salt 実行モジュールは、Salt ミニオンで動作し、特定のタスクを実行することができる Python コードを含む小さなプログラムです。Salt 状態モジュールは、実行モジュールと似ています。Salt 状態モジュールは、Salt 状態ファイル内でミニオンへの状態の適用を管理するために使用可能な Python コードを含むプログラムです。

次の表に、最も一般的に使用される実行モジュールと状態モジュールの一部を示します。

Salt モジュール 説明

state.apply

状態ファイルをミニオンに適用するモジュール。状態ファイルが実行されている場合に、ミニオンが現在必要な状態になっているかどうかを確認します。ミニオンが現在必要な状態になっていない場合は、コマンドとモジュールを実行して、そのミニオンを必要な状態にします。

highstate は、top ファイルで定義されているすべての状態を適用します。詳細については、state.highstateを参照してください。

pkg.installed

正しいバージョンのパッケージがインストールされているかどうかを確認する状態モジュール(状態ファイルで使用されるモジュール)。このモジュールがインストールされていない場合は、パッケージをインストールし、そのパッケージのバージョンが正しいかを確認します。特定のオペレーティング システムにパッケージをインストールする方法については、salt.states.pkgを参照してください。

file.managed

Salt マスターからファイルをダウンロードし、そのファイルを後で使用できるようにターゲットのミニオンに配置する状態モジュール(状態ファイルで使用されるモジュール)。Salt を使用したファイル管理の詳細については、salt.states.fileを参照してください。

service.running

サービスが実行されているかどうかを確認する状態モジュール(状態ファイルで使用されるモジュール)。サービスが実行されていない場合は、サービスを起動します。Salt を使用したサービスの起動または再起動の詳細については、salt.states.serviceを参照してください。

Salt 実行モジュールおよび状態モジュールの包括的なリストについては、Salt モジュール インデックスを参照してください。

Salt に必要なモジュールがない場合は、Python で独自のカスタム モジュールを作成して Salt を拡張できます。必要に応じて、そのモジュールを上流工程の Salt プロジェクトに送信することもできます。VMware によって公式に提供されている Salt プロジェクト コミュニティには、IT およびシステム管理のロールで作業している 3,000 人を超える協力者が含まれています。Salt コミュニティは、最も一般的なタスクの実行やシステム管理者が直面する最も重要な問題の解決に役立つさまざまな実行モジュールと状態モジュールを作成することにより、Salt を拡張します。

ジョブ ワークフローの概要

通常、シニア システム管理者はジョブの設定を作成、構成し、後で再利用できるように保存します。その後、シニア管理者はジュニア管理者に対し、ジュニア管理者がアクセスできる任意のノード(ターゲット)でこのジョブを実行することを許可できます。シニア管理者はジョブを作成するときにジョブ入力を定義します。ジョブ入力は、ジュニア管理者が実行時に変更できる特定のジョブ設定または変数を意味します。

たとえば、シニア システム管理者は、仮想マシンを作成および展開し、そのマシンにアプリケーションまたはサービスの基本セットをインストールするジョブを構築することができます。新しい仮想マシンの展開が必要になるたびにこのジョブを実行して、すべての展開に同じアプリケーションと構成のセットが適用されるようにすることができます。この基本的なジョブを作成した後、シニア システム管理者はジュニア管理者に、ジュニア管理者がアクセス可能なターゲット(ノード)でこのジョブを実行するためのアクセス権を付与できます。シニア管理者は SaltStack Config でロールベースのアクセス制御 (RBAC) を使用し、最小の権限の原則に従って、ジュニア管理者が実行できるジョブとジョブを実行できるノード(ミニオン)を決定することができます。

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

ジョブのワークフローを示すダイアログ

各手順は、次に記事に記載されています。