This commit is contained in:
parent
ecc2e332da
commit
1cb55b1fb3
@ -6,10 +6,6 @@ variable "serverctl_node_count" {
|
|||||||
default = 2
|
default = 2
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "serverctl_mesh_count" {
|
|
||||||
default = 0
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "hcloud_placement_group" "serverctl_master" {
|
resource "hcloud_placement_group" "serverctl_master" {
|
||||||
name = "serverctl_master_group"
|
name = "serverctl_master_group"
|
||||||
type = "spread"
|
type = "spread"
|
||||||
@ -74,44 +70,11 @@ resource "hcloud_server" "serverctl_node" {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "hcloud_placement_group" "serverctl_mesh" {
|
|
||||||
name = "serverctl_mesh_group"
|
|
||||||
type = "spread"
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "hcloud_server" "serverctl_mesh" {
|
|
||||||
count = var.serverctl_mesh_count
|
|
||||||
name = "serverctl-mesh-${count.index}"
|
|
||||||
image = "debian-11"
|
|
||||||
server_type = "cx11"
|
|
||||||
ssh_keys = [
|
|
||||||
var.hcloud_serverctl_ssh_key_id
|
|
||||||
]
|
|
||||||
placement_group_id = hcloud_placement_group.serverctl_mesh.id
|
|
||||||
|
|
||||||
|
|
||||||
lifecycle {
|
|
||||||
create_before_destroy = true
|
|
||||||
}
|
|
||||||
|
|
||||||
provisioner "remote-exec" {
|
|
||||||
inline = ["sudo apt update", "sudo apt install python3 -y", "echo Done!"]
|
|
||||||
|
|
||||||
connection {
|
|
||||||
host = self.ipv4_address
|
|
||||||
type = "ssh"
|
|
||||||
user = "root"
|
|
||||||
private_key = file(var.pvt_key)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "local_file" "hosts_cfg" {
|
resource "local_file" "hosts_cfg" {
|
||||||
content = templatefile("${path.module}/templates/hosts.tftpl",
|
content = templatefile("${path.module}/templates/hosts.tftpl",
|
||||||
{
|
{
|
||||||
serverctl_masters = hcloud_server.serverctl_master.*.ipv4_address
|
serverctl_masters = hcloud_server.serverctl_master.*.ipv4_address
|
||||||
serverctl_nodes = hcloud_server.serverctl_node.*.ipv4_address
|
serverctl_nodes = hcloud_server.serverctl_node.*.ipv4_address
|
||||||
serverctl_mesh_nodes = hcloud_server.serverctl_mesh.*.ipv4_address
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
filename = "ansible/inventory/hosts.cfg"
|
filename = "ansible/inventory/hosts.cfg"
|
||||||
|
@ -1,23 +1,18 @@
|
|||||||
[serverctl_master_hosts]
|
[serverctl_master_hosts]
|
||||||
%{ for ip in serverctl_masters ~}
|
%{ for ip in serverctl_masters ~}
|
||||||
${ip}
|
${ip} ansible_host=${ip} wireguard_ip=${cidrhost("192.168.0.0/24", index(serverctl_mesh_nodes, ip) + 1)}
|
||||||
%{ endfor ~}
|
%{ endfor ~}
|
||||||
|
|
||||||
[serverctl_node_hosts]
|
[serverctl_node_hosts]
|
||||||
%{ for ip in serverctl_nodes ~}
|
%{ for ip in serverctl_nodes ~}
|
||||||
${ip}
|
|
||||||
%{ endfor ~}
|
|
||||||
|
|
||||||
[serverctl_mesh_nodes]
|
|
||||||
%{ for ip in serverctl_mesh_nodes ~}
|
|
||||||
${ip} ansible_host=${ip} wireguard_ip=${cidrhost("192.168.0.0/24", index(serverctl_mesh_nodes, ip) + 1)}
|
${ip} ansible_host=${ip} wireguard_ip=${cidrhost("192.168.0.0/24", index(serverctl_mesh_nodes, ip) + 1)}
|
||||||
%{ endfor ~}
|
%{ endfor ~}
|
||||||
|
|
||||||
[serverctl_mesh_nodes:vars]
|
|
||||||
pipelining=true
|
|
||||||
ansible_ssh_user=root
|
|
||||||
ansible_ssh_port=22
|
|
||||||
|
|
||||||
[serverctl_cluster:children]
|
[serverctl_cluster:children]
|
||||||
serverctl_master_hosts
|
serverctl_master_hosts
|
||||||
serverctl_node_hosts
|
serverctl_node_hosts
|
||||||
|
|
||||||
|
[serverctl_cluster:vars]
|
||||||
|
pipelining=true
|
||||||
|
ansible_ssh_user=root
|
||||||
|
ansible_ssh_port=22
|
||||||
|
Loading…
Reference in New Issue
Block a user