如何将 terraform 与 hashicorp 保险库一起用于 openstack?
How to use terraform with hashicorp vault for openstack?
我正在使用 terraform 在私有 openstack 云中配置服务器。 运行 terraform 要求 terraform 脚本可以访问我的 openstack 云的用户名和密码。所以我想将这些信息存储在一个秘密文件中并对其进行加密(类似于 ansible vault 的东西)。然而,我发现的将 hashicorp 保险库与 terraform 一起使用的唯一示例是 AWS。
那么我将如何创建一个 terraform 脚本来读取包含两个变量的保险库值以使用它们来配置 openstack 实例?
这里是我如何安装我的保险库秘密后端的参考:
vault mount generic
这是我的秘密的样子(如果我没有将它写入 json 文件):
vault write generic/logins usernames=myUserName psswrds=myPassword
Terraform 0.8 将有一个 Vault provider.
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 图集做了这个,你可以在 github here
上看到一个例子
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 图集,但用法非常相似。
我正在使用 terraform 在私有 openstack 云中配置服务器。 运行 terraform 要求 terraform 脚本可以访问我的 openstack 云的用户名和密码。所以我想将这些信息存储在一个秘密文件中并对其进行加密(类似于 ansible vault 的东西)。然而,我发现的将 hashicorp 保险库与 terraform 一起使用的唯一示例是 AWS。 那么我将如何创建一个 terraform 脚本来读取包含两个变量的保险库值以使用它们来配置 openstack 实例?
这里是我如何安装我的保险库秘密后端的参考:
vault mount generic
这是我的秘密的样子(如果我没有将它写入 json 文件):
vault write generic/logins usernames=myUserName psswrds=myPassword
Terraform 0.8 将有一个 Vault provider.
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 图集做了这个,你可以在 github here
上看到一个例子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 图集,但用法非常相似。