インストール後のプロセスの一環として、マスター プラグインをインストール、構成、およびアップグレードする必要があります。マスター プラグインを使用すると、Salt マスターは SaltStack Config と通信することができます。マスター プラグインには、パフォーマンスの向上のために調整可能なさまざまな設定が含まれています。これは、大規模または処理量の多い環境で特に役立ちます。

通常、マスター プラグインは、環境内で SaltStack Config と通信する Salt マスターにインストールします。たとえば、複数の Salt マスターを含む構成(マルチマスター セットアップとも呼ばれる)を使用している場合は、各マスターにマスター プラグインをインストールする必要があります。

注: 問題のある用語を取り除くという VMware の取り組みの一環として、 SaltStack Config とその関連製品およびドキュメントで使用されている Salt マスターという用語は、より適切な用語に置き換えられます。この用語の更新が完全に完了するのは、いくつかのリリース サイクル後になる可能性があります。

開始する前に

マスター プラグインのインストールと構成はインストール後の一連の手順の 1 つであり、特定の順序で実行する必要があります。まず、インストール シナリオのいずれかを完了してから、インストール後の手順であるライセンス キーのインストールページを確認します。

次のコマンドを使用して、Salt マスターに PyJWT ライブラリをインストールする必要があります。
pip3 install pyjwt==2.3.0

マスター プラグインのインストールが必要になる条件

SaltStack Config の新規インストールの後は、すべての Salt マスターにマスター プラグインをインストールする必要があります。SaltStack Config と通信する必要がない Salt マスターでは、マスター プラグインは不要です。

ノードが 1,000 台未満の場合の SaltStack Config のインストールのインストール シナリオを使用した場合は、SaltStack Config とその関連アーキテクチャをインストールしたノードにマスター プラグインをインストールする必要はありません。インストーラは、マスター プラグインを Salt マスター ノードに自動的にインストールします。ただし、マスター プラグインは、インストーラを実行した Salt マスターにのみインストールされます。複数のマスターがある場合、他のマスターにもマスター プラグインをインストールする必要があります。

SaltStack Config を手動でインストールする(推奨されません)場合は、マスター プラグインをインストールする前に次の手順を実行する必要があります。

  • PostgreSQL データベースのインストールと構成
  • Redis データベースのインストールと構成
  • SSL の有効化(オプション)

マスター プラグイン ワークスペースを使用したマスター プラグインのインストール

注: この機能は、 SaltStack Config バージョン 8.11.2 以降でサポートされています。
注: Salt マスターは root として実行する必要があります。

最新のマスター プラグイン バージョンは、[管理] > [プラグイン] の順に移動して、SaltStack Config ユーザー インターフェイスからダウンロードとインストールを実行できます。[マスター プラグイン] タブから、プラグインのダウンロードとクライアントのダウンロードのいずれかを実行できます。

マスター プラグインのダウンロード後、マスター プラグインを構成する必要があります。

CLI を使用したマスター プラグインのインストール

マスター プラグインを Salt マスターにインストールするには、次の手順に従います。

  1. Salt マスターにログインします。
  2. 必要に応じて、Customer Connect から wheel 形式のマスター プラグインをダウンロードします。

    マスター プラグインは、自動インストーラの .tar.gz ファイルに含まれています。.tar.gz ファイルをダウンロードして展開すると、sse-installer/salt/sse/eapi_plugin/files ディレクトリにマスター プラグインが配置されます。

  3. 更新された Python wheel を手動でインストールすることにより、マスター プラグインをインストールします。次のコマンド例を、wheel ファイルの実際の名前に置き換えて使用してください。

    RHEL/CentOS

    sudo pip3 install SSEAPE-file-name.whl --prefix /usr

    Ubuntu

    sudo pip3 install SSEAPE-file-name.whl
    注: 一部のユーザーは、オペレーティング システムに合わせて、構文を pip3.6 または pip36 に変更する必要があります。

マスター プラグインの構成

