Code Stream 可以與 vRealize Orchestrator (vRO) 進行整合,以透過執行 vRO工作流程來延伸其功能。vRealize Orchestrator 包含許多可與第三方工具整合的預先定義的工作流程。這些工作流程可協助您自動執行和管理 DevOps 程序,自動執行大量作業等。
例如,您可以在管線的vRO 工作中使用工作流程,以啟用使用者、移除使用者、移動虛擬機器,以及與測試架構整合以在管線執行時測試程式碼等。您可以在code.vmware.com 中瀏覽 vRealize Orchestrator 工作流程的程式碼範例。
透過 vRealize Orchestrator 工作流程,您的管線可以在建置、測試和部署應用程式時執行動作。您可以將預先定義的工作流程包含在管線中,也可以建立並使用自訂工作流程。每個工作流程皆包含輸入、工作和輸出。
若要在管線中執行vRO 工作流程,該工作流程必須顯示在管線中包含的 vRO 工作的可用工作流程清單中。
管理員必須先在 vRealize Orchestrator 中執行下列步驟,工作流程才會顯示在管線的 vRO 工作中:
- 將CODESTREAM 標籤套用至 vRO 工作流程。
- 將vRO 工作流程標記為全域工作流程。
必要條件
- 確認您能夠以管理員身分存取 vRealize Orchestrator 的內部部署執行個體。若要取得協助,請向您自己的管理員詢問並參閱vRealize Orchestrator 說明文件。
- 確認您是 Code Stream 中的專案的成員。如果您不是管理員,請要求 Code Stream 管理員將您新增為專案成員。請參閱如何在 Code Stream 中新增專案。
- 在 Code Stream 中,建立管線並新增一個階段。
程序
- 做為管理員,請準備 vRealize Orchestrator 工作流程以讓管線執行。
- 在 vRealize Orchestrator 中,找到您需要在管線中使用的工作流程,例如,啟用使用者的工作流程。
如果需要的工作流程不存在,您可以建立該工作流程。
- 在搜尋列中,輸入 Tag workflow,以找到名為 Tag workflow 的工作流程。
- 在名為 Tag workflow 的卡上,按一下執行,這將會顯示組態區域。
- 在標記的工作流程文字區域中,輸入要在 Code Stream 管線中使用的工作流程名稱,然後從清單中加以選取。
- 在標籤和值文字區域中,以大寫字母輸入 CODESTREAM。
- 按一下名為全域標籤的核取方塊。
- 按一下執行,將名為 CODESTREAM 的標籤連結至需要在 Code Stream 管線中選取的工作流程。
- 在導覽窗格中,按一下工作流程,並確認名為 CODESTREAM 的標籤會顯示在管線將執行的工作流程卡上。
登入 Code Stream 並將 vRO 工作新增至管線後,標記的工作流程會出現在工作流程清單中。
- 在 vRealize Orchestrator 中,找到您需要在管線中使用的工作流程,例如,啟用使用者的工作流程。
- 在 Code Stream 中,為 vRealize Orchestrator 執行個體建立端點。
- 按一下 。
- 選取專案。
- 輸入相關的名稱。
- 輸入 vRealize Orchestrator 端點的 URL。
請使用以下格式: https://vro-appliance.yourdomain.local:8281請勿使用此格式:https://vro-appliance.yourdomain.local:8281/vco/apivRealize Automation 應用裝置中內嵌的 vRealize Orchestrator 執行個體的 URL 是應用裝置的 FQDN,不具有連接埠。例如: https://vra-appliance.yourdomain.local/vco從 vRealize Automation 8.x 開始,對於外部 vRealize Orchestrator Appliance,應用裝置的 FQDN 為 https://vro-appliance.yourdomain.local對於 vRealize Automation 7.x 中包含的外部 vRealize Orchestrator Appliance,應用裝置的 FQDN 為 https://vro-appliance.yourdomain.local:8281/vco如果在新增端點時發生問題,您可能需要匯入具有 SHA-256 憑證指紋且已移除冒號的 YAML 組態。例如, B0:01:A2:72... 變為 B001A272...。範例 YAML 程式碼類似於:
``` --- project: Demo kind: ENDPOINT name: external-vro description: '' type: vro properties: url: https://yourVROhost.yourdomain.local username: yourusername password: yourpassword fingerprint: <your_fingerprint> ```
- 如果您輸入的 URL 需要憑證,請按一下接受憑證。
- 如果 vRealize Orchestrator 端點的版本為 8.0 到 8.7,可以選取基本驗證或 Token 作為驗證類型。如果 vRealize Orchestrator 端點的版本為 8.8 或更高版本,則必須選取 Token 作為驗證類型。
備註: 如果 vRealize Orchestrator 端點的版本為 8.8 或更高版本,請不要選取 基本驗證。不支援基本驗證,並且端點建立將失敗。
- 如果選取基本驗證,請輸入 vRealize Orchestrator 伺服器的使用者名稱和密碼。
如果您使用非本機使用者進行驗證,則必須省略使用者名稱的網域部分。例如,若要使用 [email protected] 進行驗證,則必須在使用者名稱文字區域中輸入 svc_vro。
- 如果選取 Token 作為驗證類型,請產生私人 Token。
VMware Cloud Services API Token 會向您驗證與 Code Stream 的外部 API 連線。取得 API Token:
- 按一下產生 Token。
- 輸入與使用者名稱和密碼相關聯的電子郵件地址,然後按一下產生。
您產生的 Token 有效期為六個月。它也稱為重新整理 Token。
- 若要將 Token 保留為變數供日後使用,請按一下建立變數,輸入變數的名稱,然後按一下儲存。
- 若要將 Token 保留為文字值供日後使用,請按一下複製,然後將 Token 貼到文字檔中以在本機儲存。
- 按一下關閉。
- 如果選取基本驗證,請輸入 vRealize Orchestrator 伺服器的使用者名稱和密碼。
- 準備管線以執行vRO 工作。
- 將vRO 工作新增至管線階段。
- 輸入相關的名稱。
- 在 [工作流程內容] 區域,選取 vRealize Orchestrator 端點。
- 選取您在 vRealize Orchestrator 中標記為 CODESTREAM 的工作流程。
如果您選取您建立的自訂工作流程,您可能需要輸入輸入參數值。
- 對於執行工作,按一下依條件。
- 輸入要在管線執行時套用的條件。
何時執行管線... 選取條件... 依條件 只有在已定義的條件評估為 true 時才執行管線工作。如果條件為 false,則略過工作。
vRO 工作允許包含布林運算式,該運算式使用下列運算元和運算子。
- 管線變數,例如 ${pipeline.variableName}。輸入變數時,僅可使用大括號。
- 工作輸出變數,例如 ${Stage1.task1.machines[0].value.hostIp[0]}。
- 預設管線繫結變數,例如 ${releasePipelineName}。
- 不區分大小寫的布林值,例如 true、false、'true' 和 'false'。
- 不含引號的整數值或小數值。
- 具有單引號或雙引號的字串值,例如 "test" 和 'test'。
- 字串和數字類型的值,例如 == Equals 和 != Not Equals。
- 關聯性運算子,例如 >、>=、< 和 <=。
- 布林邏輯,例如 && 和 ||。
- 算術運算子,例如 +、-、* 和 /。
- 使用圓括弧的巢狀運算式。
- 包含文字值 ABCD 的字串評估為 false,因此會略過工作。
- 不支援一元運算子。
範例條件可以是 ${Stage1.task1.output} == “Passed” || ${pipeline.variableName} == 39
一律 如果您選取一律,管線執行工作,而不需條件。 - 輸入問候訊息。
- 按一下驗證工作,並更正發生的任何錯誤。
- 儲存、啟用並執行管線。
- 管線執行後,檢查結果。
- 按一下執行。
- 按一下管線。
- 按一下工作。
- 檢查結果、輸入值和內容。
您可以識別工作流程執行識別碼、回應工作的人員及時間,以及他們加入的任何註解。
結果
恭喜您!您已標記要在 Code Stream 中使用的 vRealize Orchestrator 工作流程,並在 Code Stream 管線中新增了 vRO 工作,以使其執行在 DevOps 環境中自動執行動作的工作流程。
範例: vRO 工作輸出格式
vRO 工作的輸出格式類似於以下範例。
[{ "name": "result", "type": "STRING", "description": "Result of workflow run.", "value": "" }, { "name": "message", "type": "STRING", "description": "Message", "value": "" }]
下一步
繼續將vRO 工作流程工作包含在管線中,以便在開發、測試和生產環境中自動執行工作。