【问题标题】:How can i read secrets from Azure key vault and place them into octopus deploy variables我如何从 Azure 密钥库中读取机密并将它们放入章鱼部署变量中
【发布时间】:2019-01-10 12:08:20
【问题描述】:

我在 octopus 中有项目,这些项目部署了各种基础架构,包括 azure arm 模板,其中一些模板需要 Azure Key Vault 的密码,有没有办法自动化?

【问题讨论】:

    标签: azure octopus-deploy azure-keyvault octopus


    【解决方案1】:

    当然,只需使用 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 编码字符串,则您必须更聪明一点。但是思路是一样的

    ps。如果您想将它们放入变量集中,您只需要使用稍微不同的休息调用。 pps。另一种选择,只需使用 powershell 脚本部署 arm 模板并让 powershell 脚本检索 KV 值并将其作为参数传递给模板

    【讨论】:

    • 我只需要密钥库中的密码等而不是真正的证书,我不确定证书数据在代码中的用途?
    • 没关系,你只需要在我的代码中提取这些并作为变量而不是证书上传到章鱼
    • 我如何获得用户名和密码而不是上面代码中的证书
    • 来自密钥库?只需参考您需要参考的秘密
    • ok 设法从 vault 中提取 t,但是如何将它们放入 octopus 中的变量集中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多