マスター プラグインのインストール後に Salt マスターを構成するには、次の手順に従います。

  1. Salt マスターにログインし、/etc/salt/master.d ディレクトリがあることを確認するか、作成します。
  2. マスター構成設定を生成します。
    注意: インストールのアップグレード時に設定を保持するには、この手順を実行する前に、既存のマスター プラグイン構成ファイルのバックアップを作成します。その後、必要な設定を既存の構成から新しく生成されたファイルにコピーします。
    sudo sseapi-config --all > /etc/salt/master.d/raas.conf

    このコマンドの実行によってエラーが発生する場合は、Salt を最初にインストールするときに使用した方法が関係している可能性があります。SaltStack Config インストーラを使用して Salt をインストールした場合、インストールには通常、Salt Crystal というオフライン パッケージが含まれます。これは、特別なアップグレード手順を必要とします。詳細については、トラブルシューティングのページを参照してください。

  3. 生成された raas.conf ファイルを編集します。API (RaaS) が使用する証明書を検証し、その IP アドレスを設定するために、値を次のように更新します。
    説明

    sseapi_ssl_validate_cert

    API (RaaS) が使用する証明書を検証します。デフォルトは True です。

    独自の認証局 (CA) 発行の証明書を使用している場合は、この値を True に設定し、sseapi_ssl_casseapi_ssl_cert、および sseapi_ssl_cert: の各設定を構成します。

    それ以外の場合は、証明書を検証しないように、この値を False に設定します。

    sseapi_ssl_validate_cert:False

    sseapi_server

    RaaS ノードの HTTP IP アドレス。たとえば http://example.com、または SSL が有効な場合は https://example.com

    sseapi_command_age_limit

    古く無効な可能性があるジョブをスキップするための経過時間(秒)を設定します。たとえば、1 日以上経過した古いジョブをスキップするには、次のように設定します。

    sseapi_command_age_limit:86400

    スキップされたジョブはデータベースに引き続き存在し、SaltStack Config のユーザー インターフェイスで Completed ステータスとして表示されます。

    一部の環境では、Salt マスターを長時間オフラインにする必要があり、キューに入れられたジョブはオンラインに戻った後に実行する必要があります。これが該当する環境では、経過時間の上限を 0 にします。

    sseapi_windows_minion_deploy_delay すべての Windows サービスがアクティブ状態になる際に必要な遅延を設定します。デフォルト値は 180 秒です。
    sseapi_linux_minion_deploy_delay すべての Linux サービスがアクティブ状態になる際に必要な遅延を設定します。デフォルト値は 90 秒です。
    sseapi_local_cache 各 Salt マスターで特定のデータがローカルにキャッシュされる時間の長さを設定します。デフォルト値は 300 秒(5 分)です。
  4. [オプション:]この手順は、手動インストールの場合にのみ必要です。マスター プラグインに接続する前に SSL に接続できることを確認するには、生成された raas.conf ファイルを編集して次の値を更新します。これらの値を更新しない場合、マスター プラグインではデフォルトで生成された証明書が使用されます。
    説明
    sseapi_ssl_ca 認証局 (CA) ファイルへのパス。
    sseapi_ssl_cert 証明書へのパス。デフォルト値は /etc/pki/raas/certs/localhost.crt です。
    sseapi_ssl_key 証明書のプライベート キーへのパス。デフォルト値は /etc/pki/raas/certs/localhost.key です。
    id この行は、先頭に # を追加してコメント アウトします。この値は不要です。
  5. [オプション:]パフォーマンス関連の設定を更新します。大規模な環境または処理量の多い環境では、次の設定を調整することによって Salt マスターと SaltStack Config の間の通信のパフォーマンスを向上させることができます。
    • イベント キューを有効にする(Salt 2019.2.2 以降で実行可能)。イベントは、Salt マスターのキューに入れて、複数のイベントに対して 1 つのトランザクションのみを使用するバッチ形式でイベント リターナに送信できます。デフォルトでは、このキューメカニズムは無効に設定されています。イベント キューを有効にするには、Salt マスター プラグイン構成ファイルで次の設定を行います。
      event_return_queue:2500
      event_return_queue_max_seconds:5

      推奨される最大イベント キュー サイズは、ここで示されているように 2,500 です。キューはいっぱいになるとフラッシュされ、イベントはイベント リターナに転送されます。小規模な環境または処理量の少ない環境には、値を小さくした方が適している場合があります。

      場合によっては、キューが定期的に最大サイズに到達するほど、Salt イベント バスの処理量が多くないことがあります。event_return_queue_max_seconds を設定した場合、キュー内の最も古いイベントが設定値よりも古くなると、キュー内のイベントの数に関係なくキューがフラッシュされます。

    • eventqueue および rpcqueue エンジンを有効にして構成します。

      これらのエンジンは、SaltStack Config との通信の一部を、パフォーマンスが重要なコード パスから専用のプロセスにオフロードします。エンジンが SaltStack Config との通信を待機している間にペイロードが Salt マスターのローカル ファイルシステムに保存されるため、Salt マスターの再起動後もデータが保持されます。

      エンジンを有効にするには、Salt マスター プラグイン構成ファイル (raas.conf) で次の設定のコメントを解除します。

      engines:
        - sseapi: {}
        - eventqueue: {}
        - rpcqueue: {}
        - jobcompletion: {}
        - keyauth: {}

      eventqueue エンジンを構成するには、次の設定のコメントを解除して更新します。

      sseapi_event_queue:
        name: sseapi-events
        strategy: always
        push_interval: 5
        batch_limit: 2000
        age_limit: 86400
        size_limit: 35000000
        vacuum_interval: 86400
        vacuum_limit: 350000
        forward: []

      キュー パラメータは、それらがどのように連携するかを考慮して調整します。たとえば、Salt イベント バス上の平均イベント数を 1 秒あたり 400 と想定すると、上記の設定では、キューに入れられるイベント トラフィックが Salt マスターで蓄積されて最も古いイベントがサイズまたは経過時間の上限によって破棄されるまで、約 24 時間かかります。

      rpcqueue エンジンを構成するには、次の設定のコメントを解除して更新します。

      sseapi_rpc_queue:
          name: sseapi-rpc
          strategy: always
          push_interval: 5
          batch_limit: 500
          age_limit: 3600
          size_limit: 360000
          vacuum_interval: 86400
          vacuum_limit: 100000
    • ロード キャッシュを有効にします。
      sseapi_local_cache:
          load:3600
      注: rpcqueue エンジンが有効になっている場合、Salt マスターがジョブを正しく処理するには、ロード キャッシュも有効になっている必要があります。
    • ミニオン グレインのペイロード サイズを制限します。
      sseapi_max_minion_grains_payload:2000
    • 定義された時間(秒)よりも古いジョブのスキップを有効にします。たとえば、1 日よりも古いジョブをスキップするように設定するには、86400 を使用します。0 に設定すると、この機能は無効になります。
      sseapi_command_age_limit:0
      注:

      これは、アップグレード時に、データベースに保存されている古いコマンドが予期せず実行されることを防ぐために役立ちます。

    Salt でのイベント キュー、キュー エンジン、ロード キャッシュ、グレインのペイロード サイズ制限、および Salt マスター プラグインでのコマンドの経過時間制限を組み合わせることで、スループットが向上し、パフォーマンスが重視されるコード パスにおける Salt マスターと SaltStack Config の間の通信の遅延が減少します。

  6. マスター サービスを再起動します。
    sudo systemctl restart salt-master
  7. [オプション:]マスター プラグインによってマスターと RaaS ノードの間の通信が有効になっていることを確認するために、テスト ジョブを実行できます。
    salt -v '*' test.ping

