Pour un rendu optimal, activez JavaScript

[My Ansible Journey] Présentation et prérequis

 ·  ☕ 3 min de lecture  ·  🦆 Jeremy

Partie 1 : Présentation et prérequis
Partie 2 : Bases et premiers Playbook
Partie 3 : Les Variables
Partie 4 : Les Collections
––

Update 01/06/2020 : utilisation des venv

J’ai décidé de commencer une serie d’article sur Ansible, l’objectif n’est pas de se substituer à la documentation officielle, ni aux nombreux tutos que vous vous pouvez trouver sur le net, mais plutôt une présentation de la façon dont je l’utilise.

Dans la suite des articles, j’utiliserai Ansible principalement pour VMware, mais aussi pour Veeam et DataCore. Et bien sûr le le stack TIG (Telegraf InfluxDB Grafana) pour monitorer tout ça !

Qu’est-ce que Ansible

Ansible est une plateforme développée à l’origine par Ansible Inc, qui a été racheté par RedHat en 2015. Deux objectifs principaux à Ansible :

  • Déploiement automatique d’application
  • Gestion et maintien en conformité des configurations

La particuliarité d’Ansible par rapport aux autres solutions d’automatisation (Puppet, Chef, Salt…) et le fait qu’il ne s’appuie pas sur un modèle client-serveur mais qu’il utilise SSH pour piloter les nodes.

Autre différenciateur fort, la version libre n’est plus restreinte techniquement par à la version commerciale, et ceci depuis le rachat par RedHat.

Ansible doit être installé sur Linux. Suite à l’installation (très simple) on peut exécuter des “Playbook” ed la manière que l’on exécute des scripts avec Python ou PowerShell. Pas besoin de paramétrage complexes ou d’interface graphique.

Si vous souhaitez en savoir plus sur Ansible, c’est ici que ça se passe : https://docs.ansible.com/ansible/latest/index.html

On reviendra plus en détail sur le fonctionnement d’Ansible dans les prochains articles.

WSL

Premier point, j’utilise principalement Ansible depuis mon poste Windows 10 via WSL (Windows Subsystem for Linux), cela me permet donc de ne pas avoir à utiliser une VM dédiée.

Pourquoi ? Car c’est pratique ! Je peux éditer et exécuter mes Playbook avec Visual Code, ce qui simplifie la gestion. Le tout avec une intégration Git, et tout devient simple, ou presque :)

Vous pouvez retrouver la procédure officile d’installation de WSL ici : https://docs.microsoft.com/fr-fr/windows/wsl/install-win10. Mais il est aussi de l’installer directement via PowerShell. Activation de WSL (nécessite un redémarrage):

1
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Téléchargement de la distribution souhaitée, ici exemple avec Ubuntu 18.04:

1
Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1804 -OutFile Ubuntu.appx -UseBasicParsing

Puis installation:

1
Add-AppxPackage .\Ubuntu.appx

Ubuntu 18.04 sera alors disponible dans votre menu démarré:

L’installation va se poursuivre, il vous demandera également un nom d’utilisateur et mot de passe:

Puis on peut mettre à jour les paquets:

1
sudo apt update && sudo apt upgrade

VirtualEnv

VirtualEnv permet, à l’intérieur d’un dossier, d’avoir à la fois les binaires Python ainsi que les librairies nécessaires pour un projet. Dans notre cas cela propose deux avantages:

  • Utilisation d’une version Ansible à jour et surtout isolée (via Python Pip)
  • Installation des librairies spécifiques à certains projets (via Pip également)

Installation de VirtualEnv

1
sudo apt-get install virtualenv

Création d’un virtualenv avec Python3 que l’on va appeler ansible:

1
virtualenv -p /usr/bin/python3 ansible

Activation du venv:

1
source ansible/bin/activate

On note le (ansible) qui indique que l’on est dans le venv. Pour en sortir il faut utiliser la commande deactivate

Installation Ansible

On installe Ansible via Pip:

1
pip install ansible

Vérification de la version d’Ansible et de python:

1
ansible --version

Visual Code

J’utilise Visual Code pour tous mes projets, les Playbook Ansible en font parti, rien d’original ! Très bon produit avec de nombreux Plugins pratiques et multiplateforme.

https://code.visualstudio.com/

Ceci nous fait une bonne base pour commencer avec Ansible sur WSL, suite au prochain épisode !

Partagez