我在octopus中有一些项目,这些项目部署了各种基础结构,包括天蓝色的手臂模板,其中一些模板需要Azure Key Vault的密码,有没有办法使它自动化?
答案 0 :(得分:0)
确保,只需使用powershell,这样的事情就可以工作(假设您已通过身份验证以具有足够的权限获得天蓝色):
$certPassword = (Get-AzureKeyVaultSecret -VaultName vaultname -Name passwordsecretName).SecretValueText
$certBase64 = (Get-AzureKeyVaultSecret -VaultName vaultname -Name base64secretName).SecretValueText
$body = @{
Name = $certName
CertificateData = @{
HasValue = "True"
NewValue = $certBase64
}
Password = @{
NewValue = $certPassword
}
}
然后您只需调用章鱼api进行休息:
$datota = @{
Uri = $octopus_uri + "/api/certificates/" + '?skip=0&take=2147483647'
Headers = @{ "X-Octopus-ApiKey" = your_api_key }
ErrorAction = "Stop"
Body = $body | ConvertTo-Json -Depth 4 -Compress
Method = "Post
}
Invoke-RestMethod @datota
如果将证书存储为证书而不是base64编码的字符串,则必须更加聪明。但想法是一样的
ps。如果要将它们放入变量集中,则只需要使用稍微不同的rest调用即可。 pps。另一种选择,只需使用powershell脚本来部署arm模板,并让powershell脚本检索KV值并将其作为参数传递给模板