Azure DevOps自托管代理VMSS报错:无法找到unzip可执行文件
问题:Azure VMSS自托管代理运行Terraform流水线报错找不到unzip
环境配置
我已在Azure中创建虚拟机规模集(VMSS),执行的Azure CLI命令如下:
az group create --location eastus --name vmssagents az vmss create --name vmssagentspool --resource-group vmssagents --image UbuntuLTS --vm-sku Standard_B1s --storage-sku StandardSSD_LRS --authentication-type SSH --generate-ssh-keys --instance-count 2 --disable-overprovision --upgrade-policy-mode manual --single-placement-group false --platform-fault-domain-count 1 --load-balancer ""
同时在Azure DevOps中创建了自托管代理池,但运行指定的Terraform流水线时,出现以下错误:
错误:无法找到可执行文件:'unzip'。请验证文件路径是否存在,或该文件是否能在PATH环境变量指定的目录中找到。同时检查文件权限以确认文件是否可执行。
流水线定义
trigger: none pool: 'Self Hosted' variables: bkstrgrg: azDevTFTestRG bkstrg: cirazadopstest2 bkcontainer: tfstate bkstrgkey: devpipeline.terraform.tfstate stages: - stage: tfvalidate jobs: - job: validate continueOnError: false steps: - task: TerraformInstaller@0 displayName: tfinstall inputs: terraformVersion: 'latest' - task: TerraformTaskv3@3 displayName: init inputs: provider: 'azurerm' command: 'init' backendServiceArm: 'Azure-Landing-Zone-Deployment' backendAzureRmResourceGroupName: '$(bkstrgrg)' backendAzureRmStorageAccountName: '$(bkstrg)' backendAzureRmContainerName: '$(bkcontainer)' backendAzureRmKey: '$(bkstrgkey)' - task: TerraformTaskV3@3 displayName: validate inputs: provider: 'azurerm' command: 'validate' - stage: tfdeploy condition: succeeded ('tfvalidate') dependsOn: tfvalidate jobs: - job: apply steps: - task: TerraformInstaller@0 displayName: tfinstall inputs: terraformVersion: 'latest' - task: TerraformTaskv3@3 displayName: init inputs: provider: 'azurerm' command: 'init' backendServiceArm: 'Azure-Landing-Zone-Deployment' backendAzureRmResourceGroupName: '$(bkstrgrg)' backendAzureRmStorageAccountName: '$(bkstrg)' backendAzureRmContainerName: '$(bkcontainer)' backendAzureRmKey: '$(bkstrgkey)' - task: TerraformTaskV3@3 displayName: validate inputs: provider: 'azurerm' command: 'validate' - task: TerraformTaskv3@3 displayName: plan inputs: provider: 'azurerm' command: 'plan' environmentServiceNameAzureRM: 'Azure-Landing-Zone-Deployment' - task: TerraformTaskv3@3 displayName: apply inputs: provider: 'azurerm' command: 'apply' environmentServiceNameAzureRM: 'Azure-Landing-Zone-Deployment'
后续操作
根据建议,我已使用自定义脚本扩展重新配置VMSS,执行命令如下:
az vmss extension set --vmss-name vmssagentspool --resource-group vmssagents --name CustomScript --version 2.0 --publisher Microsoft.Azure.Extensions --settings '{"fileUris":["<自定义脚本文件的公网URL>"],"commandToExecute":"bash ./zip_install.sh" }'
内容的提问来源于stack exchange,提问作者One Developer
相关产品推荐
相关产品推荐

