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

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

開始する前に

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

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

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

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

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

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

  • PostgreSQL データベースのインストールと構成
  • Redis データベースのインストールと構成
  • SSL の有効化(オプション)
重要: いずれのリリースでも、デフォルトの構成ファイルを生成し、既存の構成から保持する設定を適用して、マスター プラグイン構成を更新することを推奨します。例:
# sseapi-config --default >/tmp/raas.conf 
# cd /etc/salt/master.d 
# vim -d raas.conf /tmp/raas.conf 
...

onedir を使用して Salt をインストールした場合、この実行可能ファイルへのパスは次のようになります:/opt/saltstack/salt/extras-3.10/bin/sseapi-config

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

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

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

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

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

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

8.13.0 リリース以降、マスター プラグインには tgtmatch エンジンが含まれています。これにより、RaaS サーバから Salt マスターに対するターゲット グループ一致がオフロードされるようになりました。ターゲット グループの一致の応答性を向上させるために、特に次の環境で tgtmatch エンジンを有効にして構成することを推奨します。

  • 多数のターゲット グループ(100 以上)
  • 多数のミニオン(3,000 以上)
  • ミニオン グレインへの頻繁な変更(1 日 1 回以上)
  • ミニオンの頻繁な作成と削除(1 日 1 回以上)
ターゲット一致データが Salt マスターによって提供されるように RaaS を構成するには、RaaS 構成ファイル (/etc/raas/raas) に以下の設定があることを確認します。
target_groups_from_master_only: true
  1. Salt マスターにログインします。
  2. 必要に応じて、Customer Connect から wheel 形式のマスター プラグインをダウンロードします。

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

  3. 更新された Python wheel を手動でアンインストールしてから再度インストールして、マスター プラグインをアップグレードします。次のコマンド例を、wheel ファイルの実際の名前に置き換えて使用してください。
    注: sseapi-config の複数のインスタンスを防止するために、既存のプラグインをアンインストールする必要があります。
    pip3 uninstall SSEAPE-8.12.1.3-py3-none-any.whl
    mv /etc/salt/master.d/raas.conf /tmp
    salt-call pip.install SSEAPE-8.12.1.3-py3-none-any.whl
    cp /tmp/raas.conf /etc/salt/master.d/raas.conf
    systemctl restart salt-master

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

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

  1. Salt マスターにログインし、/etc/salt/master.d ディレクトリがあることを確認するか、作成します。
  2. マスター構成設定を生成します。
    注意: インストールのアップグレード時に設定を保持するには、この手順を実行する前に、既存のマスター プラグイン構成ファイルのバックアップを作成します。その後、必要な設定を既存の構成から新しく生成されたファイルにコピーします。
    sudo sseapi-config --all > /etc/salt/master.d/raas.conf
    重要: onedir を使用して Salt をインストールした場合、この実行可能ファイルへのパスは次のようになります: /opt/saltstack/salt/extras-3.10/bin/sseapi-config
  3. 生成された raas.conf ファイルを編集し、次のように値を更新します。
    説明

    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

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

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

    sseapi_windows_minion_deploy_delay すべての Windows サービスがアクティブ状態になる際に必要な遅延を設定します。デフォルト値は 180 秒です。
    sseapi_linux_minion_deploy_delay すべての Linux サービスがアクティブ状態になる際に必要な遅延を設定します。デフォルト値は 90 秒です。
    sseapi_local_cache
         load: 3600
         tgt: 86400
         pillar: 3600
         exprmatch: 86400
         tgtmatch: 86400

    各 Salt マスターで特定のデータがローカルにキャッシュされる時間の長さを設定します。値は秒単位です。値の例は推奨値です。

    • load- salt save_load() ペイロード

    • tgt- SSE ターゲット グループ

    • ピラー- SSE ピラー データ(暗号化済み)

    • exprmatch- SSE ターゲット式一致データ

    • tgtmatch- SSE ターゲット グループの一致データ

  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 マスターと Automation Config の間の通信のパフォーマンスを向上させることができます。
    • マスター プラグイン エンジンを構成します。

      マスター プラグインの eventqueue および rpcqueue エンジンは、パフォーマンスに大きく影響するコード パスから専用プロセスに対する、Automation Config との通信をオフロードします。エンジンが Automation Config との通信を待機している間にペイロードが Salt マスターのローカル ファイルシステムに保存されるため、Salt マスターの再起動後もデータが保持されます。tgtmatch エンジンは、RaaS サーバから salt-master に対して一致するミニオン ターゲット グループの計算を移動します。

      エンジンを有効にするには、Salt マスター プラグイン構成ファイル (raas.conf) に次の設定があることを確認します。

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

      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 

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

      rpcqueue エンジンを構成するには、raas.conf で次の設定を確認します。

      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 
      tgtmatch エンジンを構成するには、以下の設定がマスター プラグイン構成ファイル (/etc/salt/master.d/raas.conf) にあることを確認します。
      engines: 
          - sseapi: {} 
          - eventqueue: {} 
          - rpcqueue: {} 
          - jobcompletion: {} 
          - keyauth: {} 
          - tgtmatch: {} 
      
      sseapi_local_cache:     
          load: 3600 
          tgt: 86400 
          pillar: 3600 
          exprmatch: 86400 
          tgtmatch: 86400 
      
      sseapi_tgt_match: 
          poll_interval: 60     
          workers: 0 
          nice: 19
      注: salt-master でターゲット一致を利用するには、RaaS 構成に次の構成設定も含まれている必要があります: target_groups_from_master_only: true
    • ミニオン グレインのペイロード サイズを制限します。
      sseapi_max_minion_grains_payload: 2000
    • 定義された時間(秒)よりも古いジョブのスキップを有効にします。たとえば、1 日よりも古いジョブをスキップするように設定するには、86400 を使用します。0 に設定すると、この機能は無効になります。
      sseapi_command_age_limit:0
      注:

      システムのアップグレード中にこの設定を有効にすると、データベースに保存されている古いコマンドが予期せずに実行されるのを防ぐのに役立ちます。

    Salt でのイベント キュー、キュー エンジン、salt-master ターゲット一致、グレインのペイロード サイズ制限、および Salt マスター プラグインでのコマンドの経過時間制限を組み合わせることで、スループットが向上し、パフォーマンスが重視されるコード パスにおける Salt マスターと Automation 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 Automation Config マスター ジョブ キャッシュを使用する場合は sseapi
