您可以建立包含您的 PowerShell 指令碼和相依性模組的 ZIP 套件,以便在擴充性動作中使用。
有兩種方式可為擴充性動作建立指令碼:
- 在 Automation Assembler 中,直接在擴充性動作編輯器中撰寫指令碼。
- 在本機環境中建立您的指令碼,並將其與任何相關相依性一起新增至 ZIP 套件。
透過使用 ZIP 套件,您可以建立包含動作指令碼和相依性的自訂預先設定範本,可將其匯入至
Automation Assembler 以便在擴充性動作中使用。
備註: 您不需要將 PowerCLI cmdlet 定義為相依性或將其綁定到 ZIP 套件中。PowerCLI cmdlet 已預先設定
Automation Assembler 服務的 PowerShell 執行階段。
還可以使用 ZIP 套件來建立包含多個 PowerShell 指令碼檔案的擴充性動作。使用多個指令碼檔案有助於組織整理擴充性動作代碼的結構。
必要條件
確認您熟悉 PowerShell 和 PowerCLI。您可以在 Docker Hub 找到具有 PowerShell Core、PowerCLI 10、PowerNSX 和多個社群模組的 Docker 映像和指令碼範例。
程序
- 在本機電腦上,為動作指令碼和相依性建立資料夾。
例如,
/home/user1/zip-action。
- 將副檔名為 .psm1 的主要 PowerShell 指令碼新增至資料夾。
下列指令碼顯示了一個簡單的 PowerShell 函數,稱為
main.psm1:
function handler($context, $payload) {
Write-Host "Hello " $payload.target
return $payload
備註: PowerShell 擴充性動作的輸出是以函數主體中所顯示的最後一個變數為基礎。包含的函數中的所有其他變數都會被捨棄。
- (選擇性) 使用
context
參數,將 Proxy 組態新增至您的主要 PowerShell 指令碼。請參閱使用內容參數在 PowerShell 指令碼中新增 Proxy 組態。
- (選擇性) 針對 PowerShell 指令碼新增任何相依性。
備註: 您的 PowerShell 相依性指令碼必須使用
.psm1 延伸。針對指令碼和儲存該指令碼的子資料夾使用相同的名稱。
- 登入 Linux PowerShell shell。
備註:
Automation Assembler 中以動作為基礎的擴充性執行階段是以 Linux 為基礎。在 Windows 環境中編譯的任何 PowerShell 相依性可能會導致產生的 ZIP 套件無法使用。在 Photon OS 上執行 PowerShell 指令碼時,任何已安裝的第三方相依性必須與 VMware Photon OS 相容。
- 導覽至 /home/user1/zip-action 資料夾。
- 透過執行 Save-Module cmdlet,下載並儲存包含相依性的 PowerShell 模組。
Save-Module -Name <module name> -Path ./
- 針對任何其他相依性模組重複之前的子步驟。
- 在已指派的資料夾中,選取您的指令碼元素以及 (如果適用) 相依性模組子資料夾,並將其壓縮為 ZIP 套件。
備註: 您的指令碼和相依性模組子資料夾必須儲存在 ZIP 套件的根層級。在 Linux 環境中建立 ZIP 套件時,您可能會遇到問題,即套件內容未儲存在根層級。如果您遇到此問題,請在命令列 shell 中執行
zip -r 命令以建立套件。
cd your_script_and_dependencies_folder
zip -r ../your_action_ZIP.zip *
下一步
使用 ZIP 套件建立擴充性動作指令碼。請參閱如何建立擴充性動作。