Sélectionner une page
Contenu du cours
Systèmes d’Exploitation
Devenez autonome dans la gestion des environnements Linux et Windows Server. Vous apprendrez à administrer, automatiser et sécuriser les serveurs grâce à des outils et langages comme Bash, Systemd, PowerShell et Active Directory. Ce bloc développe les compétences essentielles à la maintenance et à la supervision des systèmes d’exploitation d’entreprise.
0/4
Réseaux et Télécommunications
Maîtrisez la conception, la configuration et le dépannage d’infrastructures réseau complexes. Ce module couvre les fondamentaux du modèle OSI, du subnetting, des VLAN, du routage et des services réseau (DNS, DHCP) à l’aide d’équipements professionnels (Cisco, HP). Vous apprendrez également à renforcer la sécurité et la performance des architectures réseau.
0/3
Virtualisation et Cloud
Développez une expertise en virtualisation et en Cloud Computing. Vous apprendrez à déployer des machines virtuelles avec VMware ou Proxmox, à orchestrer des conteneurs avec Docker et Kubernetes, et à utiliser les principaux Clouds publics (AWS, Azure). L’accent est mis sur l’automatisation via Terraform et Ansible pour une gestion d’infrastructure moderne et scalable.
0/4
Sécurité des Systèmes d’Information
Renforcez la résilience et la conformité des systèmes informatiques. Ce bloc vous forme au hardening des serveurs, à la configuration des pare-feu (iptables, pfSense), à la mise en place de VPN, ainsi qu’à la réalisation d’audits de sécurité. Vous serez capable d’anticiper, détecter et corriger les failles afin de protéger les infrastructures contre les cybermenaces.
0/3
DevOps et Automatisation
Intégrez les pratiques DevOps pour une gestion fluide du cycle de vie des applications. Vous apprendrez à utiliser Git, à mettre en place des pipelines CI/CD (avec Jenkins, GitLab CI), et à surveiller les systèmes via des outils d’observabilité comme Prometheus, Grafana et ELK. Ce bloc met l’accent sur l’efficacité, la collaboration et la proactivité dans la gestion IT.
0/2
Projet Final et Certification
Mettez en pratique l’ensemble des compétences acquises à travers un projet d’envergure. Vous concevrez, déploierez et documenterez une infrastructure hybride (On-Premise + Cloud), intégrant sécurité, réseau, virtualisation et DevOps. Ce projet constitue la synthèse du cursus et vous prépare directement à la certification RNCP de niveau 6 (Bac+3).
0/2
Administrateur SysOps & DevOps
À propos de la leçon

Semaine 21-22 : Infrastructure as Code (IaC) 💻

 

Objectifs pédagogiques

  • Comprendre et appliquer les concepts de l’Infrastructure as Code (IaC).
  • Automatiser le déploiement d’infrastructures complètes sur le cloud en utilisant Terraform.
  • Automatiser la configuration des serveurs et des applications à l’aide d’Ansible.
  • Intégrer les principes GitOps et CI/CD dans le cycle de vie de l’infrastructure.

 


1 — Concepts Fondamentaux de l’Infrastructure as Code (IaC)

L’Infrastructure as Code (IaC) est la gestion de l’infrastructure informatique (réseaux, machines virtuelles, bases de données) en utilisant des fichiers de configuration et du code, plutôt que des processus manuels ou interactifs.

 

Avantages de l’IaC

  • Cohérence : Garantit que l’environnement de développement, de test et de production sont identiques.
  • Vitesse : Permet le déploiement rapide et reproductible d’environnements complexes.
  • Documentation : Le code lui-même sert de documentation exacte de l’état de l’infrastructure.
  • Traçabilité : L’utilisation de systèmes de contrôle de version (comme Git) permet de suivre l’historique de chaque changement.

 

IaC : Impératif vs. Déclaratif

Modèle Description Exemple (Outil)
Déclaratif L’utilisateur décrit l’état final souhaité. L’outil détermine les étapes nécessaires pour y parvenir. (Approche privilégiée par Terraform) Terraform, Kubernetes
Impératif L’utilisateur spécifie les étapes précises (commandes) à exécuter dans un ordre donné pour atteindre l’état souhaité. Ansible, Script Shell

 


 

