通过bicep将azure devops管道变量传递到Linux OS级别

xtupzzrd  于 4个月前  发布在  Linux
关注(0)|答案(1)|浏览(65)

编辑:澄清一下:变量是空的在Linux框中。管道变量按预期工作。
我需要将GUI管道变量- $USER1传递到bicep中同一管道中部署的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"'
    }
  }
}

字符串

lymnna71

lymnna711#

要实现你的目标,我认为需要三个部分共同努力来完成
1.**第1部分:**样本。二头肌

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
    }
  }
}

字符串
1.**part 2:**一个运行二头肌的deploy.ps1部署文件

param (
    [string]$USER1
)
New-AzResourceGroupDeployment -ResourceGroupName "xxx" -TemplateFile "sample.bicep" -USER1 $USER1


1.第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。
上面的过程只是一个例子,你可能需要做很多细节的修改。

相关问题