我需要将 GUI 管道变量 - $USER1 传递到部署在二头肌同一管道中的 Linux 盒子。尝试了自定义脚本扩展,但变量 $pat1 在 shell 中为空。 我如何传递变量?
resource customScriptExtension 'Microsoft.Compute/virtualMachines/extensions@2023-07-01' = {
parent: virtualMachine
name: 'config-app-linux'
location: location
properties: {
publisher: 'Microsoft.Azure.Extensions'
type: 'CustomScript'
typeHandlerVersion: '2.1'
autoUpgradeMinorVersion: true
settings: {
skipDos2Unix: false
timestamp: 123456789
}
protectedSettings: {
commandtoExecute: 'pat1="$USER1"'
}
}
}
要实现你的目标,我认为需要三个部分共同努力才能完成
第 1 部分: 样本.bicep
param USER1 string
var commandtoExecute = 'pat1=${USER1}'
resource customScriptExtension 'Microsoft.Compute/virtualMachines/extensions@2023-07-01' = {
parent: virtualMachine
name: 'config-app-linux'
location: location
properties: {
publisher: 'Microsoft.Azure.Extensions'
type: 'CustomScript'
typeHandlerVersion: '2.1'
autoUpgradeMinorVersion: true
settings: {
skipDos2Unix: false
timestamp: 123456789
}
protectedSettings: {
commandtoExecute: commandtoExecute
}
}
}
第2部分:用于运行名为deploy.ps1的二头肌的部署文件
param (
[string]$USER1
)
New-AzResourceGroupDeployment -ResourceGroupName "xxx" -TemplateFile "sample.bicep" -USER1 $USER1
第 3 部分:定义要运行的管道的 yaml 文件,名为 pipeline.yml
parameters:
- name: USER1
type: string
steps:
- task: AzurePowerShell@5
inputs:
azureSubscription: XXX
ScriptType: FilePath
ScriptPath: $(System.DefaultWorkingDirectory)\deploy.ps1
scriptArguments:
-USER1 ${{ parameters.USER1 }}
azurePowerShellVersion: latestVersion
您应该使用部署脚本的桥梁将参数或变量从 bicep 传递到 yaml。
以上流程只是一个示例,您可能需要做很多细节修改。