[[Highstate]] ワークスペースは、システムの構成を管理および監視するために使用されます。インフラストラクチャ全体における highstate 実行の 履歴ビューを表示すると、すべてのミニオンの構成ドリフトに関連するインサイトとトレンドを把握できます。

システム管理者は、システムの構成をコンプライアンスに準拠した状態に維持すること、障害や変更が発生したシステムを特定すること、およびそれらのシステムをできるだけ早くコンプライアンスに準拠した状態に戻すことが重要であることを認識しています。[[Highstate]] ワークスペースは、システムの構成に関する有益なインサイトを提供し、構成ドリフトの管理に役立つツールを備えています。

最近 highstate を実行した後の、SaltStack Config ユーザー インターフェイスの Highstate ワークスペース

highstate について

各ミニオンおよび各アプリケーションを 1 つずつ手動で構成する代わりに、Automation Config 状態管理システムを使用して、複数のミニオンに同時に適用できる状態ファイルを作成することができます。これらの状態ファイルには、ミニオンで実行する操作、およびこれらを操作する順序を Automation Config に指示する一連の命令を含めることができます。また、状態管理システムによって各ミニオンが適切に、かつ可能な限り効率的に構成されます。

ただし、数百の状態ファイルと数千のミニオンがある場合は、各状態ファイルの実行に時間がかかります。ミニオンに状態ファイルをすばやく、直感的に適用するには、highstate を実行します。highstate を実行すると、state.highstate 関数が呼び出されます。state.highstate 関数は、Salt マスターで作成した top.sls ファイルに記載されているすべての Salt 状態を適用します。

highstate の実行は、次のシナリオで役立ちます。
  • インフラストラクチャを初めて設定し、環境全体で構成を標準化する必要がある場合。
  • コンプライアンスに準拠した状態を維持する必要があるクリティカル システムがある場合。Automation Config[[Schedules]] ワークスペース を使用すると、マシンを適切に構成された状態に維持するために highstate を毎週 1 回実行するようにスケジュール設定することができます。

top.sls ファイルは、Salt 環境、ターゲット基準、実行する状態ファイルで構成され、Salt 状態をターゲット グループにマッピングします。ミニオンは top.sls ファイルをダウンロードし、その中の式に対する一致を試行します。ミニオンが式と一致すると、指定された状態ファイルを実行します。たとえば、特定の状態ファイルをすべてのミニオンに適用し、一部を CentOS ミニオンに適用し、その他を ID に文字列 web が含まれているミニオンに適用するように top.sls ファイルを編成できます。

base: 
  '*':
    - vim
    - scripts
  'os:CentOS': 
    - match: grain 
    - centos-config 
  '*web*':
    - apache
    - django

highstate の実行中に構成ドリフトが発生した場合、Automation Config はミニオンとアプリケーションをコンプライアンスに準拠した構成状態に戻します。構成を変更する必要がある場合、Automation Config は影響を受けるミニオンにこれらの変更を迅速に展開します。後で [[Highstate]] ワークスペースを使用して、最後の highstate の実行中に行われた変更を確認できます。ワークスペース内のチャートとレポートは、インフラストラクチャ全体の変化を視覚化するのにも役立ちます。

開発環境またはステージング環境で変更をテストすることを検討してください。状態が成功した場合は、これらの状態を本番環境に適用できます。

また、highstate をドライ ラン モードで実行することもできます。highstate をドライ ラン モードで実行すると、Automation Config は、状態が適用された場合に各ミニオンで行われる変更を示すジョブ戻り値を生成します。ドライ ラン モードの詳細については、「ジョブを作成する方法」を参照してください。

重要:

highstate を初めて実行する前に、Salt マスターで top.sls ファイルを作成して構成する必要があります。Salt の状態と top.sls ファイルの詳細については、『Salt ユーザー ガイド』の「状態の編成」を参照してください。

highstate の実行

top.sls ファイルを構成した後で、最初の highstate を実行できます。

highstate を実行するには、次の手順を実行します。

  1. [[Highstate]] ワークスペースで [[状態]] タブをクリックします。
  2. [[highstate の実行]] をクリックします。
  3. ダイアログ ボックスで、highstate を実行するターゲットを選択します。
  4. [[highstate の実行]] をクリックします。

highstate の実行が終了したら、次のいくつかのレベルで最初の highstate の実行結果を確認できます。

  • グローバル レベル:環境全体における highstate の戻り値を表示します
  • ターゲット レベル:ターゲット グループ別に highstate の戻り値を表示します
  • ミニオン レベル:ミニオン別に highstate の戻り値を表示します

グローバル レベル

