Как я могу прочитать секреты из хранилища ключей Azure и поместить их в переменные развертывания осьминога - PullRequest
0 голосов
/ 10 января 2019

У меня есть проекты в осьминоге, в которых разворачивается различная инфраструктура, включая шаблоны Azure Arm, для некоторых шаблонов требуются пароли из хранилища ключей Azure. Есть ли способ автоматизировать это?

1 Ответ

0 голосов
/ 10 января 2019

конечно, просто используйте 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
    }
}

и тогда вы просто позвоните осьминогу 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. но идея та же

пс. если вы хотите поместить их в наборы переменных, вам просто нужно использовать немного другой вызов rest. имп. другой вариант, просто используйте сценарий powershell для развертывания шаблона arm, а сценарий powershell извлекает значение KV и передает его в шаблон в качестве параметра

...