與 ServiceNow 變更管理整合

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Azure Pipelines 支援與 ServiceNow 整合,以改善開發與 IT 小組之間的共同作業。 藉由在發行管線中包含變更管理,小組可以降低與變更相關聯的風險,並遵循 ITIL 等服務管理方法,同時充分利用 Azure Pipelines。

在本文中,您將學會如何:

  • 設定 ServiceNow 實例。
  • 將 ServiceNow 變更管理程式納入發行閘道。
  • 從發行管線監視變更管理程式。
  • 讓 ServiceNow 變更要求隨著部署結果更新。

必要條件

設定 ServiceNow 實例

  1. ServiceNow 實例上安裝 Azure Pipelines 擴充功能。 您需要 Hi 認證才能完成安裝。 如需從 ServiceNow 市集安裝應用程式的詳細資訊,請參閱 購買概觀

  2. 在 ServiceNow 中建立新使用者,並授與下列角色: x_mioms_azpipeline.pipelinesExecution

    顯示如何在 ServiceNow 中設定新用戶的螢幕快照。

設定 Azure DevOps 組織

  1. Azure DevOps 組織上安裝 ServiceNow 變更管理延伸模組

    顯示 ServiceNow 變更管理延伸模組的螢幕快照。

  2. 在 Azure DevOps 專案中建立新的 ServiceNow 服務連線 ,如下所示。 或者,您也可以使用 OAuth2 驗證

    顯示如何設定 ServiceNow 服務連線的螢幕快照。

設定發行管線

  1. 流覽至您的發行管線,然後選取 [部署前條件] 圖示。 選取 [網關 ] 和 [ServiceNow 變更管理 ] 預先部署網關。

    顯示如何新增預先部署閘道的螢幕快照。

  2. 選取您稍早建立的服務連線,並填寫必要的欄位,如下所示:

    顯示如何設定 ServiceNow 變更管理閘道的螢幕快照。

    • ServiceNow 連線:對用於變更管理的 ServiceNow 實例 連線。
    • 簡短描述:變更的摘要。
    • 描述:變更的詳細描述。
    • 類別:變更的類別。 範例:硬體、網路、軟體。
    • 優先順序:變更的優先順序。
    • 風險:變更的風險層級。
    • 影響:變更對企業的影響。
    • 組態專案:套用變更的組態專案 (CI)。
    • 指派群組:指派變更的群組。
    • 變更要求的排程:ServiceNow 工作流程所接受的變更排程。 日期和時間應為 UTC,格式應為 yyyy-MM-ddTHH:mm:ssZ。 範例:2018-01-31T07:56:59Z。
    • 其他變更要求參數:名稱必須是前面加上 『u_』 的功能變數名稱(而非標籤)。 範例: u_backout_plan。 Value 必須是 ServiceNow 中的有效值。 忽略無效的專案。
    • 變更要求的預期狀態:閘道會成功,而且當變更要求狀態與提供的值相同時,管線會繼續。
    • 進階:指定表達式,控制此閘道何時應該成功。 變更要求會在來自 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:變更要求的系統標識碼。
  3. 在發行管線結束時,新增具有更新 ServiceNow 變更要求工作的無代理程序作業

    顯示如何設定更新服務Now 變更要求工作的螢幕快照。

  • ServiceNow 連線:對用於變更管理的 ServiceNow 實例 連線。
  • 變更要求號碼:要更新的變更要求數目。
  • 已更新變更要求 的狀態:要為變更要求設定的狀態。 如果 已選取 [更新狀態 ],則此輸入可供使用。
  • 關閉程式代碼並關閉附註:傳回狀態。

注意

如果執行期間沒有更新任何變更要求字段,更新 ServiceNow 變更要求工作將會失敗。 ServiceNow 會忽略傳遞至工作的無效欄位和值。

建立發行管線

  1. 選取 [建立發行 ] 以啟動新的發行管線。

  2. 您的管線應該會在 ServiceNow 中建立新的變更要求,做為您稍早建立的部署前條件的一部分。

    顯示執行部署前閘道的螢幕快照。

  3. 管線會等候所有閘道在相同的取樣間隔內成功。 若要檢查變更號碼,請選取狀態圖示以檢視您的管線記錄。

    顯示管線記錄的螢幕快照。

  4. 變更要求會在 ServiceNow 中排入佇列,並可由變更擁有者檢視。

    顯示 ServiceNow 中新變更要求的螢幕快照。

  5. 您可以在 Azure DevOps Pipeline 元數據區段下找到觸發新變更要求的發行管線。

    顯示發行管線元數據的螢幕快照。

  6. 當變更準備好實作時(移至 作狀態),管線將會繼續執行,網關狀態應該會傳回 成功

    顯示部署閘道狀態的螢幕快照。

  7. 變更要求會在部署後自動關閉。

Yaml 管線

本教學課程假設您有一個 yaml 管線,其中包含部署至「最新」環境的單一階段。

新增檢查

  1. 流覽至您的環境「最新」,選取省略號按鈕,然後選取 [核准 並檢查]。

  2. 選取加號以新增檢查,然後將 ServiceNow 變更管理檢查新增至您的環境。 使用您用於部署前閘道的相同組態。

    顯示如何新增 ServiceNow 變更管理檢查的螢幕快照。

新增 yaml 工作

  1. 將伺服器作業新增至您的階段,以更新變更要求。

    顯示無代理程式工作的螢幕快照。

  2. 儲存並執行您的管線。 系統會自動建立新的變更要求,管線將會暫停並等待檢查完成。

  3. 檢查完成後,管線應該會繼續執行。 變更要求會在部署後自動關閉。

顯示管線執行的螢幕快照。

常見問題集

問:支援哪些版本的 ServiceNow?

:我們支援下列版本:金士頓、倫敦、紐約、巴黎、魁北克、羅馬、聖地牙哥和東京。

:我們支援下列版本:金士頓、倫敦、紐約、巴黎和魁北克。

:我們支援下列版本:聖地牙哥、東京和猶他州版本。

問:支援哪些類型的變更要求?

:這項整合支援標準、標準和緊急變更要求。

問:如何? 設定其他變更屬性嗎?

:您可以從 [其他變更要求參數] 欄位指定其他變更屬性。 使用機碼/值組 JSON 格式,其名稱是前面加上 u_的功能變數名稱(而非標籤)。

問:我是否可以使用其他變更要求參數來更新變更要求中的自定義欄位?

:如果在變更要求中定義自定義欄位,您必須 在匯入集合轉換對應中新增自定義欄位的對應。

問:我看不到已填入 [類別]、[狀態] 和其他字段的下拉式清單值。 我該怎麼做?

:變更管理核心和變更管理 - 狀態模型外掛程式必須作用於您的 ServiceNow 實例上,下拉式清單才能運作。 如需詳細資訊,請參閱升級變更管理和更新變更要求狀態

資源