環境全体における highstate の準拠状態を確認するには、[[状態]] タブと [[ミニオン]] タブを使用します。このグローバル レベルは、前回 highstate を実行した後のシステム構成全体の状態を評価するのに役立ちます。

最近 highstate を実行した後の、SaltStack Config ユーザー インターフェイスの Highstate ワークスペース

どのレベルでも、各ミニオンから最新の highstate データが取得されます。このデータには、最近の highstate の実行によって得られたものと、複数の highstate の実行によって得られたものが含まれます。[[状態]] タブの [[制限基準]] ドロップダウン メニューを使用して、[[Highstate]] ワークスペースに最新のデータのみを表示することができます。

グローバル レベルでは、すべての状態の結果に次の情報が含まれます。

用語 説明
[状態] 状態の ID 宣言(例:common-centos-packages)。
[SLS ファイル] 状態宣言を含むファイル(例:centos-config.sls)。
[ミニオン] 状態を実行したミニオンの数。
[エラー] 状態の実行に失敗したかどうかを示します。状態はさまざまな理由で失敗します。例:
  • 必要なファイルが存在しないか、ファイルシステムに対する権限が原因でアクセスできません。
  • ネットワーク リソースまたはサービスが使用できません。
  • パッケージの依存関係が競合しているため、状態を適用できません。

[[コメント]] 列には、状態障害の原因に関する詳細が表示されます。

[成功] 成功した状態の全体に対する割合を示します。
[変更済み] 各状態の変更を報告したミニオンの全体に対する割合を示します。
[変更] 最新の highstate の実行が変更されたかどうかを示します。

[[コメント]] 列に、行われた変更の詳細が表示されます。

[平均所要時間] 状態の実行期間の平均(ミリ秒単位)。
[環境] 状態ファイルを含む Salt 環境(basedev など)。
[JID] state.highstate 実行のジョブ識別番号。

[[状態]] タブで状態をクリックすると、各 Salt ミニオンで最近行われた highstate の実行が表示されます。

SaltStack Config 内のデフォルトの html ページ状態に対して以前に行われたすべての highstate の実行

状態ごとに次の情報が表示されます。

用語 説明
[ミニオン ID] 状態を実行したミニオンの ID。
[ステータス] 状態の実行の成功/失敗を示します。
[変更] 最新の highstate の実行が変更されたかどうかを示します。

[[コメント]] 列に、行われた変更の詳細が表示されます。

[環境] 状態ファイルを含む Salt 環境(basedev など)。
[クラスタ/マスター] ミニオンに関連付けられている Salt マスター。
[期間] 状態の実行期間(ミリ秒単位)。
[コメント] 状態の実行の成功または失敗に関する詳細情報を提供するメッセージ。
[JID] state.highstate 実行のジョブ識別番号。

アドホック highstate ジョブをグローバル レベルで実行することもできます。

  1. Automation Config[[Highstate]] ワークスペースを開きます。
  2. [[highstate の実行]] をクリックします。
  3. ダイアログ ボックスで、highstate を実行するターゲットを選択します。
  4. [[highstate の実行]] をクリックします。

[[Highstate]] ワークスペースの [[アクティビティ]] タブで、ジョブの進行状況を監視できます。ジョブが完了したら、グローバル レベル、ターゲット レベル、またはミニオン レベルでの highstate の実行の最新レポートおよび詳細が表示されます。

ターゲット レベル

ターゲット レベルで highstate の戻り値を表示するには、[[ターゲット]] ワークスペースを開きます。ターゲットをクリックすると、ターゲット グループ内のすべてのミニオンに対する以前のすべての状態の実行が表示されます。

SaltStack Config 内の CentOS ターゲット グループに対する以前の highstate の実行

ターゲット レベルでは、ターゲット グループ内の各ミニオンに関する次の情報が表示されます。

用語 説明
[ミニオン ID] ミニオンの ID。
[状態実行] ミニオンに対する状態の実行の数。
[エラー] 状態の実行に失敗したかどうかを示します。状態はさまざまな理由で失敗することがあります。例:
  • 必要なファイルが存在しないか、ファイルシステムに対する権限が原因でアクセスできません。
  • ネットワーク リソースまたはサービスが使用できません。
  • パッケージの依存関係が競合しているため、状態を適用できません。

[[コメント]] 列には、状態障害の原因に関する詳細が表示されます。

[成功] 成功した状態の全体に対する割合を示します。
[変更済み] 変更をもたらした状態の全体に対する割合を示します。
[変更] 最新の highstate の実行が変更されたかどうかを示します。

[[コメント]] 列に、行われた変更の詳細が表示されます。

[期間] 状態の実行期間(ミリ秒単位)。
[環境] 状態ファイルを含む Salt 環境(basedev など)。
[JID] state.highstate 実行のジョブ識別番号。

