通过在线VSTS进程或组变量在本地VSTS Linux代理中的terraform.tfvars文件中填充变量

时间:2018-08-08 03:06:59

标签: git azure ubuntu azure-devops terraform

我确实使用Azure,Terraform,Ansible,GIT和Visual Studio Team Service(VSTS)建立了基础结构代码(IAC)构建管道。我还在本地计算机上设置了VSTS代理,该代理与VSTS在线同步。该安装程序当前可以无缝运行,并且只要我在本地Ubuntu计算机上更改Terraform基础结构规范,并将更改提交到GIT存储库,它就会自动更新Azure中的VM定义。

Terraform variables.tf

问题

如上所示,我有一些应用程序变量,例如Azure订阅ID,用户名,密码等,我不想提交到公共存储库。因此,我将它们定义为VSTS中的组变量,并且需要将它们下载/同步到terraform.tfvars文件中的本地Linux代理中。

请我该怎么做。

1 个答案:

答案 0 :(得分:1)

我们使用了大量技术将敏感数据移出脚本。一些例子:

  • 环境变量中的Terraform后端凭据(有关列表,请参见https://www.terraform.io/docs/providers/azurerm/index.html#testing
  • 使用key_vault_secret
  • 从Key Vault提取的密码,密钥和证书
  • terraform.tfvars文件中的变量是从另一个锁定的存储库中提取的;对于接受多个输入工件的Release Pipelines,这是微不足道的。您还可以使用一些Powershell即时生成此文件

只需确保管道清除所有这些秘密即可:VSTS不会为您这样做。