2022-05-26 17:31:39 +02:00
|
|
|
|
|
|
|
# Création d'une ressource de paire de clés SSH
|
|
|
|
resource "openstack_compute_keypair_v2" "provision_keypair" {
|
2022-06-16 17:53:38 +02:00
|
|
|
provider = openstack.ovh
|
2022-05-26 17:31:39 +02:00
|
|
|
name = "provision_keypair"
|
2022-06-16 17:53:38 +02:00
|
|
|
public_key = file(var.ssh_public_key)
|
2022-05-26 17:31:39 +02:00
|
|
|
}
|
|
|
|
|
2022-06-16 17:53:38 +02:00
|
|
|
resource "openstack_compute_instance_v2" "mongo_gateways" {
|
2022-05-26 17:31:39 +02:00
|
|
|
count = var.mongo_groups_count
|
|
|
|
name = "prod-gateway${count.index}" # Nom de l'instance
|
2022-06-16 17:53:38 +02:00
|
|
|
provider = openstack.ovh # Nom du fournisseur
|
|
|
|
image_name = "Debian 11" # Nom de l'image
|
|
|
|
flavor_name = "s1-2" # Nom du type d'instance
|
2022-05-26 17:31:39 +02:00
|
|
|
# flavor_name = "s1-8" # Nom du type d'instance
|
|
|
|
# flavor_name = "d2-8" # Nom du type d'instance
|
|
|
|
# Nom de la ressource openstack_compute_keypair_v2 nommée test_keypair
|
|
|
|
key_pair = openstack_compute_keypair_v2.provision_keypair.name
|
2022-06-16 17:53:38 +02:00
|
|
|
power_state = var.mongo_servers_enable ? "active" : "shutoff"
|
2022-05-26 17:31:39 +02:00
|
|
|
|
|
|
|
metadata = {
|
2022-06-16 17:53:38 +02:00
|
|
|
ansible_group = "gateways"
|
|
|
|
mongo_group_id = count.index
|
2022-05-26 17:31:39 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
# Ajoute le composant réseau pour atteindre votre instance
|
|
|
|
network {
|
2022-06-16 17:53:38 +02:00
|
|
|
name = "Ext-Net"
|
2022-05-26 17:31:39 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
# Création d'une instance
|
|
|
|
resource "openstack_compute_instance_v2" "mongo_servers" {
|
|
|
|
count = var.mongo_replicas_count * var.mongo_groups_count
|
|
|
|
name = "prod-server${count.index}" # Nom de l'instance
|
2022-06-16 17:53:38 +02:00
|
|
|
provider = openstack.ovh # Nom du fournisseur
|
|
|
|
image_name = "Debian 11" # Nom de l'image
|
|
|
|
flavor_name = "s1-2" # Nom du type d'instance
|
2022-05-26 17:31:39 +02:00
|
|
|
# flavor_name = "s1-8" # Nom du type d'instance
|
|
|
|
# flavor_name = "d2-8" # Nom du type d'instance
|
|
|
|
# Nom de la ressource openstack_compute_keypair_v2 nommée test_keypair
|
|
|
|
key_pair = openstack_compute_keypair_v2.provision_keypair.name
|
2022-06-16 17:53:38 +02:00
|
|
|
power_state = var.mongo_servers_enable ? "active" : "shutoff"
|
2022-05-26 17:31:39 +02:00
|
|
|
|
|
|
|
metadata = {
|
2022-06-16 17:53:38 +02:00
|
|
|
ansible_group = "mongos"
|
|
|
|
mongo_group_id = floor(count.index / var.mongo_replicas_count)
|
|
|
|
mongo_group_index = count.index % var.mongo_replicas_count
|
2022-05-26 17:31:39 +02:00
|
|
|
}
|
|
|
|
# Ajoute le composant réseau pour atteindre votre instance
|
|
|
|
network {
|
2022-06-16 17:53:38 +02:00
|
|
|
name = "Ext-Net"
|
2022-05-26 17:31:39 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
# provisioner "local-exec" {
|
|
|
|
# command = "cd ../ansible && ansible-playbook -i inventories/terraform --private-key ${var.ssh_private_key} -e 'pub_key=${var.ssh_public_key}' playbook.yml --limit ${self.name}"
|
|
|
|
# environment = {
|
|
|
|
# ANSIBLE_HOST_KEY_CHECKING = "False"
|
|
|
|
# }
|
|
|
|
# }
|
|
|
|
}
|