如何将Terraform与Hashicorp Vault一起用于OpenStack



我正在使用Terraform在私有OpenStack Cloud中提供服务器。运行Terraform要求Terraform脚本可以访问我的OpenStack Cloud的用户名和密码。因此,我想将此信息存储在秘密文件中并加密此信息(沿着Ansible Vault的行为)。但是,我发现将Hashicorp Vault与Terraform一起使用的唯一示例就是AWS。 那么,我将如何创建一个Terraform脚本,该脚本可以读取包含两个变量用于配置OpenStack实例的保险库值?

在这里参考是我如何安装保险库秘密后端的方式:

vault mount generic

这是我的秘密的样子(如果我不将其写入JSON文件):

vault write generic/logins usernames=myUserName psswrds=myPassword

Terraform 0.8将有一个保险库提供商。

data "vault_generic_secret" "login" {
  path = "generic/logins"
}
provider "something" {
  user = "${data.vault_generic_secret.login.data["username"]}"
  pass = "${data.vault_generic_secret.login.data["password"]}"
}

我刚刚为Mongo Atlas完成了此操作,您可以在GitHub上看到一个示例

provider "mongodbatlas" {
  public_key  = data.vault_generic_secret.example.data["public_key"]
  private_key = data.vault_generic_secret.example.data["private_key"]
}
provider "vault" {
  address = "http://127.0.0.1:8200"
}
data "vault_generic_secret" "example" {
  path = "mongodbatlas/creds/example"
}

我知道这是针对Mongo Atlas的,但使用非常相似。

最新更新