ServiceNow 変更管理との統合
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure Pipelines では ServiceNow との統合がサポートされているので、開発チームと IT チーム間のコラボレーションを改善できます。 チームは、リリース パイプラインに変更管理を組み込むことにより、変更に関連するリスクを軽減し、ITIL などのサービス管理手法に従いつつ、Azure Pipelines を最大限に活用できます。
この記事では、次の方法について学習します。
- ServiceNow インスタンスを構成する。
- ServiceNow 変更管理プロセスをリリース ゲートとして組み込む。
- リリース パイプラインから変更管理プロセスを監視する。
- 配置の結果で ServiceNow 変更要求が更新された状態を保持する。
前提条件
Azure DevOps 組織。 まだ組織を作成していない場合は、組織を作成します。
ServiceNow の開発者以外のインスタンス。
ServiceNow インスタンスを構成する
ServiceNow インスタンスに Azure Pipelines 拡張機能をインストールします。 インストールを完了するには、HI 資格情報が必要です。 ServiceNow ストアからのアプリのインストールの詳細については、「Buying Overview」を参照してください。
ServiceNow で新しいユーザーを作成し、
x_mioms_azpipeline.pipelinesExecution
ロールを付与します。
Azure DevOps 組織を設定する
Azure DevOps 組織に ServiceNow Change Management 拡張機能をインストールします。
次のように、Azure DevOps プロジェクト内で新しい ServiceNow サービス接続を作成します。 または、OAuth2 認証を使用することもできます。
リリース パイプラインを構成する
リリース パイプラインに移動し、[配置前条件] アイコンを選択します。 [ゲート] および [ServiceNow Change Management] 配置前ゲートを選択します。
以前に作成したサービス接続を選択し、次のように必須フィールドに入力します。
- [ServiceNow connection] (ServiceNow 接続): 変更管理で使用される、ServiceNow インスタンスへの接続。
- [簡単な説明]: 変更の概要。
- [説明]: 変更の詳細な説明。
- [カテゴリ]: 変更のカテゴリ。 例: ハードウェア、ネットワーク、ソフトウェア。
- [優先度]: 変更の優先度。
- [リスク]: 変更のリスク レベル。
- [影響]: 変更がビジネスに及ぼす影響。
- [構成項目]: 変更の適用対象の構成項目 (CI)。
- [代入グループ]: 変更の割り当て先のグループ。
- [Schedule of change request] (変更要求のスケジュール): ServiceNow ワークフローで履行される変更のスケジュール。 日付と時刻は UTC で、yyyy-MM-ddTHH:mm:ssZ 形式にする必要があります。 例: 2018-01-31T07:56:59Z。
- [Additional change request parameters] (追加の変更要求パラメーター): (ラベルではなく) フィールド名の前に 'u_' を付けた名前にする必要があります。 例: u_backout_plan。 ServiceNow で有効な値でなければなりません。 無効なエントリは無視されます。
- [Desired state of change request] (変更要求の適切な状態): 変更要求の状態が指定の値と同じ場合に、ゲートが成功し、パイプラインが続行されます。
- [詳細設定]: このゲートが成功する時点をコントロールする式を指定します。 ServiceNow からの応答で、変更要求は root['result'] と定義されます。 例 - "and(eq(root['result'].state, 'New'),eq(root['result'].risk, 'Low'))"。 詳細については、「式」を参照してください。
- [出力変数] : 配置ワークフローで出力変数を使用できるようにするには、参照名を指定する必要があります。 エージェントレス ジョブで、"プレフィックス" として "PREDEPLOYGATE" を使用してゲート変数にアクセスできます。 たとえば、参照名を 'gate1' に設定すると、$(PREDEPLOYGATE.gate1.CHANGE_REQUEST_NUMBER) で変更番号を取得できます。
- [CHANGE_REQUEST_NUMBER]: 変更要求の番号。
- [CHANGE_SYSTEM_ID]: 変更要求のシステム ID。
リリース パイプラインの最後に、[Update ServiceNow Change Request] (ServiceNow 変更管理の更新) タスクを指定した [エージェントレス ジョブ] を追加します。
- [ServiceNow connection] (ServiceNow 接続): 変更管理で使用される、ServiceNow インスタンスへの接続。
- [Change request number] (変更要求番号): 更新する変更要求の番号。
- [Updated status of change request] (変更要求の更新後の状態): 変更要求に対して設定する状態。 この入力は、[更新の状態] が選択されている場合に使用できます。
- [Close code] (終了コード) と [Close notes] (終了メモ): 状態を返します。
注意
実行中に変更要求フィールドが更新されない場合、ServiceNow 変更要求の更新タスクは失敗します。 無効なフィールドや値がこのタスクに渡されると、ServiceNow で無視されます。
リリース パイプラインを作成する
[リリースの作成] を選択して、新しいリリース パイプラインを開始します。
パイプラインにより、以前に作成した配置前条件の一部として、ServiceNow で新しい変更要求が作成されるはずです。
パイプラインは、すべてのゲートが同じサンプルの間隔内で成功するまで待機します。 変更番号を検査するには、状態アイコンを選択してパイプラインのログを表示します。
変更要求は ServiceNow でキューに入れられ、変更所有者が参照できます。
新しい変更要求をトリガーしたリリース パイプラインが、[Azure DevOps Pipeline metadata] (Azure DevOps パイプラインのメタデータ) セクションの下に示されます。
変更を実装する準備ができたら (実装状態に移行)、パイプラインの実行が再開され、ゲートの状態は [成功] に戻るはずです。
変更要求は配置後に自動的に閉じられます。
YAML パイプライン
このチュートリアルでは、"最新" 環境に配置する YAML パイプラインがあり、1 つのステージが含まれていることを前提としています。
チェックを追加する
[最新] 環境に移動し、省略記号ボタンを選択してから、[承認とチェック] を選択します。
新しいチェックを追加するためのプラス記号を選択してから、[ServiceNow Change Management] チェックを環境に追加します。 配置前ゲートに使用した構成を使用します。
YAML タスクを追加する
ステージにサーバー ジョブを追加して、変更要求を更新します。
パイプラインを保存して実行します。 新しい変更要求が自動的に作成され、パイプラインは一時停止し、このチェックが完了するまで待機します。
このチェックが完了したら、パイプラインの実行が再開されるはずです。 変更要求は配置後に自動的に閉じられます。
よく寄せられる質問
質問: サポートされている ServiceNow のバージョンは何ですか?
答え: キングストン、ロンドン、ニューヨーク、パリ、ケベック、ローマ、サンディエゴ、東京のバージョンをサポートしています。
答え: キングストン、ロンドン、ニューヨーク、パリ、ケベックのバージョンをサポートしています。
A: 次のバージョンがサポートされています: サンディエゴ、東京、ユタ州のリリース。
質問: サポートされている変更要求の種類は何ですか?
答え: この統合では、通常、標準、緊急の変更要求がサポートされています。
質問: 追加の変更プロパティを設定するにはどうすればよいですか。?
答え: 追加の変更プロパティは、[Additional change request parameters] (追加の変更要求パラメーター) フィールドから指定できます。 キーと値のペアを JSON 形式で使用します。(ラベルではなく) フィールド名の前に u_
が付いた名前にします。
質問: 追加の変更要求パラメーターを指定して変更要求のカスタム フィールドを更新できますか?
答え: 変更要求でカスタム フィールドが定義されている場合、インポート設定変換マップ内にカスタム フィールドのマッピングを追加する必要があります。
質問: [カテゴリ] や [状態] などのフィールドでドロップダウン値が設定されません。 どうすればよいですか。
答え: ドロップダウンを機能させるには、ServiceNow インスタンスで Change Management Core と Change Management - State Model のプラグインをアクティブにする必要があります。 詳細については、「Change Management のアップグレード」と「変更要求のステータスの更新」を参照してください。
リソース
- Configure your release pipelines for safe deployments
- Twitter sentiment as a release gate
- GitHub issues as a release gate
- カスタム ゲートの作成に関するページ。
- ServerTaskHelper Library の例