Skip to main content

Mise en place & Get Started

Prérequis :

  • Avoir un poste Linux
  • Avoir Docker et Docker Compose d'installé 
Installation Ansible

Pour installer Ansible sur linux il convient d'exécuter la commande d'installation suivante : 

sudo apt install ansible python3-pip -y

Et pour avoir le lint d'aide : 

pip install ansible-lint

Créer des “faux serveurs” avec Docker

Pour ce faire nous allons écrire un docker-compose contenant 4 services tirant les images ubuntu : 

version: "3"

services:
  marseille:
    image: ubuntu:22.04
    container_name: marseille
    command: sleep infinity

  nantes:
    image: ubuntu:22.04
    container_name: nantes
    command: sleep infinity

  paris:
    image: ubuntu:22.04
    container_name: paris
    command: sleep infinity

  vps:
    image: ubuntu:22.04
    container_name: vps
    command: sleep infinity

Puis créer les conteneurs : 

docker compose up -d

Préparer les containers (IMPORTANT) -> Ansible a besoin de Python minimum.

docker exec -it marseille apt update
docker exec -it marseille apt install -y python3

docker exec -it nantes apt update && docker exec -it nantes apt install -y python3
docker exec -it paris apt update && docker exec -it paris apt install -y python3
docker exec -it vps apt update && docker exec -it vps apt install -y python3
Créer un inventaire

Créer le fichier suivant inventory.yml :

all:
  children:
    main:
      hosts:
        marseille:

    backup:
      hosts:
        nantes:
        paris:

    brain:
      hosts:
        vps:

  vars:
    ansible_connection: docker
    ansible_python_interpreter: /usr/bin/python3

Ici on utilise la connexion Docker (pas SSH).

Test de base de l'inventaire : ansible all -i inventory.yml -m ping

Créer un playbook 

Par exemple nous créer le fichier helloworl.yml et y mettre la configuration suivante : 

- hosts: all
  become: true
  tasks:
    - name: Install curl
      apt:
        name: curl
        state: present
        update_cache: yes

    - name: Create test file
      file:
        path: /tmp/ansible_test
        state: touch

Puis exéctuer le playbook sur les "serveurs" : ansible-playbook -i inventory.yml helloworl.yml

Pour vérifier le bon déroulement du playbook nous allons voir si le fichier ansible_test a bien été créé dans les conteneurs : 

docker exec -it marseille ls /tmp

 

Une fois un playbook exécuté, les conteneurs vont garder leurs états et la configuration. Pour nettoyer les serveurs et repartir de zéro,  il faut exécuter la commande suivante : docker compose down -v