L’environnement

La description de votre infrastructure par des fichiers de configuration (Infrastructure as Code – IaC) permet de profiter de toutes les pratiques de développement : documentation complète, versionnage, travail collaboratif, déploiement continu, détection automatique de failles, réutilisation de code, etc. C’est aujourd’hui un incontournable de l’approche DevOps.

Parmi les outils de l’Infrastructure as Code, Ansible (ou ses concurrents comme Chef, Puppet, Saltstack…) permet de décrire la configuration logicielle des machines de votre parc (serveur physique ou virtuel, hyperviseur, équipement réseau…).

Objectifs pédagogiques

À l’issue de la formation, les stagiaires seront capables de :

  • Comprendre les principes de l’Infrastructure as Code
  • Connaître les concepts d’Ansible
  • Savoir gérer une infrastructure avec Ansible

Public concerné

Administrateurs systèmes et réseaux, développeurs.

Prérequis

  • Linux – bases de l’administration : arborescence standard du système, manipulation de fichiers de configuration, utilisation de bash, paquets, utilisateurs, permissions, processus, services.
  • Git : versionnage, commit, branche, utilisation de la commande git (clone, commit, merge, status, log, history, rebase).
  • YAML : syntaxe de base.
  • Notion de template (par exemple Jinja).

Un questionnaire de pré-formation est proposé pour valider l’adéquation entre le besoin et la formation.

Programme de la formation

Orchestration – introduction

  • Concepts de l’Infrastructure as Code, idempotence
  • Introduction aux playbooks d’Ansible
  • Écriture de fichiers de configuration pour le déploiement de paquet
  • Mise en pratique : dans un dépôt versionné, écriture d’un playbook pour l’installation de paquets

Orchestration – gestion d’une infrastructure

  • Exécution distante avec Ansible, « ansible inventory »
  • Notion d’état. Exemples détaillés :
    – Paquets
    – Configuration réseau
    – Fichier de configuration
    – Services actifs
  • Gestion de fichiers de configuration paramétrés :
    – Templates Jinja2 utilisant Variables et Facts
  • Organisation du code et bonnes pratiques
  • Mise en pratique pour le déploiement d’un service
  • Mise en place d’une infrastructure et des services associés : utilisateurs, services ssh, montages réseau, automatisation des mises à jour.