Infrastructure-as-a-Service > Clusters¶
Info
L'exemple donné ici permet de déployer un cluster Kubernetes mais la même logique s'applique pour un cluster SLURM.
Warning
Il faut ajouter sa clef SSH dans son agent SSH avant d'utiliser la cli terraform.
Dépendances¶
- Le nom de l'entrée dans la config client OpenStack.
- Prefixe le nom de toutes les VMs.
- Image disque utilisée pour le déploiement des VMs.
- Le login utilisateur sous lequel se connecter à la VM.
- Le nom du gabarit (CPU/RAM/DISK) de VM à déployer.
- Le nom du réseau fournissant des IPs publiques.
- Le nom de la clef SSH à utiliser pour se connecter.
Tâches¶
~/projet-cloud/Taskfile.yaml | |
---|---|
Activation¶
~ $ cd projet-cloud
✓ ~/.pkgx/github.com/kkos/oniguruma/v6.9.8
✓ ~/.pkgx/stedolan.github.io/jq/v1.7.0
env +stedolan.github.io/jq^1.7 +github.com/mikefarah/yq^4.35.2 +terraform.io^1.5 +taskfile.dev^3.30.1 +gnu.org/coreutils^9.4
~/projet-cloud/ $
Terraform¶
Variables¶
~/projet-cloud/terraform__variables.tf | |
---|---|
Resources¶
~/projet-cloud/resource__openstack_compute_instance_v2.tf
resource openstack_compute_instance_v2 bootstrap {
name = "manager-1"
image_name = var.IMAGE_NAME
flavor_name = var.FLAVOR_NAME
key_pair = var.KEYPAIR
network {
name = var.PUBLIC_NETWORK
}
connection {
type = "ssh"
user = var.SSH_USER
host = self.access_ip_v4
}
provisioner remote-exec {
inline = [
"hostname"
]
}
}
resource openstack_compute_instance_v2 compute {
count = var.COMPUTE_COUNT
name = "compute-${count.index+1}"
image_name = var.IMAGE_NAME
flavor_name = var.FLAVOR_NAME
key_pair = var.KEYPAIR
network {
name = var.PUBLIC_NETWORK
}
connection {
type = "ssh"
user = var.SSH_USER
host = self.access_ip_v4
}
provisioner remote-exec {
inline = [
"hostname"
]
}
}
Sorties¶
~/projet-cloud/terraform__outputs.tf | |
---|---|