做為 DevOps 管理員或開發人員,您可以建立自訂指令碼來延伸 Automation Pipelines 的功能。
您可以使用指令碼將 Automation Pipelines 與您自己用於建置、測試和部署應用程式的持續整合 (CI) 和持續交付 (CD) 工具及 API 整合。如果您不公開您的 API 應用程式,則自訂指令碼特別有用。
自訂指令碼幾乎可以執行建置工具、測試工具和部署工具與 Automation Pipelines 整合所需的任何動作。例如,指令碼可與管線工作區搭配使用,以支援建置和測試應用程式的持續整合工作以及部署應用程式的持續交付工作。當管線已完成以及發生其他更多情況時,自訂指令碼可以向 Slack 傳送訊息。
Automation Pipelines 管線工作區支援使用 Docker 和 Kubernetes 執行持續整合工作和自訂工作。
如需有關設定工作區的詳細資訊,請參閱設定管線工作區。
您可以使用其中一種支援的語言撰寫自訂指令碼。在指令碼中,您可以包含業務邏輯,並定義輸入與輸出。輸出類型可包含數字、字串、文字和密碼。您可以建立具有不同業務邏輯、輸入和輸出的多個版本的自訂指令碼。
所建立的指令碼位於 Automation Pipelines 執行個體中。可以匯入 YAML 代碼以建立自訂整合,也可以將指令碼匯出為 YAML 檔案以在其他 Automation Pipelines 執行個體中使用。
您可以讓管線在自訂工作中執行已發行的指令碼版本。如果您有多個已發行版本,則可以將其中一個版本設定為最新版本,以便在選取自訂工作時顯示最新 -->。
當管線使用自訂整合時,如果您嘗試刪除自訂整合,則會顯示一則錯誤訊息,指出您無法將其刪除。
刪除自訂整合會移除所有版本的自訂指令碼。如果您的現有管線具有使用任何版本指令碼的自訂工作,該管線將會失敗。若要確保現有管線不會失敗,您可以取代並撤回您不再需要使用的指令碼版本。如果沒有管線使用該版本,您可以將其刪除。
您執行的操作... | 有關該動作的詳細資訊... |
---|---|
將自訂工作新增到管線。 |
自訂工作:
|
在自訂工作中選取指令碼。 |
在指令碼中宣告輸入內容和輸出內容。 |
儲存管線,然後啟用並執行此管線。 |
管線執行時,自訂工作會呼叫指定的指令碼版本,並執行其中的業務邏輯,這可將建置、測試和部署工具與 Automation Pipelines 整合。 |
管線執行後,查看執行情況。 |
確認管線已交付預期結果。 |
使用呼叫自訂整合版本的自訂工作時,可以將自訂環境變數作為名稱值配對包含在管線工作區索引標籤上。當產生器映像建立用於執行 CI 工作並部署映像的工作區容器時,Automation Pipelines 會將環境變數傳遞至該容器。
例如,當 Automation Pipelines 執行個體需要 Web Proxy 並且您使用 Docker 主機建立用於自訂整合的容器時,Automation Pipelines 會執行管線並將 Web Proxy 設定變數傳遞至該容器。
名稱 | 值 |
---|---|
HTTPS_PROXY | http://10.0.0.255:1234 |
https_proxy | http://10.0.0.255:1234 |
NO_PROXY | 10.0.0.32, *.dept.vsphere.local |
no_proxy | 10.0.0.32, *.dept.vsphere.local |
HTTP_PROXY | http://10.0.0.254:1234 |
http_proxy | http://10.0.0.254:1234 |
PATH | /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
名稱-值配對將按如下所示顯示在使用者介面中:
此範例將建立自訂整合,該整合會將 Automation Pipelines 連線至 Slack 執行個體,並向 Slack 通道發佈訊息。
必要條件
- 若要撰寫自訂指令碼,請確認您熟悉下列其中一種語言:Python 2、Python 3、Node.js,或下列任何 Shell 語言:Bash、sh 或 zsh。
- 使用已安裝的 Node.js 或 Python 執行階段產生容器映像。
程序
結果
恭喜您!您已建立自訂整合指令碼,該指令碼將 Automation Pipelines 連線至 Slack 執行個體,並向 Slack 通道發佈訊息。
下一步
繼續建立自訂整合,以支援在管線中使用自訂工作,以便延伸 Automation Pipelines 在自動執行軟體發佈生命週期中的功能。