Administration Linux
Mémo
1. Mémoire et charge2. Stockage : chemin logique3. LVM : intérêt et grandes notions4. Réseau : Modèle OSI et commandes5. MariaDB - admin. Linux6. MariaDB - admin. SGBD7. NGINX8. Logs9. Dépannage10. Sauvegarde et restauration
TP
TP-01-Authentification SSHTP-02-Installation de MariaDBTP-03-Administration de MariaDBTP-04-NGINX serveur webTP-05-NGINX load balancerTP-06-NGINX reverse proxyTP-07 - Activer HTTPS avec Let’s EncryptTP-08 - Sauvegarde avec tar, scp, rsync et CronTP-09 - Rsync : changements et points de récupérationTP-10 - Stratégies de sauvegarde avec tar
Cours
1. Administration des systèmes Linux — Introduction
Récapitulatif des commandes Linux1.1 Le rôle de l’administrateur Linux1.2 RAM, mémoire virtuelle et cache1.3 Le swap1.4 Lire l’état de la mémoire1.4.1 Comprendre free1.4.2 Comprendre top1.4.3 Comprendre /proc/meminfo1.5 Observer l’évolution avec vmstat1.6 Repérer un processus gourmand1.7 La méthode de diagnostic DevOps
1. Administration des systèmes Linux — Introduction - strict
Objectif PédagogiqueCompétences AcquisesPrérequisIntroductionI - Gestion de la mémoireA - Affichage de la mémoire et du cacheB - Gestion de l'espace d'échange ou SWAPb.1 - présentationb.2 - Utilisation globaleb.3 - Le fichier /proc/meminfob.4 - La commande vmstatb.5 - Gestion des processus gourmands en mémoireb.5.1 - La commande psb.5.2 - La commande kill
2. Comprendre le stockage sous Linux
Récapitulatif des commandes Linux2.1 La chaîne complète du stockage2.2 Le vocabulaire indispensable2.3 Découper le disque avec des partitions2.3.1 MBR et GPT2.3.2 Partitionner n’est pas formater2.4 Organiser les données avec un système de fichiers2.4.1 Les principaux systèmes de fichiers2.4.2 La journalisation2.5 Rendre le stockage accessible grâce au montage2.5.1 Le point de montage2.5.2 Pourquoi utiliser un UUID ou un LABEL ?2.5.3 Le rôle de /etc/fstab2.6 Pourquoi LVM existe-t-il ?2.6.1 PV, VG et LV2.6.2 Agrandir et réduire un volume2.7 Ce qu’un DevOps doit diagnostiquer
2. Gestion du stockage - strict
2.1 Présentation2.2 Partition standard2.3 Le système de fichiers2.3.1 Quelques mots sur la journalisation2.4 Points de montage sous Linux2.4.1 Présentation2.4.2 Monter un périphérique2.4.3 Démonter un périphérique2.5 Le fichier /etc/fstab2.5.1 Présentation2.5.2 Explications2.6 Créer une partition avec fdisk2.6.1 Présentation2.6.2 Utilisation2.7 Supprimer une partition2.8 LVM sous Linux2.8.1 Présentation2.8.2 Fonctionnement2.8.3 Avantages et gestion2.8.3.1 Afficher les volumes physiques existants2.8.4 groupes de volumes2.8.5 Volumes logiques2.8.6 Formatage et montage de volumes logiques2.8.7 Extension des systèmes de fichiers existants2.8.8 Réduction de la taille du système de fichier
3. Gestion du réseau
Récapitulatif des commandes3.1 La carte générale du réseau3.2 TCP/IP et modèle OSI3.3 Adresse IP, masque et route3.4 DNS : passer d’un nom à une adresse3.5 Ports, sockets et outils de test3.6 Pare-feu : autoriser seulement le nécessaire3.7 SSH : administration distante sécurisée3.8 Méthode de diagnostic
3. Gestion du réseau - strict
3.1 A - Introduction3.2 B - Réseau TCP/IP3.3 C - Modèle OSI3.3.1 c.1 - Présentation3.3.2 c.2 - Les couches du modèle OSI3.3.3 c.3 - Adresse IP3.3.4 c.4 - Classes d'adresses IP3.3.5 c.5 - Adressage IP3.3.6 c.6 - Masque de sous-réseau3.3.7 c.7 - Sockets et numéros de port3.3.8 c.8 - Système de noms de domaine (DNS)Qu'est-ce qu'un serveur DNS ?Fonctionnement d'un serveur DNS3.3.9 c.9 - Routage3.3.10 c.10 - Protocole Internet version 6 (IPv6)3.3.11 c.11 - La commande ip sous Linux3.3.12 c.12 - Adresses IP publiques et privées3.3.13 c.13 - La commande PING3.3.14 c.14 - DHCP3.3.15 c.14 - DNS et fichier /etc/resolv.conf3.3.16 c.15 - La commande HOST3.3.17 c.16 - La commande hostname3.3.18 c.17 - Routage3.3.19 c.18 - La commande netcatOutil : Netcat ( nc )Syntaxe de base :Modes de fonctionnement :3.3.20 c.19 - Nmap3.3.21 c.20 - IPTABLESAjout de règlesEnregistrement et restauration des règlesSuppression de règles3.3.22 c.21 - UFW (Uncomplicated Firewall)3.3.23 c.22 - Netstat3.3.24 c.23 - Présentation SSHSSH (Secure Shell)Fonctionnement de SSHMéthodes d'authentification SSHGénération d'une paire de clés SSHGestion des clés SSH
4. Gestion des bases de données — MariaDB
Récapitulatif des commandes4.1 Rôle de MariaDB4.2 Service, configuration et sécurité4.3 Comptes et privilèges4.4 DDL et manipulation des données4.5 Sauvegarde et restauration4.6 Performance
4. Gestion des bases de données — MariaDB - strict
4.1 A - PrésentationMariaDB : serveur de base de données relationnelleÉditions principales de MariaDB4.2 B - Installation et configuration4.2.1 b.1 - Installation sur Ubuntu Server4.2.2 b.2 démarrer et activer MariaDB4.2.3 b.3 - Gestion du service MariaDB4.2.4 b.4 - Sécuriser MariaDB4.3 Administration4.3.1 c.1 - Configurer un utilisateur authentifié par mot de passe4.3.2 c.2 - Actions courantes d'administration MariaDB4.3.3 c.3 - Commande SQL pour administrer une base de données4.3.4 c.4 - Commandes de base de données MySQL - Langage de définition de données (DDL)4.3.5 c.5 - Commandes pour gérer les tables4.3.6 c.6 - Sauvegarde et restauration4.4 D - Configurez MariaDB pour des performances optimales4.4.1 d.1 - Spécifier la taille du pool de tampons InnoDB4.4.2 d.2 - Désactiver le SWAP4.4.3 d.3 - Spécifier le nombre maximal de connexions4.4.4 d.4 - Désactiver les recherches DNS MariaDB/MySQL4.4.5 d.5 - Définir la taille du cache de requête4.4.6 d.6 - Spécifier la durée des connexions inactives4.4.7 d.7 - Activer les journaux de requêtes lentes4.5 Questionnaire
5. NGINX
Récapitulatif des commandes5.1 Les rôles de NGINX5.2 Fichiers de configuration5.3 Directives, blocs et contextes5.4 Construire un serveur web5.5 location et routage5.6 Variables NGINX5.7 Contenu statique, include et try_files5.8 Redirections et HTTPS5.8.1 Ce qui se passe lors d’une connexion TLS5.9 Logs et validation5.10 Reverse proxy5.10.1 Transmettre les en-têtes à l’applicationComparer les deux requêtesConserver le contexte du client pour une applicationPourquoi un en-tête paraît manquer ?Quand le backend lui-même utilise HTTPS5.11 Équilibrage de charge5.11.1 Le groupe de backends5.11.2 Round-robin : à tour de rôle5.11.3 Least connections : connexions activesExemple du support Liora5.11.4 IP hash : affinité et sessionsVariante du support Liora5.11.5 Weight : capacités différentesExemple pondéré du support Liora5.11.6 Choisir et vérifier une stratégie5.12 HTTPS et certificats gratuits avec Let’s EncryptPourquoi un certificat ?Comment le domaine est-il validé ?Commandes essentielles sur UbuntuRenouvellement et diagnosticSources officielles5.13 Configurer TLS sur NGINX5.13.1 Repérer le certificat et la clé5.13.2 Deux blocs : HTTP et HTTPS5.13.3 Tester, recharger et comprendre le résultat5.13.4 Terminaison TLS et application derrière NGINX5.13.5 Diagnostiquer et renouveler
5. NGINX - strict
5.1 A - Présentation de NGINX5.2 B - Création d'un nom de domaine5.3 C - Installation de NGINX5.4 D - Configuration de NGINX5.5 E - Configurer un serveur web de base5.5.1 e.1 - Premier fichier de configuration5.5.2 e.2 - Comment valider et recharger les fichiers de configuration5.5.3 e.3 - Comprendre les directives et les contextesPrincipaux contextes dans NGINX5.5.4 e.4 - Servir du contenu statique avec NGINX5.5.5 e.5 - Gestion des types de fichiers statiques5.5.6 e.6 - Inclure des fichiers de configuration partiels5.5.7 e.7 - Routage dynamique avec NGINX5.5.8 e.8 - Variables dans NGINX5.5.9 e.9 - Redirections et réécritures5.5.10 e.10 - Essayer plusieurs fichiers5.5.11 e.11 - Logs NGINXCas pratique5.6 F - Pile LEMP5.6.1 f.1 - Introduction5.6.2 f.2 - Composants de la pile LEMP5.6.3 f.3 - Installation5.6.4 f.4 - Créer une base de données pour WordPress5.6.5 f.5 - WordPress5.6.6 f.6 - Hôtes virtuels NGINXMise en situation5.6.7 f.7 - Installation Web complète de WordPress5.6.8 f.8 - Activer HTTPS sur WordPress avec Let's Encrypt5.7 G - NGINX comme proxy inverse5.7.1 g.1 - Présentation5.7.2 g.2 - Avantages et caractéristiques du proxy inverse5.7.3 g.3 - Configuration5.7.4 g.4 - Transmission des en-têtes de requête5.7.5 g.5 - Options courantes de proxy inverse Nginx5.8 H - NGINX comme équilibreur de charge5.8.1 h.1 - PrésentationComment fonctionne NGINX ?5.8.2 h.2 - Configurer NGINX en tant qu'équilibreur de charge5.8.3 h.3 - Méthodes d'équilibrage de charge5.8.4 h.4 - Équilibrage de charge avec HTTPS activé5.8.5 h.5 - Contrôles de santé des serveurs back-end
6. Gestion des logs sous Linux
1. Où se trouvent les logs sous Linux ?2. Comment est constitué un log ?3. Les principaux journaux3.1 Les journaux texte3.2 Les journaux binaires4. Lire et suivre les logs4.1 systemd, systemctl et journalctl4.2 Lire et rechercher dans un fichier de log4.3 Suivre un problème en temps réel5. Syslog et rsyslog5.1 Le principe de Syslog5.2 rsyslog sous Ubuntu5.3 Configuration du démon rsyslog6. Comprendre les règles rsyslog6.1 Où se trouvent les règles ?6.2 Ajouter, modifier ou supprimer une règle6.3 Structure d'une règle6.4 Facility : l'origine ou la catégorie du message6.5 Severity : le niveau de gravité6.6 Exemple complet7. Rotation des journaux avec logrotate7.1 Pourquoi effectuer une rotation ?7.2 logrotate, l'utilitaire7.3 Exemple de configuration8. Utiliser les logs pour diagnostiquer un problème
6. Gestion des logs et performances - strict
6.1 A - Introduction6.2 B - Recherche des journaux système Linux6.3 C - Affichage du contenu d'un fichier journal Linux6.3.1 c.1 - Présentation6.3.2 c.2 - Fichiers journaux en texte brut6.3.3 c.3 - Fichiers journaux binaires6.3.4 c.4 - Configuration du démon syslog6.4 D - Rotation des fichiers journaux sous Linux6.5 E - Configuration du démon logrotate6.6 F - Gestion des performances6.6.1 f.1 - La commande TOP6.6.2 f.2 - La commande htop
7. Troubleshooting — Dépannage
7.1 La méthode générale7.2 Carte des réflexes7.3 Commandes de dépannageA — RéseauA.1 — SortantA.2 — EntrantA.3 — DNSB — AdministrationB.1 — ServicesB.2 — PerformanceB.3 — Matériel / NoyauC — Accès / AuthentificationC.1 — IdentitéC.2 — PermissionsC.3 — AuthentificationD — ApplicatifD.1 — ServiceD.2 — ConfigurationD.3 — PortD.4 — Logs7.4 Use cases : Réseau7.4.1 Connexion sortante — « La machine n'accède pas au réseau / à Internet »7.4.2 Connexion entrante — « On n'arrive pas à joindre mon serveur »7.4.3 DNS — « L’IP fonctionne, mais pas le nom »7.5 Use cases : Administration système7.5.1 Services7.5.2 Performance7.5.3 Matériel / noyau7.6 Use cases : Accès et authentification7.7 Use cases : Applicatif7.8 Diagnostiquer puis agir : les actions correctives
7. Troubleshooting — Dépannage - strict
7.1 A - Présentation7.2 B - Dépannage Réseau7.3 C - Connexions sortantes7.4 D - Connexions entrantes7.5 E - Résoudre les problèmes matériels7.6 F - Dépanner la charge du système7.6.1 f.1 - Utilisation de la mémoire7.6.2 f.2 - Vider les caches de page7.6.3 f.3 - Charge du processeur
8. Sauvegarde et restauration
8.1 Pourquoi sauvegarder ?8.2 Types de sauvegardes8.2.1 Sauvegarde complète8.2.2 Sauvegarde incrémentale8.2.3 Sauvegarde différentielle8.3 Objectifs de reprise et règle 3-2-18.4 Rsync8.4.1 Lire ce que rsync va modifier avec -i8.4.2 Simulation, progression et filtrage8.4.3 --backup : conserver les fichiers remplacés ou supprimés8.4.4 --remove-source-files : transférer puis retirer la source8.5 Cron : automatiser sans oublier la supervision8.5.1 Petit rappel et bonnes pratiques8.5.2 Où vérifier les logs Cron ?8.6 Tar : regrouper et compresser8.6.1 Créer l’archive et choisir son emplacement8.6.2 Modifier ou extraire une partie d’une archive8.6.3 Quel lien entre tar et rsync ?8.6.4 SCP : copie ponctuelle via SSH8.7 La restauration est le vrai test
8. Sauvegarde et restauration - strict
8.1 A - Présentation8.2 B - La sauvegarde de données8.2.1 b.1 - Présentation8.3 C - Reprise après sinistre8.4 D - Protection des données sous Linux8.5 E - Qu'est-ce que l'outil Rsync ?8.5.1 e.1 - Présentation8.5.2 e.2 - Syntaxe de baseQu'est-ce que le facteur d'accélération ?8.5.3 e.3 - Les options Rsync8.5.4 e.4 - Différence entre fichiers sources et destinationCopier des fichiers à distance8.5.5 e.5 - Supprimer les fichiers sources après le transfert8.5.6 e.6 - Simulation avec rsync8.5.7 e.7 - Taille maximale et minimale du transfert8.6 F - Tâches CRON8.6.1 f.1 - Présentation8.6.2 f.2 - Installation de cron8.6.3 f.3 - Configuration simple du CRON8.6.48.7 G - TAR pour la sauvegarde et la restauration8.7.1 g.1 - Présentation8.7.2 g.2 - Syntaxe8.7.3 g.3 - Créer une archive tar8.7.4 g.4 - Créer une archive Tar Gzip8.7.5 g.5 - Lister le contenu de l'archive tar8.7.6 g.6 - Extraire une archive Tar8.7.7 g.7 - Extraire une archive Tar Gzip8.7.8 g.8 - Extraire dans un répertoire différent8.7.9 g.9 - Ajouter ou supprimer des fichiers dans une archive Tar8.7.10 g.10 - Extraire plusieurs fichiers d'une archive Tar8.8 H - Restauration