event_return Salt イベント リターナ。Automation Config イベント リターナを使用する場合は sseapi を推奨
ext_pillar 外部ピラー ソース。sseapi を推奨
fileserver_backend ファイル サーバ バックエンド。sseapi および roots を推奨
sseapi_update_interval ファイル サーバから更新する頻度(秒、デフォルトは 60)
sseapi_poll_interval Automation Config に新しいデータをポーリングする頻度(秒、デフォルトは 30)
sseapi_jce_poll_interval jobcompletion エンジンの反復間に遅延を追加するため、Salt マスターごとに 1 日あたり最大 5,760 の find_job コマンドが送信されます(秒単位、デフォルトは 15)。
sseapi_timeout API (RaaS) 呼び出しのタイムアウト(秒、デフォルトは 200)
sseapi_pubkey_path Automation Config に対して Salt マスターを認証するためのパブリック キー ファイルへのパス
sseapi_key_rotation Salt マスターの Automation Config 認証キーのローテーション間隔(秒、デフォルトは 86,400)
sseapi_cache_pillar ピラー データを Automation Config 内にキャッシュするかどうか(True または False、デフォルトは False)
sseapi_cluster_id (オプション)Automation 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 Automation Config の SSL 証明書を検証するかどうか(True または False、デフォルトは True)

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

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

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

オプション 説明
name イベント キュー名(デフォルトは sseapi-rpc、これを変更する必要はありません)
strategy イベントをキューに入れるタイミング(alwayson_failure、または never。デフォルトは never
push_interval 呼び出しを Automation Config に送信する間隔(秒、デフォルトは 5)
batch_limit 1 回ごとに Automation Config にプッシュする呼び出しの最大数(デフォルトは 500)
age_limit 呼び出しがキューに保持される最長経過時間。これを過ぎると最も古いエントリがドロップされます(秒、デフォルトは 3,600)
size_limit キューの最大サイズ、これを超えると最も古いエントリがドロップされます(イベント数、デフォルトは 360,000)
vacuum_interval キュー データベースをバキュームする間隔(秒、デフォルトは 86,400)
vacuum_limit キュー データベースをバキュームするときのキューの最大サイズ(エントリ数、デフォルトは 100,000)
次の表に、 sseapi_tgt_match という見出しの下に表示されるターゲット一致エンジンの設定についての説明を示します。
オプション 説明
poll_interval エンジンが更新されたターゲット グループ情報を RaaS から要求する頻度(秒単位)(デフォルトは 60)
workers ターゲット グループ一致の計算を実行するために作成するワーカー プロセスの数。デフォルト値 (0) は、CPU コアごとに最大 8 つのプロセスを作成します。
nice ワーカーに一致するターゲット グループの優先順位。デフォルト (19) は、salt-master で実行されている他のプロセスとの干渉を防ぐため、ワーカーにスケジュール設定の優先順位を最も低くします。

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

オプション 説明
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 構成ファイルの確認を参照してください。