Code Stream 可以與 vRealize Orchestrator (vRO) 進行整合,以透過執行 vRO工作流程來延伸其功能。vRealize Orchestrator 包含許多可與第三方工具整合的預先定義的工作流程。這些工作流程可協助您自動執行和管理 DevOps 程序,自動執行大量作業等。

例如,您可以在管線的vRO 工作中使用工作流程,以啟用使用者、移除使用者、移動虛擬機器,以及與測試架構整合以在管線執行時測試程式碼等。您可以在code.vmware.com 中瀏覽 vRealize Orchestrator 工作流程的程式碼範例。

透過 vRealize Orchestrator 工作流程,您的管線可以在建置、測試和部署應用程式時執行動作。您可以將預先定義的工作流程包含在管線中,也可以建立並使用自訂工作流程。每個工作流程皆包含輸入、工作和輸出。

若要在管線中執行vRO 工作流程,該工作流程必須顯示在管線中包含的 vRO 工作的可用工作流程清單中。

管理員必須先在 vRealize Orchestrator 中執行下列步驟,工作流程才會顯示在管線的 vRO 工作中:

  1. CODESTREAM 標籤套用至 vRO 工作流程。
  2. vRO 工作流程標記為全域工作流程。

必要條件

  • 確認您能夠以管理員身分存取 vRealize Orchestrator 的內部部署執行個體。若要取得協助,請向您自己的管理員詢問並參閱vRealize Orchestrator 說明文件
  • 確認您是 Code Stream 中的專案的成員。如果您不是管理員,請要求 Code Stream 管理員將您新增為專案成員。請參閱如何在 Code Stream 中新增專案
  • Code Stream 中,建立管線並新增一個階段。

程序

  1. 做為管理員,請準備 vRealize Orchestrator 工作流程以讓管線執行。
    1. vRealize Orchestrator 中,找到您需要在管線中使用的工作流程,例如,啟用使用者的工作流程。
      如果需要的工作流程不存在,您可以建立該工作流程。
    2. 在搜尋列中,輸入 Tag workflow,以找到名為 Tag workflow 的工作流程。
    3. 在名為 Tag workflow 的卡上,按一下執行,這將會顯示組態區域。
    4. 標記的工作流程文字區域中,輸入要在 Code Stream 管線中使用的工作流程名稱,然後從清單中加以選取。
    5. 標籤文字區域中,以大寫字母輸入 CODESTREAM
    6. 按一下名為全域標籤的核取方塊。
    7. 按一下執行,將名為 CODESTREAM 的標籤連結至需要在 Code Stream 管線中選取的工作流程。
    8. 在導覽窗格中,按一下工作流程,並確認名為 CODESTREAM 的標籤會顯示在管線將執行的工作流程卡上。
      登入 Code Stream 並將 vRO 工作新增至管線後,標記的工作流程會出現在工作流程清單中。
  2. Code Stream 中,為 vRealize Orchestrator 執行個體建立端點。
    1. 按一下端點 > 新增端點
    2. 選取專案。
    3. 輸入相關的名稱。
    4. 輸入 vRealize Orchestrator 端點的 URL。
      請使用以下格式: https://vro-appliance.yourdomain.local:8281
      請勿使用此格式:https://vro-appliance.yourdomain.local:8281/vco/api
      vRealize 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>
      ```
    5. 如果您輸入的 URL 需要憑證,請按一下接受憑證
    6. 如果 vRealize Orchestrator 端點的版本為 8.0 到 8.7,請選取基本驗證作為驗證類型,然後輸入 vRealize Orchestrator 伺服器的使用者名稱和密碼。

      如果您使用非本機使用者進行驗證,則必須省略使用者名稱的網域部分。例如,若要使用 [email protected] 進行驗證,則必須在使用者名稱文字區域中輸入 svc_vro

      備註: 如果 vRealize Orchestrator 端點的版本為 8.8 或更高版本,則不支援基本驗證,並且端點建立將失敗。
  3. 準備管線以執行vRO 工作。
    1. vRO 工作新增至管線階段。
    2. 輸入相關的名稱。
    3. 在 [工作流程內容] 區域,選取 vRealize Orchestrator 端點。
    4. 選取您在 vRealize Orchestrator 中標記為 CODESTREAM 的工作流程。
      如果您選取您建立的自訂工作流程,您可能需要輸入輸入參數值。
    5. 對於執行工作,按一下依條件
      如果必須為 vRealize Orchestrator 工作套用條件,請在條件區域中輸入。
    6. 輸入要在管線執行時套用的條件。
      何時執行管線... 選取條件...
      依條件

      只有在已定義的條件評估為 true 時才執行管線工作。如果條件為 false,則略過工作。

      vRO 工作允許包含布林運算式,該運算式使用下列運算元和運算子。

      • 管線變數,例如 ${pipeline.variableName}。輸入變數時,僅可使用大括號。
      • 工作輸出變數,例如 ${Stage1.task1.machines[0].value.hostIp[0]}
      • 預設管線繫結變數,例如 ${releasePipelineName}
      • 不區分大小寫的布林值,例如 truefalse'true''false'
      • 不含引號的整數值或小數值。
      • 具有單引號或雙引號的字串值,例如 "test"'test'
      • 字串和數字類型的值,例如 == Equals!= Not Equals
      • 關聯性運算子,例如 >>=<<=
      • 布林邏輯,例如 &&||
      • 算術運算子,例如 +-*/
      • 使用圓括弧的巢狀運算式。
      • 包含文字值 ABCD 的字串評估為 false,因此會略過工作。
      • 不支援一元運算子。

      範例條件可以是 ${Stage1.task1.output} == “Passed” || ${pipeline.variableName} == 39

      一律 如果您選取一律,管線執行工作,而不需條件。
    7. 輸入問候訊息。
    8. 按一下驗證工作,並更正發生的任何錯誤。
  4. 儲存、啟用並執行管線。
  5. 管線執行後,檢查結果。
    1. 按一下執行
    2. 按一下管線。
    3. 按一下工作。
    4. 檢查結果、輸入值和內容。
      您可以識別工作流程執行識別碼、回應工作的人員及時間,以及他們加入的任何註解。

結果

恭喜您!您已標記要在 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 工作流程工作包含在管線中,以便在開發、測試和生產環境中自動執行工作。