A
u
Belaid Youba Hadj Arab, Etienne Deneuve
Oct 4, 2023 · 4 min read

Déployer une machine virtuelle avec Terraform et Ansible

Side view worker wearing gloves

Le déploiement d’infrastructures est une pratique courante dans le monde du Cloud. Cela peut se faire d’une façon manuelle ou automatisée. Nous allons nous intéresser, dans cet article, à la deuxième façon. Pour ce faire, nous aurons besoin d’un outil très puissant qu’est Terraform, ainsi que de Ansible pour la partie configuration de l’infra.

Qu’est-ce que Terraform ?

![terraform][def2]

  • Terraform est un outil sous licence BSL utilisé pour automatiser le déploiement et la gestion d’infrastructures dans le cloud.
  • Il permet de décrire l’infrastructure souhaitée dans des fichiers de configuration et de les exécuter pour créer et gérer les ressources nécessaires.
  • Il utilise le langage HCL (HashiCorp Configuration Language, à ne pas confondre avec le chlorure d’hydrogen qui lui est un gaz :D ) .
  • Il s’agit d’un langage simple et lisible par les humains conçu pour décrire les ressources et configurations de manière déclarative.

Qu’est-ce que Ansible ?

![ansible][def3]

Ansible est un logiciel open source qui, comme Terraform, permet le déploiement d’infrastructures, mais également la gestion et la configuration des applications. Il utilise le YAML (Yet Another Markup Language) pour décrire les tâches à effectuer, ainsi que l’utilisation de playbooks pour l’automatisation des opérations.

Prérequis

Pour notre petite aventure, nous aurons besoin de certains prérequis :

  1. Une souscription Azure
  2. Azure CLI
  3. Terraform
  4. Ansible
  5. Homebrew(MacOS)
  6. Une clé SSH

Installation

1. Terraform

Ici, je vais me concentrer sur une installation avec des packages manager (type Homebrew pour Mac, et Chocolatey pour Windows) car je trouve ça plus facile.

Terraform sur macOS

  1. Installer le repository de HashiCorp pour Homebrew :
Terminal window
brew tap hashicorp/tap
  1. Puis installer Terraform :
Terminal window
brew install hashicorp/tap/terraform
  1. Pour verifier que l’installation s’est bien déroulée, lancer la commande suivante sur un terminal:
Terminal window
terraform --version
# résultat
Terraform v1.4.6

Terraform sur Linux(Ubuntu)

  1. Update le system et installer certains composants :
Terminal window
sudo apt-get update && sudo apt-get install -y gnupg software-properties-common
  1. Installer HashiCorp GPG Key :
Terminal window
wget -O- <https://apt.releases.hashicorp.com/gpg> | \
gpg --dearmor | \
sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg
  1. Vérifier la GPG Key :
Terminal window
gpg --no-default-keyring \
--keyring /usr/share/keyrings/hashicorp-archive-keyring.gpg \
--fingerprint
  1. Ajouter le repository de HashiCorp au système :
Terminal window
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] \
<https://apt.releases.hashicorp.com> $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/hashicorp.list
  1. Et enfin installer terraform :
Terminal window
sudo apt update && apt install terraform

Pour d’autres types d’installations, je vous conseille de jeter un coup d’œil à la doc de Terraform

2. Ansible

Ansible sur macOS

  1. Générer une clé SSH, qui nous sera utile plus tard :
Terminal window
ssh-keygen
  1. passer, Simplement, la commande :
Terminal window
brew install ansible
  1. Vérifier l’installation :
Terminal window
ansible –version
# résultat
ansible [core 2.13.1]

Ansible sur Linux (Ubuntu)

  1. Générer une clé SSH :
Terminal window
ssh-keygen
  1. Installer Ansible :
Terminal window
sudo apt update && apt install ansible
  1. Même verification que pour MacOS :
Terminal window
ansible –version
# résultat
ansible [core 2.13.1]

Pour plus d’information, lisez la doc de Ansible

Ansible sur Windows

Hélas, il n’existe pas de Ansible sur Windows, la meilleure solution est donc soit d’utiliser une machine virtuelle sous linux, ou bien celle que je préfère, utiliser WSL 2. Afin de rester cohérent, nous allons aussi installer Terraform avec WSL :

  1. Ouvrir une commande d’invite autant qu’administrateur, et lancer la commande suivante :
Terminal window
wsl.exe –install
  1. Une fois installé, et après avoir redémarré le système, vous pouvez lancer l’app Ubuntu depuis le menu Démarrer
  2. Vous voilà devant un terminal Ubuntu, et donc il suffit de faire les mêmes étapes vues plus haut pour l’installation de Terraform et Ansible pour Ubuntu

[def2]: . @/assets/images/blogpics/terraform-ansible/terraform-logo.png [def3]: . @/assets/images/blogpics/terraform-ansible/ansible-logo.jpg

Ansible Azure Terraform Tutorial

Articles relatifs