ミニオンが接続されていない場合など、表示するアクティビティがない場合でも、適切な構成を示している可能性があります。

構成設定のリファレンス

構成ファイル内のこれらの設定により、各 Salt マスターは API (RaaS) に接続できます。これらの設定は、/etc/salt/master.d/raas.conf 構成ファイルに含まれています。

重要:

raas.conf ファイルの Salt マスター設定は、/etc/salt/master の既存の設定よりも優先されます。/etc/salt/masterfileserver_backend または ext_pillar の設定をカスタマイズした場合は、これらの設定が 1 つのファイルにのみ表示されるように、手動でマージする必要があります。必要に応じて、バックエンドを並べ替えて優先順位を変更できます。

次の表に、一般的な構成設定の説明を示します。

オプション 説明
id Salt マスター ID。設定しない場合は自動生成されます
sseapi_server SSEAPI サーバの URL(例:https://sse.example.com:443
engines 有効にする Salt エンジン。sseapieventqueuerpcqueuejobcompletionkeyauth を推奨。
master_job_cache SaltStack Config マスター ジョブ キャッシュを使用する場合は sseapi
event_return Salt イベント リターナ。SaltStack Config イベント リターナを使用する場合は sseapi を推奨
ext_pillar 外部ピラー ソース。sseapi を推奨
fileserver_backend ファイル サーバ バックエンド。sseapi および roots を推奨
sseapi_update_interval ファイル サーバから更新する頻度(秒、デフォルトは 60)
sseapi_poll_interval SaltStack Config に新しいデータをポーリングする頻度(秒、デフォルトは 30)
sseapi_jce_poll_interval jobcompletion エンジンの反復間に遅延を追加するため、Salt マスターごとに 1 日あたり最大 5,760 の find_job コマンドが送信されます(秒単位、デフォルトは 15)。
sseapi_timeout API (RaaS) 呼び出しのタイムアウト(秒、デフォルトは 200)
sseapi_pubkey_path SaltStack Config に対して Salt マスターを認証するためのパブリック キー ファイルへのパス
sseapi_key_rotation Salt マスターの SaltStack Config 認証キーのローテーション間隔(秒、デフォルトは 86,400)
sseapi_cache_pillar ピラー データを SaltStack Config 内にキャッシュするかどうか(True または False、デフォルトは False)
sseapi_cluster_id (オプション)SaltStack Config 内で Salt マスターをクラスタにグループ化する際に使用する、Salt マスター クラスタ名
sseapi_failover_master この Salt マスターがフェイルオーバー Salt マスターかどうか(True または False、デフォルトは False)
sseapi_command_age_limit 定義された時間(秒、無効にする場合は 0、デフォルトは 0)よりも古い API (RaaS) コマンドをスキップするかどうか

次の表に、SSL 設定の説明を示します。

オプション 説明
sseapi_ssl_key 証明書のプライベート キーへのパス
sseapi_ssl_cert 証明書へのパス
sseapi_ssl_validate_cert SaltStack Config の SSL 証明書を検証するかどうか(True または False、デフォルトは True)

次の表に、sseapi_event_queue という見出しの下に表示されるイベント キュー エンジンの設定についての説明を示します。

オプション 説明
name イベント キュー名(デフォルトは sseapi-events、これを変更する必要はありません)
strategy イベントをキューに入れるタイミング(alwayson_failure、または never。デフォルトは never
push_interval イベントを SaltStack Config にプッシュする間隔(秒、デフォルトは 5)
batch_limit 1 回ごとに SaltStack Config にプッシュするイベントの最大数(デフォルトは 2,000)
age_limit イベントがキューに保持される最長経過時間。これを過ぎると最も古いイベントがドロップされます(秒、デフォルトは 86,400)
size_limit キューの最大サイズ、これを超えると最も古いイベントがドロップされます(イベント数、デフォルトは 35,000,000)
vacuum_interval キュー データベースをバキュームする間隔(秒、デフォルトは 86,400)
vacuum_limit キュー データベースをバキュームするときのキューの最大サイズ(イベント数、デフォルトは 350,000)
forward キューをフラッシュするときにイベントの送信先となる追加の Salt リターナ(デフォルトはなし)

forward 構成アイテムにより、1 つ以上の Salt リターナ名のリストを指定できます。イベント キューがフラッシュされるたびに、キュー内のイベントは、SaltStack Config およびこのリスト内の各リターナに送信されます。これにより、イベント キュー エンジンのキュー機能およびパーシステンス機能をすべての標準 Salt リターナに追加できます。イベントが SaltStack Config に送信されるたびにローカル ファイルに書き込まれる構成からの抜粋を以下に示します。

sseapi_event_queue:
  # ...other queue settings...
  forward:
    - rawfile_json

# rawfile_json returner configuration
rawfile_json.filename: /var/log/salt/events.json

次の表に、sseapi_rpc_queue という見出しの下に表示される RPC キュー エンジンの設定についての説明を示します。

オプション 説明
name イベント キュー名(デフォルトは sseapi-rpc、これを変更する必要はありません)
strategy イベントをキューに入れるタイミング(alwayson_failure、または never。デフォルトは never
push_interval 呼び出しを SaltStack Config に送信する間隔(秒、デフォルトは 5)
batch_limit 1 回ごとに SaltStack Config にプッシュする呼び出しの最大数(デフォルトは 500)
age_limit 呼び出しがキューに保持される最長経過時間。これを過ぎると最も古いエントリがドロップされます(秒、デフォルトは 3,600)
size_limit キューの最大サイズ、これを超えると最も古いエントリがドロップされます(イベント数、デフォルトは 360,000)
vacuum_interval キュー データベースをバキュームする間隔(秒、デフォルトは 86,400)
vacuum_limit キュー データベースをバキュームするときのキューの最大サイズ(エントリ数、デフォルトは 100,000)

次の表に、パス設定の説明を示します。構成の初回生成後、これらの設定を変更するときは慎重に実行してください。モジュールは、インストール プロセスからこれらのディレクトリにコピーされます。ただし、追加のパスを指定しても悪影響を及ぼすことはありません。

オプション 説明
beacons_dirs beacons の外部モジュール パス
engines_dirs engines の外部モジュール パス
fileserver_dirs fileserver の外部モジュール パス
pillar_dirs pillar の外部モジュール パス
returner_dirs returner の外部モジュール パス
roster_dirs roster の外部モジュール パス
runner_dirs runner の外部モジュール パス
module_dirs Salt の外部モジュール パス
proxy_dirs proxy の外部モジュール パス
metaproxy_dirs metaproxy の外部モジュール パス
states_dirs states の外部モジュール パス

次の手順

マスター プラグインをインストールして構成したら、残りのインストール後の手順を実行する必要があります。次の手順では、RaaS ノードを構成します。インストール後のプロセスを続行するには、RaaS 構成ファイルの確認を参照してください。