semaine 8 - paradigme client-serveur
Bienvenue dans le module 3 : l'entreprise
Vous savez monter UN serveur web. Une entreprise, elle, a besoin de courriel, de chat, de fichiers, de médias... Ce module : choisir un service, l'installer, l'améliorer et le livrer comme un pro.
- Le paradigme client-serveur en profondeur : protocoles et interopérabilité.
- Le quotidien de l'administrateur : apt, systemctl, journalctl.
- Le Projet Serveur Entreprise démarre cette semaine.
le paradigme
Trois étages : machine, système, logiciels
La machine physique
HP, Dell... dans un data center. Le bâtiment et le métal.
Le système d'exploitation
Linux Debian côté serveur ; Windows, macOS ou Linux côté client. Ils préparent l'espace pour que les logiciels se connectent.
Les logiciels
C'est ICI que vivent clients et serveurs. Un serveur est un logiciel qui parle à des logiciels clients.
Un pour tous : un même serveur héberge le service web, le service courriel, le service de chat... On dit « serveur de messagerie » mais on parle du SERVICE.
les termes
Protocole, standard, norme, RFC
PROTOCOLE
Les règles de communication entre client et serveur : messages préétablis, ordre des échanges.
STANDARD
Une convention nommée d'utiliser certaines règles dans un type d'application.
NORME
Un standard qui DOIT être suivi, comme un règlement ou une loi.
RFC
Request For Comments : une proposition de standard, ouverte à la révision.
interoperabilite
L'interopérabilité : le miracle des protocoles
Le serveur ne se soucie pas du logiciel que vous utilisez, tant qu'il respecte les règles :
Apache ou nginx <--> Firefox, Chrome, Safari, Brave, Lynx...
postfix <--> Thunderbird, Apple Mail, Spike, Airmail...
inspircd <--> weechat, hexchat, pidgin...
Protocole public, standardisé, devenu norme = on peut interchanger les clients ET les serveurs. Ils parlent tous le même langage.
concept fondamental
Paquet, service, processus
Trois mots qu'on confond, trois choses très différentes :
PAQUET : la boîte
L'archive qui contient les fichiers du programme (binaires, configs, doc). Sur le disque, ne fait rien tant qu'on ne l'installe pas.
SERVICE : le contrat
La promesse que le programme tourne en permanence, géré par systemd.
PROCESSUS : le vivant
Le programme en train de s'exécuter, visible dans ps aux.
root@serveur:/# apt install apache2 && systemctl enable --now apache2
apt - mise a jour
apt update et upgrade
$ sudo apt update
$ apt list --upgradable
$ sudo apt upgrade -y
$ sudo apt update && sudo apt upgrade -y
apt - installation
install, remove, purge : désinstaller proprement
$ sudo apt install apache2
$ sudo apt remove apache2
$ sudo apt purge apache2 && sudo apt autoremove
$ sudo apt install --no-install-recommends nginx
remove garde les configs dans /etc, purge fait table rase. À l'examen comme en entreprise, la nuance compte !
apt - enquete
search, show, dpkg : mener l'enquête
$ apt search 'web server'
$ apt show apache2
$ apt list --installed
$ dpkg -L apache2 | grep '/etc'
$ dpkg -S /etc/apache2/apache2.conf
apt-mark hold
Figer un paquet : apt-mark hold
Cas réel vécu dans ce cours : le noyau Linux qui marche avec VirtualBox !
$ sudo apt-mark hold linux-image-6.14.0-generic
$ sudo apt-mark hold linux-headers-6.14.0-generic
$ apt-mark showhold
$ sudo apt-mark unhold linux-image-6.14.0-generic
Ordre important : purger les vieux noyaux D'ABORD, hold ENSUITE - hold bloque aussi les suppressions.
systemctl
systemctl : le cycle de vie d'un service
$ sudo systemctl status apache2
$ sudo systemctl start apache2
$ sudo systemctl stop apache2
$ sudo systemctl restart apache2
$ sudo systemctl reload apache2
$ systemctl is-active --quiet apache2 && echo 'OK' || echo 'DOWN'
systemctl - le boot
enable, disable : le démarrage automatique
$ sudo systemctl enable --now apache2
$ systemctl is-enabled apache2
enabled
$ sudo systemctl disable bluetooth
$ systemctl list-unit-files --state=enabled
$ sudo systemctl mask wpa_supplicant
journalctl
journalctl : votre meilleur ami pour déboguer
$ sudo journalctl -u apache2 -n 30
$ sudo journalctl -u apache2 -f
$ sudo journalctl -u ssh --since 'yesterday' -p err
$ sudo systemctl restart apache2 && sudo journalctl -u apache2 -f
resume
Prêts pour l'entreprise
Le paradigme
Protocoles publics = interopérabilité totale des clients et des serveurs.
La trousse
apt gère les boîtes, systemctl gère les contrats, journalctl raconte tout.
La suite
Semaine 9 : choisir son service d'entreprise et bâtir son devis d'améliorations.
Au laboratoire de la semaine 8 : la trousse de l'administrateur, en pratique sur votre VPS.