git - 从在线 VSTS 进程或组变量填充本地 VSTS Linux 代理上的 terraform.tfvars 文件中的变量

标签 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、用户名、密码等,我不想将其提交到我的公共(public)存储库。因此,我将它们定义为 VSTS 中的组变量,并且需要将它们下载/同步到 terraform.tfvars 文件中的本地 Linux 代理。

请问我怎样才能做到这一点。

最佳答案

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

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

只需确保管道在自行清除所有这些 secret 即可:VSTS 不会为您执行此操作。

关于git - 从在线 VSTS 进程或组变量填充本地 VSTS Linux 代理上的 terraform.tfvars 文件中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51738088/

相关文章:

asp.net - Azure KeyVault 突然出现 System.Net.Http.HttpRequestException

c# - 如何使用文件路径从 csproj 文件访问 Azure 开发操作存储库中保存的文件?

ubuntu - 没有 Eclipse 的 Ubuntu 14.04 上的 TFS 命令行

php - 与默认的 Ubuntu 构建相比,为什么重新编译的 PHP 使用大量 CPU?

java - sed: 1: "./.classpath": 无效的命令代码。错误。有什么问题吗?

git - 将当前 Git 分支设为 master 分支

git - 为什么用git协议(protocol)克隆项目没有反应?

git - Gerrit 推送不起作用。远程拒绝,被gerrit禁止

html - 部署我的应用程序时,CallComposite azure 样式不起作用

laravel - 默认创建日志文件664权限