如何从部署管道内的Azure DevOps安全文件访问SSH证书



我目前正在与Azure DevOps作斗争。我正试图通过DevOps管道部署虚拟机,并将我保存在库中的SSH密钥作为安全文件传递给它。

trigger:
- none
pool:
vmImage: ubuntu-latest
variables:
- group: 'deployment-test'
steps:
- task: AzureCLI@2
displayName: "Create VM"
inputs:
azureSubscription: sp-test1234
scriptType: bash
scriptLocation: inlineScript
inlineScript: |
az vm create 
--resource-group testrg23142 
--name testvm 
--image Canonical:UbuntuServer:18.04-LTS:latest 
--custom-data "${BASH_SOURCE%/*}"/cloud-init.yaml 
--ssh-key-values ............
--vnet-name vm-test-vnet 
--subnet vm-test-subnet 
--assign-identity '[system]' 

我找不到一个如何将安全文件中的公钥test43.pub传递给ssh键值的示例。也许我缺少一些基本的东西。我找到了以下链接https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/download-secure-file?view=azure-devops,它是关于使代理机器可以访问安全文件。代理机器应该是池中定义的临时VM,这与我正在创建的VM无关。我被困了,任何帮助都非常感谢。

您可以在管道中为mykey.pub文件的内容设置一个秘密变量。然后,将管道定义中的变量调用为$(myPubKey)。对于密钥的秘密部分,请使用Azure Pipelines中的安全文件库。

下面是使用SSH密钥的一个更具体的示例:

https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/install-ssh-key?view=azure-devops

最新更新