Dans le monde moderne de l’infrastructure et du déploiement, l’automatisation est la clé pour garantir efficacité, rapidité et scalabilité. Deux outils phares émergent pour transformer la gestion de nos systèmes : Ansible, parfait pour la configuration et l’administration, et Terraform, idéal pour le provisionnement d’infrastructure.
Partie 1 : Installer Ansible sur une machine Debian
Pré-requis :
- Une VM Debian (10, 11 ou 12) avec accès internet
- Les droits
sudo
🔧 Étapes :
bashCopierModifiersudo apt update
sudo apt install -y ansible
Vérifier l’installation :
bashCopierModifieransible --version
Tips : Si tu veux gérer des hôtes, configure ton fichier d’inventaire :
iniCopierModifier# /etc/ansible/hosts
[web]
192.168.10.20 ansible_user=root
Tester la connexion :
bashCopierModifieransible web -m ping
Partie 2 : Installer Terraform sur une autre Debian
Pré-requis :
- Deuxième VM Debian
- Accès root ou sudo
Étapes d’installation :
bashCopierModifiersudo apt update
sudo apt install -y gnupg software-properties-common curl
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/hashicorp.gpg
echo "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update
sudo apt install terraform
Vérifier :
bashCopierModifierterraform -version
Partie 3 : Créer des VMs VMware avec Terraform et un template Debian
Prérequis :
- Un vCenter opérationnel (ou ESXi avec vSphere)
- Un template Debian prêt (par ex :
Debian12-Template
) - Un compte utilisateur avec droits sur vSphere/vCenter
- Un fichier
terraform.tf
sur la machine avec Terraform installé
Étapes :
- Télécharger le provider VMware :
bashCopierModifierterraform init
- Exemple de configuration Terraform :
hclCopierModifierprovider "vsphere" {
user = "administrator@vsphere.local"
password = "votre_mot_de_passe"
vsphere_server = "192.168.10.10"
allow_unverified_ssl = true
}
data "vsphere_datacenter" "dc" {
name = "Datacenter"
}
data "vsphere_datastore" "datastore" {
name = "datastore1"
datacenter_id = data.vsphere_datacenter.dc.id
}
data "vsphere_compute_cluster" "cluster" {
name = "Cluster-1"
datacenter_id = data.vsphere_datacenter.dc.id
}
data "vsphere_network" "network" {
name = "VM Network"
datacenter_id = data.vsphere_datacenter.dc.id
}
data "vsphere_virtual_machine" "template" {
name = "Debian12-Template"
datacenter_id = data.vsphere_datacenter.dc.id
}
resource "vsphere_virtual_machine" "vm" {
name = "Debian-Auto-01"
resource_pool_id = data.vsphere_compute_cluster.cluster.resource_pool_id
datastore_id = data.vsphere_datastore.datastore.id
num_cpus = 2
memory = 2048
guest_id = data.vsphere_virtual_machine.template.guest_id
scsi_type = data.vsphere_virtual_machine.template.scsi_type
network_interface {
network_id = data.vsphere_network.network.id
adapter_type = data.vsphere_virtual_machine.template.network_interface_types[0]
}
disk {
label = "disk0"
size = data.vsphere_virtual_machine.template.disks.0.size
eagerly_scrub = false
thin_provisioned = true
}
clone {
template_uuid = data.vsphere_virtual_machine.template.id
customize {
linux_options {
host_name = "debian-auto-01"
domain = "local"
}
network_interface {
ipv4_address = "192.168.10.100"
ipv4_netmask = 24
}
ipv4_gateway = "192.168.10.1"
}
}
}
- Lancer la création de la VM :
bashCopierModifierterraform init
terraform plan
terraform apply
Résultat :
Une VM Debian est automatiquement déployée sur ton infra VMware à partir d’un template, avec une IP et un nom personnalisé.