この例では、SaltStack Config を使用して構成設定をすばやく展開および管理するために状態ファイルを適用する方法について学習します。IT システム管理者または DevOps チーム メンバーのロールを持つユーザーが、多くのノードの構成設定を 1 つずつ手動で追加または更新する場合は時間がかかります。大規模な構成の場合は、特に時間がかかります。さらに、数百または数千のノードを同時に管理する必要がある場合は、構成の誤りや構成ドリフトが発生する可能性もあります。状態ファイル システムは、この問題を解決するのに役立ちます。この例では、状態ファイルと SaltStack Config を使用して、Windows サーバのファイアウォール設定などの構成設定を一貫した方法で追加および更新する手順について学習します。
この実践例では環境が変更されるため、実行する場合は注意が必要です。本番環境ではなく、テスト環境または開発環境内のノードを使用している場合に限り、この例を試すようにしてください。
Windows ノードでのファイアウォール設定の構成
ファイアウォールでポート 445 を開いて、Windows ミニオンでファイアウォール設定を構成するには、次の操作を実行します。
- SaltStack Config ファイル サーバ内に新しいファイルを作成します。
- SaltStack Config ユーザーインターフェイスのサイド メニューで [構成] > [ファイル サーバ] をクリックします。
- 最初に [ファイル サーバ] ワークスペースを開くと、ファイル ディレクトリと空の新しいファイルが表示されます。この空のファイルを使用して新しいファイルを作成します。
- ファイル サーバに新しい状態ファイル (SLS) を作成します。
- [Saltenv] ドロップダウン メニューをクリックして、[base] を選択します。
- ラベルなしのメニューの横に、ファイルパスとファイル名を入力します。
/windows/firewall.sls
を使用します。 - ファイルの本文に、次の状態ファイルのコード(YAML 構文を使用)をコピーして貼り付けます。
open_smb_port: win_firewall.add_rule: - name: SMB (445) - localport: 445 - protocol: tcp - action: allow
Windows ファイアウォール モジュールの詳細については、Salt モジュール - Win ファイアウォールを参照してください。
- 状態ファイルを保存します。
- 新しいファイルがファイル サーバ ディレクトリの [base > windows > firewall.sls] に表示されていることを確認します。
- 新しいジョブを作成します。
- サイド メニューで [設定] > [ジョブ] の順にクリックして、ジョブ ワークスペースを開きます。
- [ジョブの作成] ボタンをクリックします。
注:
[ジョブの作成] ボタンが表示されない場合は、新しいジョブを作成する権限がありません。チュートリアルを完了するために、ユーザーに代わってこのジョブにアクセスする方法、またはこのジョブを作成する方法については、vRealize Automation の管理者に確認してください。
- 新しいジョブの詳細を入力して、ジョブを保存します。
フィールド サンプル値 [名前]
このジョブに「Windows ファイアウォールの構成」などのわかりやすい名前を付けます。
[説明]
「ファイアウォールで Windows ノードのポート 445 を開く」など、このジョブの目的を他のユーザーに伝える説明を追加します。
[コマンド]
[salt] を選択します。
salt
コマンドは、ミニオンに対して実行されるジョブで使用されます。[ターゲット]
このメニューからは何も選択しないでください。このフィールドを空白のままにすると、ジョブの実行時にターゲットを選択できます。
[関数]
このフィールドをクリックして、「
state.apply
」と入力すると、このモジュールを選択できるようになります。このフィールドでは、このジョブの実行時に適用される Salt モジュールを選択します。
[環境]
メニューから
base
を選択します。[状態]
windows.firewall
メニューから新しく作成した状態ファイルを選択します。[引数]
このモジュールでは引数を使用できないため、空白のままにします。
[ジョブ入力] このジョブはジョブ入力を必要としないため、空白のままにします。ジョブ入力の詳細については、「ジョブの作成方法」を参照してください。 - ジョブが作成されたので、ジョブのターゲットを選択してジョブを実行します。
- サイド メニューで [ターゲット] をクリックしてターゲット ワークスペースを開き、ターゲットを表示します。
- [すべてのミニオン] テーブルで、このジョブのターゲットにする Windows ミニオンを見つけます。このミニオンの横にあるチェックボックスをオンにして、[ジョブの実行] ボタンをクリックします。
- [ジョブの実行] ダイアログ ボックスで [ジョブ] メニューをクリックし、前の手順で作成した「Windows ファイアウォールの構成」ジョブを選択します。必要に応じて、ジョブの名前を入力してジョブをフィルタリングできます。
- [今すぐ実行] をクリックします。
ジョブが正常に実行された場合は、ジョブが正常に開始されたことを示す通知が表示されます。
- サイド メニューで [アクティビティ] > [完了] をクリックして、ジョブが完了しているかどうかを確認します。
このテーブルにジョブが表示されない場合は、まだ処理中である可能性があります。現在実行中のジョブを確認するには、[アクティビティ] > [処理中] をクリックします。ジョブがテーブルに表示されるまで、[アクティビティ] > [完了] を継続的に更新します。
- ジョブが完了したら、ジョブの結果を確認します。
- ジョブが表示されている行を見つけて、その JID(ジョブ ID 番号)をクリックします。
注:
JID は、20 桁のハイパーリンク番号として表示されます。たとえば、有効な JID は 20210823204015061902 のようになります。
- ジョブの結果を確認して、ファイアウォールでポート 445 が開かれていることを確認します。
- ジョブが表示されている行を見つけて、その JID(ジョブ ID 番号)をクリックします。
結果と主な情報の概要
ジョブの結果を確認する場合は、次の点を考慮してください。
- 状態ファイルは、対象となるノード セットに正しい構成設定(ファイアウォール設定など)をすばやく適用するための簡単な方法を提供します。状態ファイルを使用すると、一貫した方法でノードの構成設定を行い、これらの設定をあらゆる規模ですばやく、効率的に展開することができます。構成設定を変更する必要がある場合は、状態ファイルを更新し、ターゲットで定義されているすべてのミニオンに再適用するだけです。
- 状態ファイルは構成ドリフトも防止します。構成ドリフトとは、時間経過やノード間の差によってシステム構成の差異が増大することです。状態ファイルを適用すると、SaltStack Config はターゲットが目的の構成状態になっているかどうかを確認します。状態は構成ポリシーのようなものです。サーバに設定するターゲット状態を定義します。この状態(ポリシー)をシステムに適用すると、SaltStack Config は構成をこの状態(ポリシー)に準拠させるために必要な操作のみを実行します。構成がすでに準拠している場合、SaltStack Config はすでに準拠していることをユーザーに示して、それ以上の変更は行いません。
- この例では状態ファイルを SaltStack Config ファイル サーバにローカルに保存しましたが、バージョン管理されているプライベートな Git リポジトリに状態ファイルを保存できることに注意してください。多くのユーザーがプライベートな Git リポジトリに SaltStack Config をリンクし、そこで infrastructure-as-code アプローチを使用して状態ファイルに対する変更を保存し、厳密に監視しています。