[SaltStack Config ファイル サーバ] ワークスペースと [ピラー] ワークスペースで、状態ファイルとピラー データを作成またはアップロードできます。ファイル サーバを使用しない場合、SaltStack Config は状態ファイルとピラー データを保存できる外部リポジトリ(Git リポジトリなど)との接続もサポートします。

状態ファイルについて

各ノードまたはアプリケーションを 1 つずつ手動で構成する代わりに、SaltStack Config 状態管理システムを使用して、複数のノードに同時に適用できる状態ファイルを作成することができます。これらの状態ファイルには、ノードで実行する必要がある操作、およびこれらを操作する順序を SaltStack Config に指示する一連の命令を含めることができます。また、適用する必要がある構成ファイルまたは設定の説明を含めることができます。

状態ファイルを作成または変更した後に、これらの状態ファイルを自動的に実行して、一度に多くのノードに適用することができます。各ノード固有のプロパティ(オペレーティング システムなど)に基づいてノードをターゲットにすることも、定義したカスタム ラベルに基づいてノードをターゲットにすることもできます。詳細については、ターゲットの作成方法を参照してください。

また、状態管理システムによって各ノードが適切に、かつ可能な限り効率的に構築されます。構成ドリフトが発生した場合、SaltStack Config はノードとアプリケーションを準拠した構成状態に戻すことができます。構成を変更する必要がある場合、SaltStack Config は影響を受けるノードに変更を迅速に展開できます。

状態ファイルの例

状態ファイルは通常、YAML と Jinga の形式で記述されますが、JSON などの他の形式は Salt と互換性があります。一般的な状態ファイルは次のようになります。

install_apache:
  pkg.installed:
    - name: httpd
    
ensure_service_running:
  service.running:
    - name: httpd
    - watch:
      - pkg: install_apache
      
default_html_page:
  file.managed:
    - name: /var/www/html/index.html
    - source: salt://apache/index.html
この状態ファイルには、3 つの異なる Salt 実行モジュールを実行する 3 つの手順が含まれています。この状態ファイルをミニオンに適用すると、 SaltStack Config は以下を実行します。
  • ミニオンに Apache (httpd) をインストールします。
  • Apache サービスを開始します。
  • ミニオンにホストされているサンプルの HTML インデックス ページを展開します。

ピラー データについて

[ファイル サーバ] ワークスペースのサンプル ピラー ファイル

注: 機密情報用にピラー データを予約することをベスト プラクティスとして推奨します。
ピラーは、Salt マスターに格納され、そのデータへのアクセスが許可されている 1 つ以上のミニオンに渡されるデータの構造です。ピラー データには、主に次の 2 つの使用事例があります。
  • ピラーは、パスワードや設定など、プライベートな機密データへのユーザー アクセスを制限できます。たとえば、ピラーを使用することで、ユーザーがこれらのデータの認証情報にアクセスせずに、外部サービスへの認証が必要なジョブを実行することが可能になります。この場合、ユーザーには特定のジョブとターゲットへのアクセス権を割り当てますが、機密性の高い認証情報が含まれるピラーへのアクセス権は割り当てません。
  • ピラーは、データを要求するコンテキストまたはミニオンに基づいて変化するデータを送信できます。たとえば、ミニオンごとに異なるパスワードを割り当てたり、すべてのパスワードを 1 つのピラー ファイルに保存したりできます。その後、ファイル内の一意のパスワードを検索するようにミニオンに指示する状態ファイルを作成できます。複数のファイルを作成したり、複数の場所にパスワードを保存したりする必要はありません。

SaltStack Config ピラー ストアに格納されているデータは、SaltStack Config の特定のインスタンスに関連付けられている RaaS 暗号化キー(例:「/etc/raas/pki/.raas.key」)を使用して暗号化されます。ピラー データは SaltStack Config ユーザー インターフェイスで定義されると、このキーで暗号化され、PostgreSQL データベースに保存されます。このキーは、データを復号して SaltStack Config ユーザー インターフェイスに表示するためにも使用されます。

ピラー ファイルの例

ピラー ファイルは通常、YAML と Jinga の形式で記述されますが、JSON などの他の形式は Salt と互換性があります。ピラー データはディクショナリとして保存され、キーと値のペアを使用して値を検索します。一般的なピラー ファイルは次のようになります。

 pillar1: value
 pillar2:
   - value
   - value
 pillar3:
   sub_key:
     - value
     - value