2 — Terraform : Outil de Provisionnement d’Infrastructure

Terraform (de HashiCorp) est l’outil standard pour le provisionnement déclaratif d’infrastructure. Il est « agnostique » (multi-cloud) et fonctionne avec AWS, Azure, GCP, VMware, etc.

 

Principes de Fonctionnement

  • Fichiers HCL : Terraform utilise le langage de configuration HashiCorp Configuration Language (HCL). Ces fichiers décrivent les ressources à créer.
  • Providers : Un provider est le « connecteur » de Terraform vers une plateforme cloud (ex: aws, azurerm).
  • State File : Terraform maintient un fichier d’état (state file) qui mappe les ressources décrites dans votre code HCL aux ressources réelles dans le cloud. Ce fichier est crucial pour le suivi des ressources.

 

Cycle de Vie Terraform

# Initialisation du répertoire et des providers
terraform init

# Planification : Affiche les changements à effectuer pour atteindre l'état souhaité (Dry Run)
terraform plan

# Application : Exécute les changements et crée/modifie/supprime les ressources
terraform apply

# Destruction : Supprime toutes les ressources gérées par ce fichier d'état
terraform destroy

 

Exemple de Ressource (HCL)

# Déclare la création d'une instance virtuelle AWS
resource "aws_instance" "srv_web" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
  tags = {
    Name = "Web-Server-IAC"
  }
}

 

3 — Ansible : Outil de Gestion de Configuration

Ansible est un outil impératif de gestion de configuration, idéal pour installer des logiciels, configurer des fichiers et démarrer des services sur des serveurs déjà provisionnés (par Terraform ou manuellement).

 

Avantages d’Ansible

  • Sans Agent : Ansible utilise SSH pour se connecter aux machines Linux et WinRM pour Windows. Il n’est pas nécessaire d’installer un logiciel client (agent) sur les serveurs cibles.
  • Idempotence : Une opération Ansible peut être exécutée plusieurs fois sans changer l’état du système après la première exécution (si elle a réussi).

 

Concepts Clés

  • Inventaire : Un fichier (souvent INI ou YAML) qui liste les hôtes cibles sur lesquels Ansible doit opérer.
  • Playbooks : Fichiers YAML qui décrivent l’ensemble des tâches à exécuter sur les hôtes, organisées en « plays » et « tasks ».
  • Modules : Des scripts intégrés qui exécutent des actions spécifiques (ex: le module ‘apt’ pour installer des paquets, le module ‘service’ pour gérer des services).

 

Exemple de Playbook (YAML)

- name: Installer et démarrer le serveur Web Nginx
  hosts: web_servers
  tasks:
    - name: Installer Nginx
      ansible.builtin.apt:
        name: nginx
        state: present

    - name: S'assurer que le service Nginx est démarré
      ansible.builtin.service:
        name: nginx
        state: started
        enabled: yes

 

4 — Intégration CI/CD et GitOps

Pour un environnement IaC complet, les fichiers de code (HCL, YAML) sont gérés par Git et déployés via des pipelines CI/CD (Continuous Integration/Continuous Delivery).

 

Principes du GitOps

Le GitOps étend l’IaC en faisant du référentiel Git la seule source de vérité pour l’état déclaratif de l’infrastructure.

  • Flux de travail : Tout changement doit être une Pull Request (PR) sur le référentiel Git, examiné et approuvé par les pairs.
  • Déploiement : Une fois fusionnée, la modification est automatiquement appliquée à l’environnement par un outil de CI/CD.

 

Pipeline CI/CD (Intégration et Livraison Continues)

Les étapes typiques d’un pipeline pour l’IaC incluent :

  1. Commit : Le code Terraform/Ansible est poussé vers Git.
  2. Build/Test (CI) : Le pipeline vérifie la syntaxe du code (linters) et exécute ‘terraform plan’.
  3. Approbation : L’administrateur approuve le plan de changement.
  4. Deploy (CD) : Le pipeline exécute ‘terraform apply’ pour appliquer les changements en production.