ジョブは、リモート実行タスクの実行、状態の適用、Salt ランナーの起動に使用されます。[ジョブ] ワークスペースでは、ジョブ設定を作成、構成、および保存して再利用できます。ジョブは一般的に、自動化して複数回実行する必要があるシステム操作を対象とし、構成時間を節約します。
たとえば、仮想マシンを作成して展開し、基本的なアプリケーションのセットをインストールするジョブがあるとします。新しい仮想マシンを展開することが必要になるたびにこのジョブを実行すると、すべての展開に同じアプリケーションと構成のセットが確実に適用されます。
構成管理用のジョブを作成して使用するために [ジョブ] ワークスペースを SaltStack Config の他のワークスペースと組み合わせて使用する方法の概要については、SaltStack Config jobs workflowを参照してください。
ジョブの性質に応じて、[ジョブ] ワークスペース、[ミニオン] ワークスペース、または SaltStack Config ユーザー インターフェイスの他の画面からジョブを実行できます。ジョブは、定期的なスケジュールによって実行することも、必要なときにのみ実行することもできます。必要なときにのみ実行されるジョブは、通常、アドホック ジョブと呼ばれます。
ジョブの実行の詳細については、以下を参照してください。
ジョブの要件
[ジョブ] ワークスペースの各ジョブでは、設定が事前定義されています。既存のジョブの設定を編集したり、独自の設定で新しいジョブを作成したりすることができます。
ジョブを実行するには、ジョブに次の要素が含まれている必要があります。
- 関数(ジョブで達成するタスク)
- ターゲット、1 台の Salt マスター、複数の Salt マスターのいずれか
- ロールベースの権限
ターゲットは、ジョブの設定で定義することも、定義しないでおいてジョブを実行するたびに選択することもできます。ジョブのターゲットを定義すると、そのジョブを実行すべきではないノードで実行されることを防ぐこともできます。詳細については、ミニオンを参照してください。
[ジョブ] ワークスペースでは、各ジョブに対するロールベースのアクセスを定義できます。ロール エディタでは、ジョブに対するロール アクセスを定義するほか、対応するタスクを実行するための権限をロールに割り当てることも必要です。詳細については、ロールと権限を参照してください。
[ジョブ] ワークスペースでは、新しいジョブの作成と既存のジョブの編集が可能です。ジョブ設定を定義した後は、アドホック ジョブを実行することも、将来ジョブを実行するためのスケジュールを作成することもできます。詳細については、スケジュールを参照してください。
SaltStack Config に含まれる Run Command コントロールを使用すると、再利用可能なジョブを定義することなく単一のコマンドを実行できます。これは、すぐにコマンドを実行する場合、またはトラブルシューティングや初期構成など、日常のワークフローには含まれない 1 回限定のジョブを実行する場合に便利です。詳細については、コマンドの実行を参照してください。
また、各種のジョブを表示、編集、実行、削除できるロールを定義することもできます。
[ジョブ] ワークスペースへのアクセス
[ジョブ] ワークスペースを使用するには、サイド メニューの [設定] > [ジョブ] の順にクリックします。
ジョブの作成
新しいジョブを作成するには、次の手順に従います。
- [ジョブ] ワークスペースで、[ジョブの作成] をクリックします。
- 新しいジョブの詳細を入力します。入力する詳細は、作成するジョブのタイプによって異なります。詳細については、ジョブの設定を参照してください。
- [保存] をクリックします。これで、ジョブを実行できます。
ジョブの実行
アドホック ジョブを実行するには、次の手順に従います。
- [ジョブ] ワークスペースで、実行するジョブの横にあるメニュー をクリックします。
- [今すぐ実行] をクリックします。
- ポップアップで、ジョブを実行するターゲットを選択します。
注: ジョブの構成でターゲットまたは Salt マスターが含まれている場合、これは確認のために表示されます。
- 必要に応じて追加オプションを選択します。
- 通知の設定
- 必要に応じて、[テストとして実行](ドライ ラン)を選択してジョブをテストとして実行します。
- [今すぐ実行] をクリックします。
注: [ミニオン] ワークスペースからジョブを実行することもできます。 ミニオンを参照してください。
ジョブの検索
現在までに作成された使用可能なジョブのリストを表示するには、[ジョブ] ワークスペースにアクセスします。
デフォルトでは、1 ページに表示されるジョブは 20 件のみです。表示されるジョブを増やすには、ジョブ テーブルの一番下にある [ページあたりのアイテム数] メニューをクリックし、表示するジョブの数を選択します。
特定のジョブを検索するには、次の手順に従います。
- [ジョブ] ワークスペースで、検索する列のフィルタ ボタン をクリックします。
- 検索条件の入力を開始すると、すぐに行フィルタが表示されます。たとえば、ジョブに関連する Salt モジュールによってジョブを検索する場合は、[関数] 列でフィルタリングします。
注: 列名を 1 回クリックすると、行を降順にソートできます。もう一度クリックすると、順序を反転できます。フィルタリングの詳細については、 テーブルの列のフィルタリングと並べ替えを参照してください。
テーブルの列のフィルタリングと並べ替え
各列をフィルタリングするには、そのフィルタ アイコン を選択し、フィルタ条件を選択または入力します。フィルタをクリアするには、ジョブ テーブルの上にある [フィルタのクリア] ボタンをクリックします。
列名を選択して列を並べ替えることもできます。テーブルに表示する列をカスタマイズするには、テーブルの左下隅にある [列の表示] ボタン をクリックします。
ジョブの戻り値の表示
ジョブの戻り値を表示するには、次の手順に従います。
- サイド メニューで、[アクティビティ] をクリックし、[完了] をクリックして、完了したジョブのリストを表示します。
- [JID] 列でジョブ ID を選択して、ジョブの戻り値の詳細を表示します。詳細については、ジョブの戻り値を参照してください。
ジョブの編集
ジョブを更新または変更するには、次の手順に従います。
- [ジョブ] ワークスペースで、ジョブを選択します。
- 必要に応じてジョブの詳細を編集し、完了したら [保存] をクリックします。
ジョブ権限の定義
管理者は、特定のジョブを実行できるユーザーを制限できます。この権限を定義するには、次の手順に従います。
- [ジョブ] ワークスペースで、ジョブを選択してそのジョブの詳細を開きます。
- ジョブの詳細ページで、[ロール アクセス] をクリックします。
- ダイアログで、各種ロールに対して有効にするアクセスのレベルを選択し、[保存] をクリックします。
- ジョブの詳細ページで、[保存] をクリックします。
注: ロール エディタでは、ジョブに対するロール アクセスを定義するほか、対応するタスクを実行するための権限をロールに割り当てることも必要です。詳細については、 ロールと権限を参照してください。
ジョブの設定
次のオプションに基づいてジョブ設定を定義します。
- [名前] - ジョブの名前を入力します。この情報は、[ジョブ]、[ミニオン]、および [アクティビティ] の各ワークスペースのほか、ロール エディタに表示されます。
- [説明] - ジョブの説明を入力します(オプション)。この説明は、[ジョブ] ワークスペースのジョブのリストに表示されます。
- [コマンド] - 実行するコマンドを次から選択して指定します。
-
salt
- ミニオンのターゲット グループに対して実行するジョブを定義します。 -
salt-run
- Salt マスターまたはそのグループに対して実行するジョブを定義します。
注: SaltStack Config に含まれる Run Command コントロールを使用すると、再利用可能なジョブを定義することなく単一のコマンドを実行できます。これは、すぐにコマンドを実行する場合、またはトラブルシューティングや初期構成など、日常のワークフローには含まれない 1 回限定のジョブを実行する場合に便利です。詳細については、 コマンドの実行を参照してください。 -
- [ターゲット] - ターゲットは 1 台以上の Salt マスター上に構成されるミニオンのグループで、ジョブの Salt コマンドが適用されます。Salt マスターもミニオンのように管理でき、ミニオン サービスを実行している場合はターゲットにすることができます。[コマンド] で
salt
が選択されている場合は、ジョブを実行する対象となるミニオンのターゲット グループを必要に応じて指定できます。このフィールドを空白のままにすると、ジョブが実行されるたびにターゲットを選択するように求められます。 - [すべてのマスター] - Salt マスターとは、ミニオンに対してコマンドを発行するために使用される中心的なノードです。[コマンド] で
salt-run
が選択されている場合は、ジョブを実行する対象となる Salt マスターを指定できます。デフォルトでは、[すべての Salt マスター] が選択されます。このオプションをオフにすると、[マスター] メニューが表示されます。salt-run
ジョブは Salt ランナーとも呼ばれます。Salt ランナーは、Salt マスターで便利な関数を実行するために使用されるモジュールです。salt-run
の使用の詳細については、ジョブの設定を参照してください。 - [Salt マスター] - [コマンド] で
salt-run
が選択され、[すべての Salt マスター] がオフになっている場合は、[マスター] メニューが表示されます。このメニューをクリックし、ジョブを実行する対象となる特定の Salt マスターを選択します。必要に応じて、複数の Salt マスターを選択できます。 - [関数] - ジョブの実行時の動作を定義する関数を入力します。1 つのリモート実行ジョブ、1 つの状態ファイル ジョブ、または 1 つの Salt ランナー ジョブを定義できます。Salt 関数のリストについては、Salt Module Referenceを参照してください。
- [単一のリモート実行ジョブ] - 単一のリモート実行ジョブを定義するには、ジョブ設定に関数と必要な引数を含めます。
- [状態ファイル ジョブ] - 状態ファイル ジョブはターゲットに状態を適用し、1 つ以上のコマンドによって実行できます。状態関数は状態モジュール内に含まれる関数であり、アプリケーションがシステムに対して特定の状態になるように管理することができます。状態関数は多くの場合、指定されたタスクを実行するために 1 つまたは複数の実行モジュールを呼び出します。highstate は、top ファイルで定義されているすべての状態を適用します。ファイル サーバ内の状態ファイルを表示および追加できます。ファイル サーバを参照してください。
状態ファイルをジョブに適用するには、
state.apply
関数を使用します。highstate を実行するには、ジョブ設定でstate.apply
関数またはstate.highstate
関数を使用します。ジョブに状態呼び出しを追加すると、追加のフィールドが表示され、適用する状態ファイルを選択できます。また、オプションとしてピラーのオーバーライドを JSON 形式で渡すことができます。
注: ジョブ ページに表示されるピラー データがジョブと共に送信されると、認証された他のミニオンから参照できる場合があります。データ保護を強化するには、機密データを標準のピラーに割り当てます。 ピラーを参照してください。Salt の状態の詳細については、Salt のドキュメントのHow do I use Salt States?を参照してください。
- [Salt ランナー] - 1 台の Salt マスター、または Salt マスターのグループに適用される
salt-run
ジョブ。salt-run
ジョブは Salt ランナーとも呼ばれます。Salt ランナーは、Salt マスターで便利な関数を実行するために使用されるモジュールです。Salt ランナーを使用すると、オーケストレーションの実行、リモートからのミニオンのパワーオン、Webhook の呼び出しなどが可能になります。これらは、タスクを一元的に実行したり、中心となる開始点から実行したりする場合に役立ちます。たとえば、特定の Salt マスターに関連付けられているすべてのミニオンに highstate を適用できます。オーケストレーション ランナー ジョブを構成するには、
state.orchestrate
関数を使用します。ジョブにオーケストレーション呼び出しを追加すると、追加のフィールドが表示され、そこでは、適用するオーケストレーション ファイルを一覧表示できます。また、オプションとしてピラーのオーバーライドを JSON 形式で渡すことができます。注: ジョブ ページに表示されるピラー データがジョブと共に送信されると、認証された他のミニオンから参照できる場合があります。データ保護を強化するには、機密データを標準のピラーに割り当てます。 ピラーを参照してください。Salt ランナーの詳細については、Salt Runners Referenceを参照してください。
- [環境] - 状態ファイルまたはオーケストレーション ファイルが配置されている環境を選択します。これは、ファイル サーバのルート ディレクトリのサブディレクトリです。ファイル サーバを参照してください。
- [テスト](ドライ ラン)- テスト ジョブを実行し、仮想的なジョブの戻り値を生成します。[テスト] を選択した場合、ジョブは実行されず、変更は発生しません。このオプションが選択されていない場合は、後でジョブを実行する際にテストとして実行することもできます。テスト(ドライ ラン)は、特定の関数でのみ使用できます。詳細については、管理者に確認してください。