構成データの検証と修正

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:6分
  • 環境への変更ごとに、数十または数百のルール (ポリシー) を確認する必要がある場合があります。 CDM を使用すると、構成データを自動検証して、構成データが消費される前に、構成の変更にエラーがなく、ポリシーに準拠していることを確認できます。

    重要:
    Washington DC リリース以降、DevOps コンフィグ は将来の廃止に備えて準備されます。これは非表示になり、新しいインスタンスにはインストールされなくなりますが、引き続きサポートされます。詳細については、Now Support ナレッジベースの「Deprecation Process (廃止プロセス) [KB0867184]」の記事を参照してください。

    CDM 検証プロセスの多くを自動化

    チームがアプリケーションを展開する場合、通常、コードおよび構成レベルでエラーが発生していないこと、およびコンプライアンス ポリシーが遵守されていることを確認する必要があります。環境への変更ごとに、数十または数百のルール (ポリシー) を確認する必要がある場合があります。手動での検証プロセスではエラーが発生しやすくなります。

    DevOps は、開発者、IT アドミン、 DevOps コンフィグ エンジニア、またはチームリーダーに、構成の変更にエラーがなく、ポリシーに準拠していることを確認する方法を提供します。さらに、検証後、開発者や IT アドミニストレーターは、問題を特定して修正するのに十分なコンテキスト情報を得ることができます。つまり、ユーザーが構成データへの変更をコミットすると、関連するすべてのポリシーが適用され、結果が評価され、適切なアクション (展開する、展開しないなど) がトリガーされます。

    構成データが消費される前に自動検証する CDM プロセスは次のとおりです。

    1. 既存のポリシーに基づいてポリシーバージョンを作成し、新しいバージョンをアクティブ化して公開します。
    2. ポリシーを展開可能項目に動的にマッピングするには、CDM 展開可能項目 [sn_cdm_deployable] テーブルに条件を作成します。条件を 1 つ以上のポリシーに関連付けます。実行時に、これらのポリシーが実行され、定義された条件を満たす展開可能項目が検証されます。
    3. 静的マッピングまたは動的マッピングを使用してポリシーを展開可能項目にマッピングし、要求 (手動または自動要求) 時に展開可能項目のスナップショットに対してポリシーが実行されるようにします。

      ポリシーマッピングの詳細については、「 PaCE Static and Dynamic Mapping」を参照してください。

    4. 展開可能項目の変更セットをコミットすると、システムは結果のスナップショットを検証する必要があります。変更セットがコミットされるたびにマップされたポリシーの実行を自動トリガーするには、変更セットをコミットするときに [検証 ] オプションを選択します。スナップショットを手動で検証することもできます。

      どちらの場合も、静的マッピングと動的マッピングを使用してマッピングされたポリシーが実行されます。

      • 自動化プロセスをパイプラインと統合するように構成した場合、ポリシーは検証プロセスの結果を JSON ファイルでパイプラインに返します。パイプラインは、検証の決定 (準拠、非準拠) に基づいて続行するかどうかを決定します。
      • プロセスがパイプラインに統合されていない場合、または検証に失敗したか完了しなかった場合は、検証の決定を確認し、適切なアクションを実行します。

    事前定義されたポリシーをカスタムポリシーのモデルとして使用する

    CDM には、特定のニーズを満たすカスタムポリシーのモデルとして使用できるポリシーが含まれています。事前定義されたポリシーの次の重要なパターンに注意してください。
    • すべてのポリシーは、 CdmQuery スクリプトインクルードを使用して構成データを取得します。
    • シークレットで CdmQuery を使用して、すべてのデータが含まれるようにします。
    • CdmPolicyUtil スクリプトインクルードは、警告とエラーを追加します。
    • すべてのポリシーが実行され、エラーが出力に入力されると、決定は non_compliantになります。
    • デバッグにはロガーを使用します。ポリシーを公開する準備ができたら、ログを削除します。
    • マッピング入力パラメーターを使用して、動的入力値を指定します。

    スナップショットを検証するためのガイドライン

    • 既に検証および公開されているスナップショットを手動で検証しないでください。
    • 変更セットをコミットするときに [スナップショットを検証] または [スナップショットを検証して公開] オプションを選択すると、各スナップショットが最初に生成されたときに自動検証されます。
    • スナップショットの現在の検証エラーまたは警告を表示するには、スナップショットを開き、[ 検証結果 ] タブを選択します。詳細については、「スナップショット検証の結果を表示する」を参照してください。
    • ポリシーテストプレイグラウンド機能を使用して、ポリシーの開発中にスナップショットを再検証します。結果の検証結果にはテスト結果としてフラグが付けられ、操作には影響しません。
    • 展開可能項目のすべてのスナップショットを再検証する必要がある場合は、ポリシーをテストして公開した後にのみ再検証してください。

    避けるべきプラクティス

    • 構成データレコードの取得に GlideRecord を使用しないでください。
    • ポリシーの決定を UI に表示するには、 CDM 特定の構造の警告および失敗データが必要です。CdmPolicyUtil を使用して、警告またはエラーを追加します (手動挿入ではありません)。(少なくとも、 CdmPolicyUtil がエラーと警告に挿入する構造を理解してください)。
    • ポリシーでは、 CDM データに由来しないデータの取得を試みないでください。この方法により、クロススコープアクセスの問題が発生する可能性があります。
    • 「常時準拠」または「常に非準拠」のポリシーは記述しないでください。
    • ポリシーに名前や値をハードコーディングしないでください。代わりに、マッピング入力パラメーターを使用して動的入力値を指定します。

    スナップショットステータス

    • 未検証:これは、スナップショットに対してポリシーが実行されていない初期スナップショット状態です。
    • 要求済み:検証フローが開始されました。
    • 進行中:検証フローが実行中で、ポリシーが現在実行中です。
    • 合格:スナップショットはすべてのポリシーに合格しました。
    • 失敗:スナップショットで 1 つ以上のポリシーが失敗しました。
    • 実行エラー:予期しないエラーが原因で、ポリシーの実行が完了まで失敗しました。主に、CdmPolicyUtil スクリプトインクルードが警告メッセージとエラーメッセージの提供に使用されていない場合です。

    フロー例

    ユーザーは、展開前に構成データへの変更をコミットします。

    データは、アサインされているすべてのポリシーに照らして検証されます。

    検証に失敗すると、デプロイは停止します。構成データ内のその場所を指すエラーのリストがユーザーに提供されます。使用可能なアクションは、アプリケーション自体とアプリケーションがデプロイされている環境のコンテキストで決定する必要があります。例:
    • エラーや警告の数に関係なく、テスト環境での展開を許可します。
    • エラーが発生した場合は、本番環境での展開を停止します。
    • 警告が発生した場合、およびアプリケーションが重要な場合は、本番環境での展開を停止します。
    • 重大でない場合、警告の数に関係なく本番環境での展開を許可します。

    ユーザーがエラーを修正し、変更を再コミットします。

    データを再度検証し、結果に問題はありません。

    スナップショットが取得されます。

    デプロイが実行されます。