-
Notifications
You must be signed in to change notification settings - Fork 296
/
Copy pathansible.tf
37 lines (32 loc) · 1.02 KB
/
ansible.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
resource "null_resource" "ansible" {
provisioner "local-exec" {
interpreter = ["/bin/bash", "-c"]
working_dir = "${path.module}/ansible"
command = <<EOT
sleep 120 #time to allow VMs to come online and stabilize
mkdir -p ./logs
sed \
-e 's/BASTION_IP/${module.bastion.public_ip}/g' \
-e 's/WEB_IPS/${join("\\n", module.application.private_ips)}/g' \
-e 's/MONGO_IP/${module.storage.private_ip}/g' \
./templates/hosts > hosts
sed \
-e 's/BASTION_IP/${module.bastion.public_ip}/g' \
-e 's/SSH_KEY_NAME/${var.key_name}/g' \
./templates/ssh_config > ssh_config
#required for macos only
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
#ANSIBLE
ansible-playbook -v \
-i hosts \
--extra-vars "ALB_DNS=${module.application.dns_name}" \
--extra-vars "MONGODB_PRIVATEIP=${module.storage.private_ip}" \
./playbooks/master.yml
echo finished!
EOT
}
depends_on = [
module.bastion,
module.application
]
}