-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtemplates.tf
35 lines (32 loc) · 1.34 KB
/
templates.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
data "template_file" "ansible_master" {
count = var.swarm_master_count
template = "$${name} ansible_host=$${ipaddr} ansible_user=$${user} private_ip=$${private}"
vars = {
name = format("${var.swarm_name}-master-%02d", count.index)
ipaddr = aws_instance.docker_swarm_master.*.public_ip[count.index]
private = aws_instance.docker_swarm_master.*.private_ip[count.index]
user = var.ssh_user
}
}
data "template_file" "ansible_worker" {
count = var.swarm_worker_count
template = "$${name} ansible_host=$${ipaddr} ansible_user=$${user} private_ip=$${private}"
vars = {
name = format("var.swarm_name-worker-%02d", count.index)
ipaddr = aws_instance.docker_swarm_worker.*.public_ip[count.index]
private = aws_instance.docker_swarm_worker.*.private_ip[count.index]
user = var.ssh_user
}
}
data "template_file" "ansible_inventory" {
template = "[masters]\n$${masters}\n\n[workers]\n$${workers}\n\n[all:vars]\ndeploy_pub_key=$${pubkey}"
vars = {
masters = join("\n",data.template_file.ansible_master.*.rendered)
workers = join("\n",data.template_file.ansible_worker.*.rendered)
pubkey = tls_private_key.storidge_deploy_key.public_key_openssh
}
}
resource "local_file" "ansible_inventory" {
content = data.template_file.ansible_inventory.rendered
filename = "path.module/ansible.hosts"
}