通过 bicep 将 azure devops 管道变量传递到 Linux 操作系统级别

问题描述 投票:0回答:1

我需要将 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"'
    }
  }
}
linux bash azure-devops azure-pipelines rhel
1个回答
0
投票

要实现你的目标,我认为需要三个部分共同努力才能完成

  1. 第 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. 第2部分:用于运行名为deploy.ps1的二头肌的部署文件

    param (
        [string]$USER1
    )
    New-AzResourceGroupDeployment -ResourceGroupName "xxx" -TemplateFile "sample.bicep" -USER1 $USER1
    
  3. 第 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。

以上流程只是一个示例,您可能需要做很多细节修改。

© www.soinside.com 2019 - 2024. All rights reserved.