インストール後のプロセスの一環として、マスター プラグインをインストール、構成、およびアップグレードする必要があります。マスター プラグインを使用すると、Salt マスターは Automation Config と通信することができます。マスター プラグインには、パフォーマンスの向上のために調整可能なさまざまな設定が含まれています。これは、大規模または処理量の多い環境で特に役立ちます。
通常、マスター プラグインは、環境内で Automation Config と通信する Salt マスターにインストールします。たとえば、複数の Salt マスターを含む構成(マルチマスター セットアップとも呼ばれる)を使用している場合は、各マスターにマスター プラグインをインストールする必要があります。
開始する前に
マスター プラグインのインストールと構成はインストール後の一連の手順の 1 つであり、特定の順序で実行する必要があります。まず、インストール シナリオのいずれかを完了してから、インストール後の手順であるライセンス キーのインストールページを確認します。
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 ユーザー インターフェイスからダウンロードとインストールを実行できます。[マスター プラグイン] タブから、プラグインのダウンロードとクライアントのダウンロードのいずれかを実行できます。
の順に移動して、マスター プラグインのダウンロード後、マスター プラグインを構成する必要があります。
CLI を使用したマスター プラグインのインストール
マスター プラグインを Salt マスターにインストールするには、次の手順に従います。
8.13.0 リリース以降、マスター プラグインには tgtmatch エンジンが含まれています。これにより、RaaS サーバから Salt マスターに対するターゲット グループ一致がオフロードされるようになりました。ターゲット グループの一致の応答性を向上させるために、特に次の環境で tgtmatch エンジンを有効にして構成することを推奨します。
- 多数のターゲット グループ(100 以上)
- 多数のミニオン(3,000 以上)
- ミニオン グレインへの頻繁な変更(1 日 1 回以上)
- ミニオンの頻繁な作成と削除(1 日 1 回以上)
target_groups_from_master_only: true
- Salt マスターにログインします。
- 必要に応じて、Customer Connect から wheel 形式のマスター プラグインをダウンロードします。
マスター プラグインは、自動インストーラの .tar.gz ファイルに含まれています。.tar.gz ファイルをダウンロードして展開すると、
sse-installer/salt/sse/eapi_plugin/files
ディレクトリにマスター プラグインが配置されます。 - 更新された 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 マスターを構成するには、次の手順に従います。
- Salt マスターにログインし、
/etc/salt/master.d
ディレクトリがあることを確認するか、作成します。 - マスター構成設定を生成します。
注意: インストールのアップグレード時に設定を保持するには、この手順を実行する前に、既存のマスター プラグイン構成ファイルのバックアップを作成します。その後、必要な設定を既存の構成から新しく生成されたファイルにコピーします。
sudo sseapi-config --all > /etc/salt/master.d/raas.conf
重要: onedir を使用して Salt をインストールした場合、この実行可能ファイルへのパスは次のようになります: /opt/saltstack/salt/extras-3.10/bin/sseapi-config。 - 生成された
raas.conf
ファイルを編集し、次のように値を更新します。値 説明 sseapi_ssl_validate_cert
API (RaaS) が使用する証明書を検証します。デフォルトは
True
です。独自の認証局 (CA) 発行の証明書を使用している場合は、この値を
True
に設定し、sseapi_ssl_ca
、sseapi_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 ターゲット グループの一致データ
-
- [オプション:]この手順は、手動インストールの場合にのみ必要です。マスター プラグインに接続する前に 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
この行は、先頭に #
を追加してコメント アウトします。この値は不要です。 - [オプション:]パフォーマンス関連の設定を更新します。大規模な環境または処理量の多い環境では、次の設定を調整することによって 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 の間の通信の遅延が減少します。
- マスター プラグイン エンジンを構成します。
- マスター サービスを再起動します。
sudo systemctl restart salt-master
- [オプション:]マスター プラグインによってマスターと RaaS ノードの間の通信が有効になっていることを確認するために、テスト ジョブを実行できます。
salt -v '*' test.ping
ミニオンが接続されていない場合など、表示するアクティビティがない場合でも、適切な構成を示している可能性があります。
構成設定のリファレンス
構成ファイル内のこれらの設定により、各 Salt マスターは API (RaaS) に接続できます。これらの設定は、/etc/salt/master.d/raas.conf
構成ファイルに含まれています。
raas.conf ファイルの Salt マスター設定は、/etc/salt/master
の既存の設定よりも優先されます。/etc/salt/master
で fileserver_backend
または ext_pillar
の設定をカスタマイズした場合は、これらの設定が 1 つのファイルにのみ表示されるように、手動でマージする必要があります。必要に応じて、バックエンドを並べ替えて優先順位を変更できます。
次の表に、一般的な構成設定の説明を示します。
オプション | 説明 |
---|---|
id |
Salt マスター ID。設定しない場合は自動生成されます |
sseapi_server |
SSEAPI サーバの URL(例:https://sse.example.com:443 ) |
engines |
有効にする Salt エンジン。sseapi 、eventqueue 、rpcqueue 、jobcompletion 、keyauth を推奨。 |
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 |
イベントをキューに入れるタイミング(always 、on_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 |
イベントをキューに入れるタイミング(always 、on_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 構成ファイルの確認を参照してください。