Déployer ses ressources avec l'outil IaC Terraform !
DevOps
Publié le
Karl Certa Admin systèmes & réseaux5 ans dans l'IT, passé par le support puis l'admin sys, aujourd'hui Ops. J'apprends le cloud et je pose tout au propre ici. Focus sur l'IaC & le cloud AWS SAA, prochaine étape Kubernetes LinkedIn karlcerta.fr GitHub Karl Certa
Terraform est un outil d’infrastructure as code pour créer, modifier et versionner l’infrastructure de manière sécurisée et efficace sur tous les providers cloud.
variable "vsphere_server" { description = "Serveur vCenter" type = string default = "vcenter.example.com"}variable "vsphere_user" { description = "Utilisateur vSphere" type = string}variable "vsphere_password" { description = "Mot de passe vSphere" type = string sensitive = true}variable "vm_name" { description = "Nom de base des VMs" type = string default = "terraform-vm"}variable "vm_count" { description = "Nombre de VMs à créer" type = number default = 1}
Outputs (outputs.tf)
output "vm_name" { description = "Nom de la VM créée" value = vsphere_virtual_machine.web.name}output "vm_ip" { description = "IP de la VM" value = vsphere_virtual_machine.web.default_ip_address}output "vm_uuid" { description = "UUID de la VM" value = vsphere_virtual_machine.web.uuid sensitive = false}
📦 Modules
Créer un module
# modules/vm/main.tfresource "vsphere_virtual_machine" "this" { name = var.vm_name resource_pool_id = var.resource_pool_id datastore_id = var.datastore_id num_cpus = var.num_cpus memory = var.memory guest_id = var.guest_id network_interface { network_id = var.network_id } disk { label = "disk0" size = var.disk_size } clone { template_uuid = var.template_uuid customize { linux_options { host_name = var.vm_name domain = var.domain } network_interface { ipv4_address = var.ip_address ipv4_netmask = 24 } ipv4_gateway = var.gateway } }}# modules/vm/variables.tfvariable "vm_name" { description = "Nom de la VM" type = string}variable "num_cpus" { description = "Nombre de CPUs" type = number default = 2}variable "memory" { description = "Mémoire en MB" type = number default = 4096}