Alex Cohen
Alex Cohen

Reputation: 6206

How to use terraform with hashicorp vault for openstack?

I am using terraform to provision servers in a private openstack cloud. Running terraform requires that the terraform script can access my username and password for my openstack cloud. So I would like to store this info in a secret file and encrypt this (something along the lines of ansible vault). However the only examples I have found for using hashicorp vault with terraform have been for AWS. So how would I create a terraform script that can read a vault value containing two variables to use them for provisioning openstack instances?

For reference here is how I mounted my vault secret backend:

vault mount generic

Here is what my secret would look like (if I didn't write it into a json file):

vault write generic/logins usernames=myUserName psswrds=myPassword

Upvotes: 2

Views: 2535

Answers (2)

Damo
Damo

Reputation: 6433

I have just done this for mongo atlas, you can see an example on 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"
}

I know this is for mongo atlas but it's very similar usage.

Upvotes: 0

Paul Tyng
Paul Tyng

Reputation: 7584

Terraform 0.8 will have a 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"]}"
}

Upvotes: 2

Related Questions