web-dev-qa-db-fra.com

Comment utiliser la sortie terraform comme variable d'entrée d'un autre modèle terraform

Existe-t-il un moyen d'utiliser une sortie de modèle Terraform vers l'entrée d'un autre modèle Terraform?

Ex: J'ai un modèle Terraform qui crée un ELB et j'ai un autre modèle Terraform qui va créer un groupe de mise à l'échelle automatique qui a besoin des informations ELB comme variable d'entrée.

Je sais que je peux utiliser le script Shell pour grep et alimenter les informations ELB, mais je cherche un moyen Terraform pour le faire.

11
Joy

Avez-vous essayé d'utiliser l'état distant pour remplir votre deuxième modèle?

Déclarez-le comme ceci:

resource "terraform_remote_state" "your_state" {
  backend = "s3"
  config {
    bucket = "${var.your_bucket}"
    region = "${var.your_region}"
    key = "${var.your_state_file}"
  }
}

Et puis vous devriez pouvoir retirer votre ressource directement comme ceci:

your_elb = "${terraform_remote_state.your_state.output.your_output_resource}"

Si cela ne fonctionne pas pour vous, avez-vous essayé d'implémenter votre ELB dans un module, puis d'utiliser simplement la sortie?

https://github.com/terraform-community-modules/tf_aws_elb est un bon exemple de la façon de structurer le module.

6
mcheshier

On dirait que dans les versions plus récentes de Terraform, vous accéderiez à la sortie var comme ceci

your_elb = "${data.terraform_remote_state.your_state.your_output_resource}"

Tout le reste est le même, juste comme vous l'avez référencé.

1
user10273842