-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathinventory.tf
More file actions
38 lines (37 loc) · 2.28 KB
/
inventory.tf
File metadata and controls
38 lines (37 loc) · 2.28 KB
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
38
// terraform-aws/inventory.tf
resource "local_file" "instances_file" {
filename = "${var.instances_inventory_file}"
content = templatefile("${path.module}/${var.inventory_template_file}",
{
crdb_public_names = "${join("\n", (aws_instance.crdb.*.public_dns) )}"
crdb_public_ips = "${join("\n", (aws_instance.crdb.*.public_ip) )}"
crdb_public_ips_un = "${join("\n", [for ip in aws_instance.crdb.*.public_ip: "${ip} ansible_user=${local.admin_username}"])}"
crdb_private_ips = "${join("\n", aws_instance.crdb[*].private_ip)}"
crdb_private_ip_0 = "${aws_instance.crdb.0.private_ip}"
crdb_public_ips_0 = "${aws_instance.crdb.0.public_ip}"
kafka_public_ip = length(aws_instance.kafka) > 0 ? "${aws_instance.kafka.0.public_ip}" : "null"
kafka_private_ip = length(aws_instance.kafka) > 0 ? "${aws_instance.kafka.0.private_ip}" : "null"
haproxy_public_ip = "${aws_instance.haproxy.0.public_ip}"
haproxy_private_ip = "${aws_instance.haproxy.0.private_ip}"
app_public_ip = "${aws_instance.app.0.public_ip}"
app_private_ip = "${aws_instance.app.0.private_ip}"
app_private_ips = "${join("\n", aws_instance.app[*].private_ip)}"
app_public_ips = "${join("\n", aws_instance.app[*].public_ip)}"
app_public_ips_un = "${join("\n", [for ip in aws_instance.app.*.public_ip: "${ip} ansible_user=${local.admin_username}"])}"
ssh_user = "${local.admin_username}"
cluster_size = "${var.crdb_nodes}"
all_public_ips_un = "${join("\n", flatten([
[for ip in [aws_instance.haproxy.0.public_ip] : "${ip} ansible_user=${local.admin_username}"],
[for ip in aws_instance.crdb.*.public_ip: "${ip} ansible_user=${local.admin_username}"],
[for ip in aws_instance.app.*.public_ip: "${ip} ansible_user=${local.admin_username}"]
]))}"
all_public_ips = "${join("\n", compact([
aws_instance.haproxy.0.public_ip,
join("\n", aws_instance.crdb.*.public_ip),
join("\n", aws_instance.app.*.public_ip)
]))}"
})
depends_on = [
aws_instance.crdb, aws_instance.kafka, aws_instance.app, aws_instance.haproxy
]
}