Je lance un aws_launch_configuration
instance utilisant terraform.
J'utilise un script Shell pour le user_data
variable, comme ceci:
resource "aws_launch_configuration" "launch_config" {
...
user_data = "${file("router-init.sh")}"
....
}
Dans ce router-init.sh, l'une des choses que je voudrais faire, c'est d'avoir accès aux adresses IP pour les autres instances que je lance via terraform.
Je sais que je peux utiliser un splat pour accéder à toutes les adresses IP de cette instance, par exemple:
output ip_address {
value = ${aws_instance.myAWSInstance.*.private_ip}"
}
Existe-t-il un moyen de passer/accéder à ces adresses IP dans le script router-init.sh?
Vous pouvez le faire en utilisant un template_file
source de données :
data "template_file" "init" {
template = "${file("router-init.sh.tpl")}"
vars = {
some_address = "${aws_instance.some.private_ip}"
}
}
Puis référencez-le à l'intérieur du modèle comme:
#!/bin/bash
echo "SOME_ADDRESS = ${some_address}" > /tmp/
Ensuite, utilisez-le pour le user_data
:
user_data = ${data.template_file.init.rendered}