インストール後のプロセスの一環として、マスター プラグインをインストール、構成、およびアップグレードする必要があります。マスター プラグインを使用すると、Salt マスターは SaltStack Config と通信することができます。マスター プラグインには、パフォーマンスの向上のために調整可能なさまざまな設定が含まれています。これは、大規模または処理量の多い環境で特に役立ちます。
通常、マスター プラグインは、環境内で SaltStack Config と通信する Salt マスターにインストールします。たとえば、複数の Salt マスターを含む構成(マルチマスター セットアップとも呼ばれる)を使用している場合は、各マスターにマスター プラグインをインストールする必要があります。
パフォーマンス関連の設定を更新することの詳細については、SaltStack Config 製品ドキュメントのマスター プラグインに関するページを参照してください。
開始する前に
マスター プラグインのインストールと構成はインストール後の一連の手順の 1 つであり、特定の順序で実行する必要があります。まず、インストール シナリオのいずれかを完了してから、インストール後の手順であるライセンス キーのインストールページを確認します。
マスター プラグインのインストールが必要になる条件
SaltStack Config の新規インストールの後は、すべてのマスターにマスター プラグインをインストールする必要があります。SaltStack Config と通信する必要がないマスターでは、マスター プラグインは不要です。
単一ノードへのインストールのインストール シナリオを使用した場合は、SaltStack Config とその関連アーキテクチャをインストールしたノードにマスター プラグインをインストールする必要はありません。インストーラは、マスター プラグインを Salt マスター ノードに自動的にインストールします。ただし、マスター プラグインは、インストーラを実行した Salt マスターにのみインストールされます。複数のマスターがある場合、他のマスターにもマスター プラグインをインストールする必要があります。
新しいバージョンの SaltStack Config にアップグレードしてから間もない場合も、マスター プラグインを再インストールする必要があります。アップグレード後のマスター プラグインのアップグレードとインストールの詳細な手順については、以前のバージョンからのアップグレードを参照してください。
SaltStack Config を手動でインストールする(推奨されません)場合は、マスター プラグインをインストールする前に次の手順を実行する必要があります。
- PostgreSQL データベースのインストールと構成
- Redis データベースのインストールと構成
- SSL の有効化(オプション)
マスター プラグインのインストール
マスター プラグインを Salt マスターにインストールするには、次の手順に従います。
- マスターにログインします。
- 必要に応じて、Customer Connect から wheel 形式のマスター プラグインをダウンロードします。
- 更新された 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
に変更する必要があります。
マスター プラグインの構成
マスター プラグインのインストール後にマスターを構成するには、次の手順に従います。
- マスターにログインし、
/etc/salt/master.d
ディレクトリがあることを確認するか、作成します。 - マスター構成設定を生成します。
注意: インストールのアップグレード時に設定を保持するには、この手順を実行する前に、既存のマスター プラグイン構成ファイルのバックアップを作成します。その後、必要な設定を既存の構成から新しく生成されたファイルにコピーします。
sudo sseapi-config --all > /etc/salt/master.d/raas.conf
このコマンドの実行によってエラーが発生する場合は、Salt を最初にインストールするときに使用した方法が関係している可能性があります。SaltStack Config インストーラを使用して Salt をインストールした場合、インストールには通常、Salt Crystal というオフライン パッケージが含まれます。これは、特別なアップグレード手順を必要とします。詳細については、トラブルシューティングを参照してください。
- 生成された
raas.conf
ファイルを編集します。API (RaaS) が使用する証明書を検証し、その IP アドレスを設定するために、値を次のように更新します。値 説明 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
スキップされたジョブはデータベースに引き続き存在し、SaltStack Config のユーザー インターフェイスで
Completed
ステータスとして表示されます。一部の環境では、Salt マスターを長時間オフラインにする必要があり、キューに入れられたジョブはオンラインに戻った後に実行する必要があります。これが該当する環境では、経過時間の上限を
0
にします。 - [オプション:]この手順は、手動インストールの場合にのみ必要です。マスター プラグインに接続する前に 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 マスターと 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: {}
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 の間の通信の遅延が減少します。
- イベント キューを有効にする(Salt 2019.2.2 以降で実行可能)。イベントは、Salt マスターのキューに入れて、複数のイベントに対して 1 つのトランザクションのみを使用するバッチ形式でイベント リターナに送信できます。デフォルトでは、このキューメカニズムは無効に設定されています。イベント キューを有効にするには、Salt マスター プラグイン構成ファイルで次の設定を行います。
- マスター サービスを再起動します。
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 、jobcompletion 、eventqueue 、jobcompletion を推奨 |
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_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 |
イベントをキューに入れるタイミング(always 、on_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 リターナ(デフォルトはなし)
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 |
イベントをキューに入れるタイミング(always 、on_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 構成ファイルの確認を参照してください。