この例では、ピラー データをフォーマットする 3 つの異なる方法を示します。使用する構文は、ニーズと保存する必要があるデータのタイプによって異なります。

開始する前に

SaltStack Config は Salt を利用しているため、Salt およびこれらの機能に関連する概念についての基本的な知識があると役立ちます。次の表に、詳細を把握するのに役立つリソースを示します。

詳細 参照先

Salt の操作の基本

Salt 状態

ピラー データ

Salt の実行モジュールおよび状態モジュール

  • すべてのモジュールのリストについては、Salt モジュール インデックスを参照してください。
  • 特定のニーズを解決するのに最適なモジュールを決定するためのサポートが必要な場合や、特定のモジュールの使用について不明な点がある場合は、SaltStack Community Slack ワークスペースでコミュニティによるサポートを依頼することができます。

ピラー データを定義した後、[ターゲットの更新] をクリックし、ターゲット グループを選択してから [保存] をクリックすることで、ピラー データをミニオン システムのグループに割り当てることができます。

SaltStack Config でのターゲットへのピラー データの接続

ピラー データが特定のターゲット システムに割り当てられ、状態ファイルに含まれている場合、ミニオン システムごとにマスターによって処理され、ミニオンごとに個別の AES キーを使用して暗号化されます。このキーによって、状態またはオーケストレーション ファイル プログラム中にピラー データをターゲット システムに転送できるようになります。

ファイル サーバへの状態ファイルの追加

ジョブで使用できるように状態ファイルをファイル サーバに追加するには、次の手順を実行します。

  1. 目的の結果を達成するのに役立つ Salt 実行モジュールまたは状態モジュールを調べます。ニーズに合った Salt モジュールを見つけたら、モジュールのドキュメントを参照し、モジュールのパラメータやその他の要件について理解します。
  2. オプション:ベスト プラクティスとして優先コード エディタで状態ファイルの大まかなドラフトを作成し、コード リンターを使用して、状態ファイルが適切な形式の構文を使用していることを確認します。
  3. SaltStack Config ユーザー インターフェイスのサイド メニューで [構成] > [ファイル サーバ] をクリックし、[ファイル サーバ] ワークスペースを開きます。
  4. 最初にファイル サーバ ワークスペースを開くと、ファイル ディレクトリと空の新しいファイルが表示されます。この空のファイルを使用して新しい状態ファイルを作成するか、コード エディタから状態ファイルをコピーします。SaltStack Config の [ファイル サーバ] ワークスペース内の空の状態ファイル
  5. [Saltenv] メニューをクリックして、状態ファイルを保存する環境を選択します。選択する環境が不明な場合は、[ベース] を使用します。
  6. [パス名] フィールドにファイルパスとファイル名を入力し、末尾にファイル拡張子 .sls を付けます。たとえば、/my-directory/my-state-file.sls です。
  7. ファイルの本文に、状態ファイルのコードを書き込むか、コピーします。次に例を示します。[ファイル サーバ] ワークスペースの状態ファイル内の状態ファイル コード
  8. 状態ファイルを保存し、新しいファイルがファイル サーバ ディレクトリに表示されることを確認します。

Salt マスターへのピラー データの追加

SaltStack Config [ピラー] ワークスペースを使用してピラー データを Salt マスターに追加できますが、Salt マスターにピラー データを直接追加する方が簡単な場合があります。ピラー データを追加して、状態ファイル内で参照したりターゲットに割り当てたりできるようにするには、次の 2 つの方法のいずれかを実行します。

  • Salt マスターに SSH 接続し、マスターにファイルを追加する Salt の標準の手順を使用してピラー ファイルをマスターのディレクトリに追加します。詳細については、ピラーおよびピラーの説明を参照してください。
  • SaltStack Config ユーザー インターフェイスで、salt-run コマンドを使用して Salt マスターにピラー データを追加するジョブを作成します。このコマンドでは、Salt ランナー機能が使用されます。詳細については、ジョブの作成方法を参照してください。

次の手順

ミニオンがアクセスできる状態ファイルとピラー データを作成した後に、SaltStack Config で作成したジョブでこれらのファイルを参照することができます。詳細については、ジョブの作成方法を参照してください。