Добавьте общедоступный IP-адрес экземпляра EC2 в локальный файл Ansible hosts - PullRequest
0 голосов
/ 08 октября 2018

Я создаю экземпляр AWS EC2 с использованием terraform и хочу поместить открытый IP-адрес вновь созданной машины в мой локальный файл / etc / ansible / hosts.Попытка сделать это с модулем terraform local_file, но безуспешно.У вас есть идеи, как я могу получить эту информацию с помощью terraform?В файле хоста должно быть что-то в этом формате:

ABCD ansible_ssh_user = user ansible_ssh_private_key_file = / path / to / private / key

ABCD будет IP-адресом вновь созданного экземпляра.

1 Ответ

0 голосов
/ 08 октября 2018

Вам необходимо создать output для IP-адреса, который вы хотите выставить в файле output.tf в Terraform.Нечто похожее на:

output "private_ips" {
    value = "${aws_instance.<name>.private_ip}"
}

Затем вы можете вызвать его из командной строки, используя terraform output private_ips

Один быстрый и грязный способ добавить его в ваш файл /etc/ansible/hosts:1010 *

ip=`terraform output private_ips` ; echo "$ip ansible_ssh_user=user \
ansible_ssh_private_key_file=/path/to/private/key" >> /etc/ansible/hosts

Список литературы

https://www.terraform.io/intro/getting-started/outputs.html

https://www.terraform.io/docs/configuration/outputs.html

...