ターゲット レベルで アドホック highstate ジョブを実行するには、次の手順を実行します。

  1. Automation Config[[ターゲット]] ワークスペースを開きます。
  2. highstate を実行するターゲット グループを選択します。
  3. [[Highstate]] タブをクリックします。
  4. [[highstate の実行]] をクリックします。
  5. ダイアログ ボックスで、highstate を実行するターゲット グループを確認します。
  6. [[highstate の実行]] をクリックします。

ミニオン レベル

ミニオン レベルで highstate の戻り値を表示するには、[[Highstate]] ワークスペースで [[ミニオン]] タブを開きます。

SaltStack Config 環境内のすべてのミニオンに対する highstate の戻り値

ミニオン レベルでは、すべてのミニオンに対して次の情報が表示されます。

用語 説明
[ミニオン ID] ミニオンの ID。
[状態実行] ミニオンに対する状態の実行の数。
[エラー] 状態の実行に失敗したかどうかを示します。状態はさまざまな理由で失敗することがあります。
  • 必要なファイルが存在しないか、ファイルシステムに対する権限が原因でアクセスできません。
  • ネットワーク リソースまたはサービスが使用できません。
  • パッケージの依存関係が競合しているため、状態を適用できません。

[[コメント]] 列には、状態障害の原因に関する詳細が表示されます。

[成功] 成功した状態の全体に対する割合を示します。
[変更済み] ミニオンに変更をもたらした状態の全体に対する割合を示します。
[変更] 最新の highstate の実行が変更されたかどうかを示します。

ミニオン ID をクリックすると、ミニオンに対する以前のすべての状態実行が表示されます。

[Highstate] ワークスペースでの 1 つの Salt ミニオンに対するすべての状態実行

次の情報が表示されます。

用語 説明
[成功] 状態の実行の成功/失敗を示します。
[変更] 最新の highstate の実行が変更されたかどうかを示します。
[環境] 状態ファイルを含む Salt 環境(basedev など)。
[SLS ファイル] 状態宣言を含むファイル(例:centos-config.sls)。
[状態] 状態の ID 宣言(例:common-centos-packages)。
[期間] 状態の実行期間(ミリ秒単位)。
[コメント] 状態の実行の成功または失敗に関する詳細情報を提供するメッセージ。
[JID] state.highstate 実行のジョブ識別番号。

ミニオン レベルで アドホック highstate ジョブを実行するには、次の手順を実行します。

  1. Automation Config[[Highstate]] ワークスペースを開きます。
  2. highstate を実行するミニオンを選択します。
  3. [[highstate の実行]] をクリックします。
  4. ダイアログ ボックスで [[Highstate の実行]] をクリックします。

highstate アクティビティの表示

[[Highstate]] ワークスペースの [[アクティビティ]] タブは、highstate 実行のステータスを監視するために使用されます。[[アクティビティ]] タブでは、スケジュール設定されたアドホック ジョブなど、さまざまなタイプのイベントやアクティビティを確認できます。

過去 30 日間に変更されたミニオンと変更されていないミニオンの数を示す、[Highstate] ワークスペースのインタラクティブ チャート。

[[アクティビティ]] タブのインタラクティブ チャートには、Automation Config 環境における以前の highstate 実行の概要を示すレポートがいくつか含まれています。レポートごとに、過去 24 時間から過去 30 日間までの結果を表示できます。

レポート 説明
[ミニオン:平均時間] すべてのミニオンにおける状態の実行期間の平均値が時系列で表示されます。
[ミニオン:変更あり vs 変更なし] 変更を報告したミニオンと変更を報告しなかったミニオンの数を時系列で表示します。
[ミニオン:成功と失敗] 状態の実行に成功したミニオンと状態の実行に失敗したミニオンの数を時系列で表示します。
[状態:変更あり vs 変更なし] 変更をもたらした状態と変更をもたらさなかった状態の数を時系列で表示します。
[状態:成功と失敗] 成功した状態と失敗した状態の数を表示します。

[[アクティビティ]] タブには次の 3 つのセクションがあり、ジョブがステータス別に表示されます。

  • [[完了]]:完了した highstate ジョブのステータスを監視するために使用されます。
  • [[処理中]]:現在実行中の highstate ジョブのステータスを監視するために使用されます。
  • [[今後]]:今後実行される highstate ジョブのステータスを監視するために使用されます。

[[アクティビティ]] タブのテーブルには、ジョブのステータス、発生元、スケジュール(使用可能な場合)、ジョブ、ターゲット グループ、および関連するジョブ ID (JID) に関する情報が表示されます。必要に応じて列をフィルタリングできます。