我在 octopus 中有项目,这些项目部署了各种基础架构,包括 azure arm 模板,一些模板需要 Azure Key Vault 的密码,有没有办法自动化?
问问题
1000 次
1 回答
0
当然,只需使用 powershell,这样的东西就可以工作(假设您已通过足够的权限认证为 azure):
$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
}
}
然后你只需调用 octopus 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 编码的字符串,则必须更聪明一点。但想法是一样的
附言。如果您想将它们放入变量集中,您只需要使用稍微不同的休息调用。pps。另一种选择,只需使用 powershell 脚本部署 arm 模板并让 powershell 脚本检索 KV 值并将其作为参数传递给模板
于 2019-01-10T12:16:09.830 回答