Le Duo Gagnant d’Ansible et Terraform

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.

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

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

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 :

  1. Télécharger le provider VMware :
bashCopierModifierterraform init
  1. 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"
    }
  }
}
  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é.

Admin

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Revenir en haut de page