Merge branch 'master' into ansible
commit
c70834d1e5
|
@ -0,0 +1,109 @@
|
|||
# Réunion IN
|
||||
|
||||
* Date : Samedi 22 Juin 2024
|
||||
* Lieu : MB87 et Galène <https://galene.crans.org/group/CA>
|
||||
* Début : 14h23 - reprise à 15h20
|
||||
* Fin : 16h07
|
||||
|
||||
## Présent⋅es
|
||||
|
||||
* GaBo
|
||||
* [Chiaroush](https://wiki.crans.org/WikiChiaroush)
|
||||
* [vanille](https://wiki.crans.org/VanilleNiven)
|
||||
* lzebulon
|
||||
* Otthorn
|
||||
* [RDB](https://wiki.crans.org/WikiRDB)
|
||||
* [bleizi](https://wiki.crans.org/WikiBleizi)
|
||||
* [Aplanos](https://wiki.crans.org/WikiAplanos)
|
||||
|
||||
## Ordre du jour
|
||||
|
||||
* Clé usb d’installation de 128go avec ventoy ou équivalent pour les
|
||||
installations
|
||||
* commande des disques (si pas fait d’ici là, rappeler GaBo) (ou le faire en
|
||||
live)
|
||||
* [GaBo] Ansible est trop vieux (drop de support de certain plugin, peut pas
|
||||
relancer les playbooks. Marche encore avec ansible_2_14)
|
||||
* [Otthorn] ssh -L 1636:tealc.adm.crans.org:636 tealc.adm.crans.org pas le bon
|
||||
LDAP, faut utiliser wall-e
|
||||
* [Otthorn] Action deny sur WikiMoinMoin
|
||||
* [Lzebulon] Point sur les backups : ne semble pas fonctionner
|
||||
(backup-{thot,ft} non contactable)
|
||||
* VM Collabora
|
||||
* [Gabo] Ecriture du guide pour faire des VM dans la documentation
|
||||
* Owncloud : soucis de LDAP
|
||||
* Gitlab : à mettre à jour au plus vite (on est en 16.1)
|
||||
|
||||
### Clé USB d'installation 128 go Ventoy
|
||||
|
||||
(En référence à une conversation du 16 Mai 2024)
|
||||
Une seule clé avec plusieurs ISO plutôt que clés nombreuses avec distros
|
||||
différents -> Problèmes de sécurité, mais intéressant pour les nounous
|
||||
Le logiciel proposé (Ventoy) est plutôt répandu/réputé mais pas terrible.
|
||||
Problèmes de sécurité entre-autre.
|
||||
On propose de faire minimaliste sans utiliser le logiciel Ventoy. Ce serait
|
||||
intéressant parce que ça nous épargnerait le trousseau de clés (qui a été
|
||||
perdu il paraît), à discuter au prochain CA.
|
||||
GaBo propose de partir sur 5 clés de 128 go -> 1 clé / Nounous présentes sur
|
||||
le plateau.
|
||||
GaBo propose 64 go. 128 go lui paraît overkill. Pas de différence trop grande
|
||||
en terme de prix -> On part sur du 128 go.
|
||||
En Install Party, on fait rarement plus de 5 installs en parallèle.
|
||||
(Prendre en compte qu'il y a toujours une clé qui est perdue...)
|
||||
|
||||
Projet apprenti rigolo de créer un script qui génère les clés (mettre tel
|
||||
OS sur une clé).
|
||||
|
||||
### Commande des disques
|
||||
|
||||
Les disques sont commandés et arrivés !
|
||||
Il reste les ventilos.
|
||||
GaBo a payé avec sa carte, il attend le remboursement de la part du Trésorier
|
||||
(Macéo) pour procéder à l'achat des ventilos.
|
||||
|
||||
Avons-nous prévu un moment pour installer les nouveaux disques ? <- On en a
|
||||
discuté dans le point disques du CA.
|
||||
|
||||
### Ansible
|
||||
|
||||
On a plein de version de retard (on est en 2.14 et la version actuelle est la
|
||||
10).
|
||||
<https://endoflife.date/ansible>
|
||||
Il faudrais mette ça à jour : plugin LDAP et README en particulier et
|
||||
peut-être le plugin pass. On eput essayer de faire en même temps que
|
||||
l'install de Colabora
|
||||
|
||||
### WikiMoinMoin
|
||||
|
||||
On a des soucis avec l'action "deny" qui ne permettait de voir une page
|
||||
privée. Otthorn a fait un proof au concept de l'erreur. Il a réactivé deny,
|
||||
c'est bon. Mais on sait pas pourquoi ça avit été désactivé il y a
|
||||
longtemps.
|
||||
|
||||
### Backups
|
||||
|
||||
Faut se bouger pour aller voir VR en vrai à une de leurs permanences. C'est
|
||||
peut-être juste l'ethernet qui est débranchée. (Et potentiellement aussi
|
||||
changer pour un cable qui fonctionne)
|
||||
|
||||
Faire les backups correctement (comme l’a indiqué Otthorn, en excluant les
|
||||
trucs reliés à postgress et utilisé le hook conçu pour)
|
||||
voir dans la config ansible
|
||||
|
||||
### Colabora
|
||||
|
||||
(Pigeon : Si vous arrivez à setup colabora hésitez pas, onlyoffice c'est
|
||||
chiant je comprends rien à comment ça fonctionne)
|
||||
|
||||
### Owncloud
|
||||
|
||||
La config a disparu par magie (À enquêter)
|
||||
|
||||
### GitLab
|
||||
|
||||
Il faut mettre à jour. (On le fera vers juste après l’IN)
|
||||
|
||||
### Documentation
|
||||
|
||||
GaBo a été désigné grand gagnant de qui s'occupera de la documentation
|
||||
d'Ansible.
|
|
@ -0,0 +1,211 @@
|
|||
# Réunion IN
|
||||
|
||||
* Date : Jeudi 29 Août 2024
|
||||
* Lieu : MB87 et Galène <https://galene.crans.org/group/CA>
|
||||
* Début : 18h58
|
||||
* Fin : 21h
|
||||
|
||||
## Présent⋅es
|
||||
|
||||
* [bleizi](https://wiki.crans.org/WikiBleizi)
|
||||
* [Pigeon Moelleux](https://wiki.crans.org/WikiPigeonMoelleux)
|
||||
* GaBo
|
||||
* [vanille](https://wiki.crans.org/VanilleNiven)
|
||||
* korenst1
|
||||
* Lzebulon
|
||||
* Shinigami
|
||||
* [Hachino](https://wiki.crans.org/WikiHachino)
|
||||
* underscore_j
|
||||
* RDB
|
||||
* Otthorn
|
||||
|
||||
## Ordre du jour
|
||||
|
||||
### Rapide compte-rendu de ce qu'il s'est passé cet été
|
||||
|
||||
Ottorn, lzebulon ont créé une vm collabora. Conséquence : découverte de
|
||||
mauvaises configurations problème entre ansible et les scripts qui sont
|
||||
dépréciés.
|
||||
|
||||
Mise à jour de gitlab
|
||||
|
||||
Au milieu de l'été. pb entre owncloud et nextcloud. impossibilité d'écrire
|
||||
(indépendant du reste). esum a résolu le pb. Owncloud a ensuite perdu sa conf
|
||||
ldap.
|
||||
Nextcloud a fini d'être configuré (paramêtre de partage et les mails (envoi
|
||||
de mail automatique pour les événements)). Nextcloud marche bien.
|
||||
Pub pour nextcloud possible.
|
||||
|
||||
pb avec Onlyoffice. Beaucoup de difficulté. Onlyoffice est packagé dans apt.
|
||||
Pas possible d'installer onlyoffice comme ça. On doit le faire à la main.
|
||||
Donc ce n'est pas ansibelisable.
|
||||
Il n'est pas possible d'utiliser onlyoffice sur téléphone (firefox) et
|
||||
limité à 20 connexions en même temps. du coup, est-ce qu'on utilise
|
||||
Collabora ou Onlyoffice ?
|
||||
|
||||
Du coup on peut passer sur collabora qui n'a pas ces problèmes.
|
||||
Sinon Otthorn a trouvé la variable à modifier.
|
||||
|
||||
```txt
|
||||
server/Common/sources/constant.js
|
||||
exports.LICENSE_CONNECTIONS = 20;
|
||||
```
|
||||
|
||||
### état sur les serveurs de backup
|
||||
|
||||
2 serveurs de backups. ft éteint par VR car fait trop de bruit. Mais il marche
|
||||
et permet de faire
|
||||
Peut-être la poussière ou les ventilos sont cassés. Bref, il faudra
|
||||
probablement faire qch.
|
||||
On ne sait pas si l'ilo marche. Mais il est possible de relancer les backups.
|
||||
|
||||
specs du serveurs chez viarezo :
|
||||
<https://wiki.crans.org/CransNostalgie/CransTechnique/LesServeurs/ServeurFt>
|
||||
|
||||
Pour thot : le serveur s'éteint spontanément après le démarrage. c'est
|
||||
probablement à cause de la sonde de température
|
||||
|
||||
On remet ft puis on réinstalle thot
|
||||
|
||||
Il existe plus simple que borg. Est-ce qu'on ne passerait pas sur truc plus
|
||||
récent. mais on garde borg pour le moment. Sinon on peut utiliser restic.
|
||||
|
||||
On s'assure que ft remarche avant de faire thot (moins urgent)
|
||||
|
||||
Pigeon : "IL FAUT REDÉMARRER AU PLUS VITE LES SERVEURS DE BACKUP"
|
||||
|
||||
Tealc : on n'arrive pas à ajouter les disques donc pk on y arriverait avec
|
||||
thot ?
|
||||
|
||||
Backup chez aurore ? -> Pas forcément une bonne idée car il y a peu de membre
|
||||
actif chez eux.
|
||||
|
||||
Chez Tuxae ? -> c'est possible on a l'accord du président.
|
||||
|
||||
Chez un hebergeur ? -> glacier. Pas chère pour écrire mais payer pour
|
||||
récupérer les données.
|
||||
|
||||
ft urgent et une fois fonctionnel, on commence sur thot. On peut aussi chiffrer
|
||||
les disques nativement avec zfs.
|
||||
|
||||
### Cephiroth
|
||||
|
||||
Le point ne bouge toujours pas. GaBo cherche la facture (c'est faux).
|
||||
|
||||
### Serveur matrix
|
||||
|
||||
De plus en plus de demande pour avoir une alternative libre à discord,
|
||||
whatsapp....
|
||||
|
||||
Mastodon -> pas adapté
|
||||
Zulipe -> pas adapté
|
||||
Mattermost -> pas adapté
|
||||
Matrix -> faire de la pédagogie. Pas le temps de faire le support technique ?
|
||||
Il est possible de faire des vocaux. Il faut présenter ça aux gens mais iels
|
||||
auront besoin d'une passphrase et ou une clef de récupération.
|
||||
|
||||
Connexion ldap (note, crans ou les deux ?) <-> matrix possible mais est-ce que
|
||||
le serveur est possible de gérer plus de connexions.
|
||||
En principal, obligation de mettre le ldap du crans. Possibilité d'utiliser la
|
||||
note via Oauth...
|
||||
Les alias ça change. On doit conserver le pk. Potentiellement, on peut ajouter
|
||||
un préfix (genre "note_").
|
||||
|
||||
Ou alors, 2 instances de matrix, une pour chaque ldap. L'une est au bde mais le
|
||||
crans s'en occupe.
|
||||
Migrer SQLite à PostgreSQL.
|
||||
Si on migre le bde, il faut que se soit très stable.
|
||||
Est-ce qu'il est possible d'avoir de la redondance sur le serveur matrix ? a
|
||||
priori oui... mais peut-être pas intégrer pas défaut à matrix.
|
||||
matrix.crans.org juste un relai (bridge irc/matrix) pour la réinstallation, il
|
||||
faut demander à Erdnaxe.
|
||||
|
||||
On garde le serveur matrix tel quel (quitte à augmenter les perfs). migre de
|
||||
SQLite à PostgreSQL. LDAP crans en priorité.
|
||||
On met element
|
||||
chat.crans.org (facile à retenir)
|
||||
FAIRE DE LA PUB !
|
||||
|
||||
5 secondes sur Mastodon selon pigeon (c'est (déjà) perdu) mais moi je pense
|
||||
que la vérité est toute autre...
|
||||
Retirer la condition "cephirot.date < mastodon.date".
|
||||
Ajouter l'affirmation "Constellation.state == Cephiroth.state"
|
||||
|
||||
### Reprise des séminaires hebdomadaires
|
||||
|
||||
On en parle Samedi (31 août (2024 je précise car oui je vous vois à lire ce
|
||||
point moulte années plutard !))
|
||||
|
||||
### état de l'imprimante
|
||||
|
||||
bref : ça marche pas
|
||||
|
||||
L'imprimante a été déplacée mais impossible de communiquer avec
|
||||
l'imprimante.
|
||||
Il faudra se poser avec des personnes de la DSI pour résoudre le pb. Mais dire
|
||||
ce qu'on a fait, il est possible que ça avance.
|
||||
pigeon pense pouvoir s'en charger mais il ne connait pas ce qu'il y a autour de
|
||||
l'imprimante.
|
||||
|
||||
On essaie de s'en occuper assez rapidement (bleizi et pigeonmoelleux)
|
||||
|
||||
### mettre les clés gpg dans le pass
|
||||
|
||||
pb de rétention des clefs gpg. pigeon a "pillé" à bleizi les clefs.
|
||||
potentiellement signer les clefs gpg des nounous.
|
||||
|
||||
Remettre de l'ordre dans le pass. thot renommé en surface sans raison (a
|
||||
priori).
|
||||
|
||||
Pour la prochaine IN, garder le pass avec gpg ou passer sur sops ou autre...
|
||||
Sinon, demander aux vielles nounous (peb, pollion) si iels veulent garder leurs
|
||||
droits nounous (ça ressemble à une invitation à partir...).
|
||||
Pour les autres, on propose de rajouter les clefs gpg dans le pass.
|
||||
|
||||
### Quand est-ce qu'on redémarre tous les serveurs qui en ont besoin
|
||||
|
||||
Près de 400 jours qu'il tourne. (pas de coupure estivale).
|
||||
Pas possible de la faire avant les prochaines vacances. En profiter pour
|
||||
refaire le cablage.
|
||||
Une réunion de préparation de la réparation.
|
||||
(redémarrage et brassage)-> prochain IN
|
||||
|
||||
### Chronolgie TODO list
|
||||
|
||||
Très urgent :
|
||||
|
||||
* Backup ft (commencé à faire les backup)
|
||||
* 1/2 qui non important (genre voyager et helloworld)
|
||||
* par ordre d'importance (genre mailman)
|
||||
* d'ici là samedi rangement, inté, séminaires
|
||||
* Cephiroth (garantie go GaBo)
|
||||
* puis on s'occupe de thot
|
||||
|
||||
on est déjà dans qq semaines :
|
||||
|
||||
* onlyoffice (la limite)
|
||||
* bleizi, pigeon -> imprimante
|
||||
* les clefs gpg dans le passe (demander à pollion et peb, s'ils veulent rester
|
||||
nounous)
|
||||
* enlever les vielles nounous (charlie, peb ? et pollion ?)
|
||||
|
||||
Le mois prochain :
|
||||
|
||||
* prévénir tout le monde que les serveurs du crans sont down
|
||||
* Backup tealc sur zéphir/cameron
|
||||
* inventaire et commander des disques d'avances (un disque en rab compatible
|
||||
pour chacun des serveurs)
|
||||
* coupure : recabler, (vérifier l'étiqueteuse)
|
||||
* PASSER LA POOL EN 4096
|
||||
* réinstaller tealc
|
||||
|
||||
Après :
|
||||
|
||||
* voir matrix
|
||||
* rediscuter de mastodon
|
||||
* Nix
|
||||
|
||||
Jamais :
|
||||
|
||||
* Constellation
|
||||
* Ceph
|
File diff suppressed because it is too large
Load Diff
|
@ -117,7 +117,7 @@ En cas de problème, il est possible de le configurer après installation dans
|
|||
|
||||
Nom de domaine pour les machines adm : `adm.crans.org`
|
||||
|
||||
```config
|
||||
```txt
|
||||
FQDN : `[nom du service].adm.crans.org`
|
||||
```
|
||||
|
||||
|
|
|
@ -0,0 +1,106 @@
|
|||
# Comment redémarrer le Crans ?
|
||||
|
||||
Le Crans dispose de beaucoup de serveurs physiques en salle opérateur de l'ENS
|
||||
(actuellement en SQ39), ainsi que beaucoup de machines virtuelles tournant sur
|
||||
les hyperviseurs. De temps en temps (environ une fois par an), vous serez
|
||||
amené⋅es à redémarrer l'entièreté des machines, par exemple pour recâbler la
|
||||
baie, et il faudra alors faire les choses dans l'ordre. Voici un petit guide
|
||||
sur comment faire précisément.
|
||||
|
||||
## Préparation
|
||||
|
||||
Tout d'abord, il faut discuter quelques semaines (~2 mois) en avance du besoin
|
||||
d'un redémarrage : ce n'est pas un acte à prendre à la légère car des personnes
|
||||
(même des vieilleux !) utilisent des services du Crans dans la vie de tout les
|
||||
jours, il faut donc éviter de les couper trop souvent. Cependant, pour faire
|
||||
des mises à jour majeures, du recâblage, des changements de serveurs, ... cela
|
||||
peut s'avérer nécessaire.
|
||||
|
||||
Il faut discuter du besoin d'un redémarrage pendant au moins 2 IN au préalable
|
||||
pour bien définir ce qu'il y a précisément à faire, et quelles seront les
|
||||
nounous présentes pour aider. Bien évidemment, les apprenti⋅es sont les
|
||||
bienvenu⋅es, mais il est impératif que des nounous soient présentes pour bien
|
||||
expliquer ce qu'il se passe.
|
||||
|
||||
Ensuite, une fois que le besoin de redémarrer est bien acté, il faut prévenir
|
||||
la **totalité** des adhérent⋅es et des ancien⋅nes adhérent⋅es du Crans avec ce
|
||||
qu'on appelle communément un "mail all". Pour cela, vous devez vous rendre sur
|
||||
la VM `re2o`, écrire le mail dans un nouveau dossier puis exécuter le script
|
||||
d'envoi de mail. Ce mail doit être envoyé au minimum deux semaines avant la
|
||||
coupure, voire plus si possible. Il ne faut pas hésiter en plus de cela de
|
||||
prévenir de nouveau les adhérent⋅es via d'autres plateformes de communications
|
||||
(newsletter BdE, Discord, ...).
|
||||
|
||||
## Avant la coupure
|
||||
|
||||
Le jour de la coupure, le mieux est de réunir toutes les personnes souhaitant
|
||||
participer (sans compter les retardaires) dans le bureau du Crans (actuellement
|
||||
en MB87). Une bonne idée est de prendre le temps qu'il faut pour clairement
|
||||
poser le plan du jour sur un tableau avec les différents objectifs à réaliser,
|
||||
potentiellement en parallèle. N'hésitez pas à vous répartir sur différentes
|
||||
tâches effectuables simultanément si vous êtes suffisamment nombreux⋅ses
|
||||
(compter au moins deux personnes dont une nounou par tâche pour ne laisser
|
||||
personne seul).
|
||||
|
||||
Vous pouvez au préalable ou par la suite récupérer les badges du Crans ouvrant
|
||||
la salle opérateur SQ39 au PC sécurité : prendre deux badges au lieu d'un est
|
||||
une plutôt bonne idée pour qu'un groupe de personnes puisse faire un
|
||||
aller-retour sans se retrouver coincé à l'extérieur. Ne pas hésiter également à
|
||||
prendre à boire, de préference dans des récipients qui ne se renversent pas
|
||||
facilement et des boissons qui ne tâchent pas trop.
|
||||
|
||||
En parallèle, vous pouvez garder une trace de toutes les actions effectuées
|
||||
dans la journée en notant tout ce que vous faites sur un pad (qui n'est pas
|
||||
hébergé au Crans) pour pouvoir retracer toutes les actions, ce qui est pratique
|
||||
lorsque que quelque chose casse (un peu souvent donc).
|
||||
|
||||
## Éteindre les serveurs
|
||||
|
||||
Pour éviter au maximum les problèmes, il est important que certaines machines
|
||||
soient éteintes avant d'autres. Voici un ordre qui fonctionne avec
|
||||
l'infrastructure actuelle :
|
||||
|
||||
- serv[ENS]
|
||||
- VM adh (passer par Proxmox sur stitch/odlyd/gulp)
|
||||
- hyperviseurs adh : stitch/odlyd/gulp
|
||||
- zamok
|
||||
- VM adm (sauf routeur-sam !, passer par Proxmox sur sam)
|
||||
- hyperviseurs adm (sauf sam !) : jack/daniel
|
||||
- cameron
|
||||
- tealc
|
||||
- sam
|
||||
|
||||
Surtout ne pas hésiter à vous ssh sur les machines au préalable pour ne pas se
|
||||
retrouver coincé car le LDAP adm est éteint.
|
||||
|
||||
## Rallumer les serveurs
|
||||
|
||||
De même que pour l'extinction, l'allumage des serveurs peut se faire dans à peu
|
||||
près n'importe quel ordre, sauf pour quelques machines importantes. Voici un
|
||||
ordre qui fonctionne avec l'infrastructure actuelle :
|
||||
|
||||
- sam et routeur-sam
|
||||
- tealc
|
||||
- cameron
|
||||
- hyperviseurs adm : jack/daniel
|
||||
- zamok
|
||||
- VM adm (passer par Proxmox sur sam)
|
||||
- hyperviseurs adh : stitch/odlyd/gulp
|
||||
- VM adh (passer par Proxmox sur stitch/odlyd/gulp)
|
||||
- serv[ENS]
|
||||
|
||||
⚠ Attention : pour zamok, vous devez redémarrer le service postfix avec
|
||||
|
||||
```bash
|
||||
sudo systemctl restart postfix.service
|
||||
```
|
||||
|
||||
après avoir rétabli le réseau et **avant** de redémarrer redisdead afin de ne
|
||||
perdre aucun mail. Plus exactement : il faut vérifier que le dossier
|
||||
`/home/mail` sur zamok contienne des centaines d'adhérent⋅es en non pas
|
||||
seulement quelques dizaines.
|
||||
|
||||
Ensuite, assurez-vous bien que **TOUS** les serveurs soient allumés, dont ceux
|
||||
de serv[ENS] ! Profitez-en alors pour faire des mises à jour nécessaires
|
||||
pendant que les adhérent⋅es ne sont pas encore de retour sur zamok et les
|
||||
autres services.
|
|
@ -144,13 +144,67 @@ thor(config-if-Et3-4)#exit
|
|||
```
|
||||
|
||||
Puis ensuite on peut configurer le reste (VLANs et tout …) dans l'interface
|
||||
Port-Channel 3.
|
||||
Port-Channel 3. (Et non pas sur les interfaces eth).
|
||||
|
||||
```txt
|
||||
thor(config)#interface Port-Channel 3
|
||||
thor(config-if-Po3)#
|
||||
```
|
||||
|
||||
### Configurer le MLAG (Multi chassis Link AGregregation)
|
||||
|
||||
Nos switch arista supportent une feature que arista appele le MLAG. Cette feature
|
||||
permet notaments de faire du LACP avec des ports entre deux switch et donc d'avoir
|
||||
une redondance sur les switchs.
|
||||
|
||||
Il faut commencer par configurer le MLAG entre les deux switchs.
|
||||
|
||||
```txt
|
||||
TODO
|
||||
```
|
||||
|
||||
On peut ensuite configurer un lien en LACP. On configure ici les ports 3 de
|
||||
chaque switch en redondance sur le port-channel 3 / mlag 3.
|
||||
|
||||
sur le premier switch :
|
||||
|
||||
```txt
|
||||
arceus(config)#interface ethernet 3
|
||||
arceus(config-if-Et3)#channel-group 3 mode active
|
||||
arceus(config-if-Et3)#interface port-channel 3
|
||||
arceus(cofnig-if-Po3)#mlag 3
|
||||
```
|
||||
|
||||
sur le second switch :
|
||||
|
||||
```txt
|
||||
carapuce(config)#interface ethernet 3
|
||||
carapuce(config-if-Et3)#channel-group 3 mode active
|
||||
carapuce(config-if-Et3)#interface port-channel 3
|
||||
carapuce(config-if-Po3)#mlag 3
|
||||
```
|
||||
|
||||
On peut vérifier l'état des liens configurés en mlag via :
|
||||
|
||||
```txt
|
||||
carapuce(config-if-Po11)#show mlag interfaces
|
||||
local/remote
|
||||
mlag desc state local remote status
|
||||
---------- ---------- ----------------- ----------- ------------ ------------
|
||||
1 active-full Po1 Po1 up/up
|
||||
3 active-full Po3 Po3 up/up
|
||||
5 active-full Po5 Po5 up/up
|
||||
6 inactive Po6 Po6 down/down
|
||||
7 inactive Po7 Po7 down/down
|
||||
8 active-full Po8 Po8 up/up
|
||||
9 inactive Po9 Po9 down/down
|
||||
10 active-full Po10 Po10 up/up
|
||||
11 active-full Po11 Po11 up/up
|
||||
12 inactive Po12 Po12 down/down
|
||||
```
|
||||
|
||||
Il faudra configurer les vlans et autres sur les port-channel des deux switchs.
|
||||
|
||||
### Mettre à jour le switch
|
||||
|
||||
> C'est pas forcément nécessaire et ça peut tout casser, si néanmoins tu
|
||||
|
|
|
@ -0,0 +1,92 @@
|
|||
# Outils de backups
|
||||
|
||||
## Présentation
|
||||
|
||||
Ce dossier contient une présentation des logiciels utilisés par le Crans pour
|
||||
faire ses sauvegardes, ou backups en anglais. On entend ici par backup une
|
||||
opération qui consiste à dupliquer de manière sécurisée (chiffrée en
|
||||
l'occurrence) sur d'autres serveurs les données des utilisateurices et des
|
||||
machines du Crans.
|
||||
|
||||
Comme dans tout le dossier [logiciels](../../../), le but n'est pas de
|
||||
réexpliquer l'entièreté des fonctionnalités mais simplement d'a voir les bases
|
||||
de compréhension.
|
||||
|
||||
## Organisation
|
||||
|
||||
Vous trouverez ici deux fichiers correspondant aux deux logiciels utilisés pour
|
||||
les backups au Crans :
|
||||
|
||||
- [borg](./borg.md) pour les logiciels borg et borgmatic ;
|
||||
- [restic](./restic.md) pour le logiciel du même nom.
|
||||
|
||||
Il est cependant fortement conseillé de lire la fin de ce fichier présentant
|
||||
certaines informations concernant les backups qu'il est important de connaître
|
||||
avant de lire plus en détails les autres fichiers détaillant plus
|
||||
spécifiquement les logiciels.
|
||||
|
||||
## Contexte
|
||||
|
||||
### Historique
|
||||
|
||||
Pour prevenir certains incidents dus à des erreurs de manipulation, le collège
|
||||
technique a mis en place en système de backups. Le but de celui-ci est de
|
||||
pouvoir, si le besoin s'en fait ressentir, aller rechercher un fichier supprimé
|
||||
ou écrasé. Bien qu'il serait possible de simplement faire une copie périodique
|
||||
des données sur un serveur distant, on lui préfère des solutions un peu plus
|
||||
développées qui permettent de faire des sauvegardes incrémentales. Fut un temps,
|
||||
la solution technique en place était le logiciel
|
||||
[BackupPC](https://backuppc.github.io/backuppc/), cependant celui-ci commençant
|
||||
à dater et ayant une faible ergonomie, nous utilisons aujourd'hui le logiciel
|
||||
[borg](https://borgbackup.readthedocs.io/) et son frontend
|
||||
[borgmatic](https://torsion.org/borgmatic/). De plus, le logiciel
|
||||
[restic](https://restic.readthedocs.io/) a été installé en parallèle pour sa
|
||||
simplicité d'utilisation : borg/borgmatic et restic cohabitent donc pour le
|
||||
moment pour que les jeunes membres actif⋅ves puissent comparer afin de faire un
|
||||
choix à long terme.
|
||||
|
||||
### Backups incrémentales
|
||||
|
||||
Avant de présenter ces logiciels, attardons nous un peu sur ce qu'on entend par
|
||||
faire des backups incrémentales. Pour cela revenons à notre piètre solution
|
||||
initiale qui consiste à copier (à grands coups de rsync, unison, scp...) toutes
|
||||
les données que l'on souhaiterait sauvegarder. Pour que ces sauvegardes soient
|
||||
utiles, il faut les réaliser assez fréquemment (quelque part entre un jour et
|
||||
une semaine disons). Cependant, à chaque nouvelle backup réalisée, celle-ci va
|
||||
venir écraser le contenu de la précédente et ainsi, on ne dispose jamais plus
|
||||
que d'une copie des données de la veille. Ainsi, des dysfonctionnements
|
||||
automatiques ou simplement de la négligence peuvent faire que l'on ne se rendra
|
||||
compte que l'on avait besoin de récupérer notre fichier il y a déjà quelques
|
||||
jours et qu'il a maintenant déjà été supprimé de la copie de sauvegarde.
|
||||
|
||||
On préfererait donc pouvoir disposer d'une collection de sauvegardes qui
|
||||
remonte sur quelques jours voir moi en fonction de la politique de rétention de
|
||||
sauvegarde qu'on mettrait en place. Par exemple, une sauvegarde pour chacun des
|
||||
septs derniers jours puis quelques unes espacée d'une semaine. Si l'on reprend
|
||||
notre solution naïve, on peut facilement en étendre l'usage pour ce nouvel
|
||||
office : on réalise une copie complète des données par jour que l'on souhaite
|
||||
sauvegarder. Suivant la politique de rétention que l'on a donné plus tôt cela
|
||||
consisterais en une quinzaine de copies distinctes des données à sauvegarder et
|
||||
donc une multiplication par quinze de la taille de celle-ci.
|
||||
|
||||
Si je jette un œil rapide à la taille que prends aujourd'hui les données
|
||||
utilisateurices, je vois qu'on utilise un peu plus de 2.5T de stockage, donc si
|
||||
l'on suit la logique, on devrait disposer d'une ou plusieurs machines
|
||||
totalisant un stockage d'environ 40T. Inutile de le dire je pense, mais cela
|
||||
fait (beaucoup) trop. Heureusement pour nous, d'un jour sur l'autre
|
||||
l'intégralité de nos données stockées ne varie pas et seule une petite partie
|
||||
change sur le cours d'une journée. Ainsi, si l'on ne stocke que les différences
|
||||
accumulé sur une journée par rapport à la veille, on se retrouvera avec une
|
||||
taille beaucoup plus raisonnable de sauvegarde. C'est ~la déduplication.
|
||||
|
||||
### Qu'est-ce que l'on sauvegarde ?
|
||||
|
||||
Au Crans, on sauvegarde deux types de données :
|
||||
|
||||
- D'un côté, on a les données d'administration, c'est une partie des disques
|
||||
de tous les serveurs (généralement le /etc et le /var sauf cas particulier),
|
||||
le home des nounous, les bases de données...
|
||||
|
||||
- De l'autre côté; on a les données des adhérents, c'est à dire : le contenu
|
||||
de leur répertoire personnel et de leur dossier mail qui au jour où j'écris
|
||||
ses lignes peut contenir au maximum 30G et 10G de données respectivement.
|
|
@ -0,0 +1,110 @@
|
|||
# Borg
|
||||
|
||||
Page officiel de borg : <https://www.borgbackup.org/>.
|
||||
|
||||
Documentation de borg : <https://borgbackup.readthedocs.io/>.
|
||||
|
||||
Page officielle de borgmatic : <https://torsion.org/borgmatic/> (contient la
|
||||
documentation).
|
||||
|
||||
## Borg et borgmatic
|
||||
|
||||
Borg est un logiciel client/serveur permettant d'effectuer des sauvegardes
|
||||
incrémentales, dédupliquées et chiffrées par le client. Le serveur est simple à
|
||||
installer et utilise ssh comme protocole de transport entre lui et le client.
|
||||
Ainsi, il suffit de donner un accès ssh au client via une paire de clés pour lui
|
||||
autoriser à discuter avec le serveur. Quelque chose ressemblant à ça dans le
|
||||
`.ssh/authorized_keys` de l'utilisateur sur le serveur qui fera les backups :
|
||||
|
||||
```txt
|
||||
command="borg serve --restrict-to-path {{ chemin vers les sauvegardes }}",restrict {{ clé publique ssh }}
|
||||
```
|
||||
|
||||
Avec l'installation du paquet `borg` c'est la seule chose à faire sur le serveur
|
||||
et le reste du travail sera réalisé par le client. Après avoir aussi installé
|
||||
`borg` sur le client, on peut déjà commencer à faire quelques sauvegardes.
|
||||
Cependant, si l'on utilise que borg pour les faire (ce qui est possible), on se
|
||||
retrouvera avec des commandes bien trop longues dans lesquels on passe notre
|
||||
temps à spécifier des arguments plusieurs fois : comment contacter le serveur ?
|
||||
où stocker les sauvegardes ? quel politique de rétentions garder ? que faut-il
|
||||
sauvegarder ? Borgmatic est un frontend de borg qui définir une bonne fois pour
|
||||
toutes ses options dans un fichier de configuration pour ensuite n'avoir plus
|
||||
qu'à faire des appels simples à borgmatic qui pasera à borg tous les paramètres
|
||||
dont il a besoin. Le but n'est pas ici d'être exhaustif sur ce que peut/doit
|
||||
contenir ce fichier de configuration. Je vous redirige pour ça vers la
|
||||
[documentation
|
||||
officielle](https://torsion.org/borgmatic/docs/reference/configuration/). Ici,
|
||||
je vais plus chercher à vous donner quelques options minimales et des exemples
|
||||
d'utilisations de borgmatic. Commençons par donner le contenu d'un fichier de
|
||||
configuration partiel :
|
||||
|
||||
```txt
|
||||
location:
|
||||
source_directories:
|
||||
- /etc
|
||||
- /var
|
||||
repositories:
|
||||
- ssh://borg@backup-server:/folder/to/backup/to
|
||||
|
||||
storage:
|
||||
encryption_passphrase: PASSPHRASE
|
||||
ssh_command: ssh -i /etc/borgmatic/id_ed25519_borg
|
||||
|
||||
retention:
|
||||
keep_daily: 4
|
||||
keep_monthly: 6
|
||||
```
|
||||
|
||||
Dans la section `location`, on définit deux choses : ce que l'on souhaite
|
||||
sauvegarder et où on souhaite le sauvegarder. Ici on va backupé le `/etc` et
|
||||
`/var` de notre client sur un serveur distant qu'on contactera via ssh. Dans la
|
||||
section suivante, `storage`, on définit quelques options relatives au stockage
|
||||
et à comment y accéder. Premièrement, on donne la passphrase de chiffrement des
|
||||
sauvegardes (attention, si elle est perdue, les sauvegardes ne seront plus
|
||||
accessibles). Ensuite, on précise comment accéder au serveur (ici, l'information
|
||||
importante est où se trouve la clé privée pour pouvoir se connecter). Enfin,
|
||||
dans la section retention, on définit notre politique de retention : le serveur
|
||||
ne doit stocker qu'une backup quotidienne sur les 4 derniers jours, et une
|
||||
backup mensuelle sur les 6 derniers mois.
|
||||
|
||||
En supposant les autres options de fonctionnement renseignées dans le fichier,
|
||||
que je ne détaillerais pas ici, il est maintenant possible de commencer à
|
||||
utiliser le logiciel et faire nos premières sauvegardes.
|
||||
|
||||
## Créer l'archive de stockage
|
||||
|
||||
La commande suivante permet de créer l'archive où seront stockées les
|
||||
sauvegardes sur le serveur.
|
||||
|
||||
```bash
|
||||
borgmatic init -e repokey
|
||||
```
|
||||
|
||||
## Faire une première sauvegarde
|
||||
|
||||
Pour faire une sauvegarde, rien de plus simple, on appelle simplement le
|
||||
programme borgmatic sans option. Il est néanmoins possible de demander un
|
||||
affichage plus verbeux pour le débogage.
|
||||
|
||||
```bash
|
||||
borgmatic
|
||||
borgmatic -v 2
|
||||
```
|
||||
|
||||
## Lister les différentes sauvegardes dans l'archive
|
||||
|
||||
```bash
|
||||
borgmatic list
|
||||
```
|
||||
|
||||
## Monter une sauvegarde précise sur un point de montage
|
||||
|
||||
```bash
|
||||
borgmatic mount --archive {{ nom de l'archive ou latest pour la dernière }} --mount-point /mnt --path {{ chemin à monter de l'archive }}
|
||||
borgmatic mount --archive latest --mount-point /mnt --path etc/nginx/nginx.conf
|
||||
```
|
||||
|
||||
## Automatiser les backups
|
||||
|
||||
Pour réaliser des backups périodique, on peut en laisser la charge à un cron ou
|
||||
à systemd à l'aide d'un timer.
|
|
@ -0,0 +1,138 @@
|
|||
# Restic
|
||||
|
||||
Page officielle de restic : <https://restic.net/>.
|
||||
|
||||
Documentation de restic : <https://restic.readthedocs.io/>.
|
||||
|
||||
Dépôt officiel de restic rest-server : <https://github.com/restic/rest-server>.
|
||||
|
||||
## Présentation
|
||||
|
||||
Restic est un logiciel client/serveur permettant d'effectuer des sauvegardes
|
||||
incrémentales, dédupliquées et chiffrées par le client. Différents serveurs
|
||||
sont utilisables par le client, nous présenterons ici le serveur REST de restic
|
||||
utilisant le protocole HTTP, qui est installé actuellement au Crans sur
|
||||
[thot](../../../infrastructure/machines/physiques/thot.md).
|
||||
|
||||
Pour la configuration d'un client, vous aurez besoin d'installer le paquet
|
||||
`restic` sur les machines sous debian, restic étant déjà packagé dans nixpkgs
|
||||
pour les machines sous NixOS.
|
||||
|
||||
## Configuration du serveur
|
||||
|
||||
Le choix le plus simple à mettre en place pour la partie serveur de restic est
|
||||
restic rest-server, très simple à mettre en place. Vous pouvez trouver la
|
||||
configuration actuelle dans le module restic du
|
||||
[dépôt NixOS](https://gitlab.crans.org/nounous/nixos).
|
||||
|
||||
Le fonctionnement de ce serveur REST est le suivant : le client compresse et
|
||||
chiffre ses données avec un mot de passe, vient s'authentifier en
|
||||
[basic auth](https://en.wikipedia.org/wiki/Basic_access_authentication) auprès
|
||||
du serveur, puis dépose la backup au fur et à mesure de son avancée sur le
|
||||
serveur. Chaque client dispose donc de deux mots de passe : une clef de
|
||||
chiffrement pour les données, ainsi qu'un mot de passe pour s'authentifier
|
||||
auprès du serveur REST.
|
||||
|
||||
Deux notions sont importantes à comprendre ici dans la configuration du serveur
|
||||
REST.
|
||||
|
||||
- L'option `privateRepos`/`--private-repos` : permet de faire en sorte qu'un⋅e
|
||||
utilisateurice (dans notre cas une machine) ne puisse accéder qu'à ses
|
||||
propres backups et puisse créer tous les dépôts souhaités dans un sous
|
||||
dossier à son nom. Ainsi, une fois authentifiée, la VM flirt aura accès à
|
||||
tous dépôt de la forme `restic:http://thot.adm.crans.org/flirt/<dépôt>`, ce
|
||||
qui est particulièrement pratique pour ne pas avoir à gérer les accès à la
|
||||
main pour chaque machine.
|
||||
- Les clients sont authentifiées par le serveur grâce à un fichier `.htpasswd`
|
||||
situé à la racine du dossier de données. Ainsi, si le dossier de données est
|
||||
`/backups`, le fichier d'authentification sera `/backups/.htpasswd`. Ce
|
||||
fichier est un fichier d'authentification standard : vous pouvez consulter la
|
||||
[page Wikipédia](https://en.wikipedia.org/wiki/.htpasswd) dédiée pour plus
|
||||
d'informations. Vous pouvez alors ajouter une machine à ce fichier avec la
|
||||
commande :
|
||||
|
||||
```bash
|
||||
sudo htpasswd -B /backups/.htpasswd <username> [<password>]
|
||||
```
|
||||
|
||||
Si le mot de passe n'est pas spécifié, il sera alors demandé sur l'entrée
|
||||
standard.
|
||||
|
||||
## Configuration du client
|
||||
|
||||
Théoriquement, restic est uniquement un logiciel qui s'utilise directement.
|
||||
Cependant, nous souhaitons faire des sauvegardes automatiquement en utilisant
|
||||
des systemd timer, on va donc créer plusieurs fichiers pour ne pas à avoir tout
|
||||
à spécifier directement dans les lignes de commande.
|
||||
|
||||
Actuellement, la configuration des clients restic se situe dans le dossier
|
||||
`/etc/restic` sous debian, et dans le
|
||||
[dépôt NixOS](https://gitlab.crans.org/nounous/nixos) pour les machines sous
|
||||
NixOS. Dans les deux cas, on retrouve les mêmes éléments (on donne les noms
|
||||
pour la configuration par défault des machines sous debian) :
|
||||
|
||||
- un fichier d'environnement `base.env`, contenant plusieurs variables d'environnement
|
||||
dont l'utilité précise peut être trouvée dans
|
||||
[la documentation de restic](https://restic.readthedocs.io/en/stable/040_backup.html#environment-variables).
|
||||
- un fichier `base-repo` contenant la position du dépôt (serveur REST), avec
|
||||
les identifiants de connexion, qui se présente sous la forme
|
||||
`restic:http://<username>:<password>@thot.adm.crans.org/<username>/base`.
|
||||
- un fichier `base-password` contenant le mot de passe de chiffrement des
|
||||
sauvegardes.
|
||||
- deux fichiers `base-includes` et `base-excludes` indiquant respectivement les
|
||||
dossiers inclus et exclus pour les sauvegardes.
|
||||
|
||||
En plus de cela, on trouve un service systemd `restic-base` ainsi qu'un timer
|
||||
associé dans le dossier `/etc/systemd/system/`. Ce service lancera deux
|
||||
commandes : une commande pour lancer une sauvegarde, et une commande pour
|
||||
supprimer les anciennes sauvegardes qui ne seront pas gardées en tant que
|
||||
sauvegarde journalière/hebdomadaire/mensuelle/annuelle (définies par la
|
||||
configuration).
|
||||
|
||||
## Initialiser un dépôt
|
||||
|
||||
En supposant que vous avez la configuration décrite ci-dessus, vous pouvez
|
||||
initialiser un dépôt grâce à la commande suivante :
|
||||
|
||||
```bash
|
||||
restic init --repository-file /etc/restic/data-repo --password-file /etc/restic/data-password
|
||||
```
|
||||
|
||||
## Faire une sauvegarde à la main
|
||||
|
||||
Pour faire une sauvegarde à la main, rien de compliqué, il suffit de lancer le
|
||||
service systemd normalement de la manière suivante :
|
||||
|
||||
```bash
|
||||
sudo systemctl start restic-base.service
|
||||
```
|
||||
|
||||
(Même si c'est surprenant, vous pouvez faire CTRL+C à ce moment dans votre
|
||||
terminal, la tâche continuera en fond.)
|
||||
|
||||
De plus, si la variable `RESTIC_PROGRESS_FPS` a été affectée à une valeur
|
||||
strictement positive, vous pourrez voir la progression de la sauvegarde dans
|
||||
le journal. Vous pouvez donc y accéder par la commande :
|
||||
|
||||
```bash
|
||||
sudo journalctl -xefu restic-base
|
||||
```
|
||||
|
||||
## Consulter l'état des sauvegardes
|
||||
|
||||
Pour consulter la liste actuelle des sauvegardes, vous pouvez simplement
|
||||
utiliser la commande :
|
||||
|
||||
```bash
|
||||
restic snapshots --repository-file /etc/restic/data-repo --password-file /etc/restic/data-password
|
||||
```
|
||||
|
||||
De plus, vous pouvez facilement monter une sauvegarde sur un point de montage
|
||||
avec la commande suivante :
|
||||
|
||||
```bash
|
||||
restic mount /mnt --repository-file /etc/restic/data-repo --password-file /etc/restic/data-password
|
||||
```
|
||||
|
||||
Cela bloquera alors votre terminal, et la sauvegarde sera démontée dès que vous
|
||||
quitterez votre terminal, évitant d'avoir une sauvegarde montée et oubliée.
|
|
@ -0,0 +1,57 @@
|
|||
# Systemd
|
||||
|
||||
Systemd est une suite logiciel pour systèmes GNU/Linux. Cette suite logiciel
|
||||
fournit de nombreuses fonctionnalités, notamment pour configurer son OS et
|
||||
suivre les *daemon*\ s actifs et leurs journaux.
|
||||
|
||||
Ce document décrit *certaines* fonctionnalités de Systemd bien choisies,
|
||||
lesquelles sont jugées intéressantes pour l'administration système ou pour
|
||||
utilisateurices. Il sera sans doute découpé en plusieurs morceaux s'il devient
|
||||
trop long.
|
||||
|
||||
## Unités de configuration: un format unifiant.
|
||||
|
||||
### Services.
|
||||
|
||||
### Minuteurs.
|
||||
|
||||
### (Auto)mount.
|
||||
|
||||
## Configuration Réseau.
|
||||
|
||||
### Obtenir des adresses IPs.
|
||||
|
||||
### Configuration DNS (récursif).
|
||||
|
||||
## Journalisation.
|
||||
|
||||
### Lecture des journaux: les bases.
|
||||
|
||||
### Espaces de noms.
|
||||
|
||||
### Partage de journaux entre machines.
|
||||
|
||||
## Aspect pratique (pour utilisateurices)
|
||||
|
||||
### Chiffrement de disque.
|
||||
|
||||
### Chargeur d'amorçage.
|
||||
|
||||
## Conteneurisation et virtualisation.
|
||||
|
||||
### Conteneurisation.
|
||||
|
||||
### Virtualisation.
|
||||
|
||||
## Gestion des secrets.
|
||||
|
||||
## Trucs et astuces.
|
||||
|
||||
### Systèmes dynamiques: gestion des erreurs dans les services.
|
||||
|
||||
### Administration à distance.
|
||||
|
||||
<!-- LocalWords: IPs virtualisation utilisateurices Journalisation daemon
|
||||
<!-- LocalWords: Systemd Linux
|
||||
-->
|
||||
-->
|
|
@ -1,198 +0,0 @@
|
|||
-*- mode: org; org-hide-emphasis-markers: t; -*-
|
||||
|
||||
#+TITLE: Description de ~systemd~ et comment l'utiliser?
|
||||
#+AUTHOR: Des nounous quelconques.
|
||||
#+EMAIL: contact@crans.org
|
||||
#+SEQ_TODO: TODO | in_progress | DONE
|
||||
#+DESCRIPTION: Pfiou que c'est fastidieux d'apprendre à parler au monde entier.
|
||||
#+INSTITUTE: Cr@ns
|
||||
#+LANGUAGE: fr
|
||||
#+STARTUP: overview
|
||||
|
||||
Le présent document est destiné aux proptiétaires de VMs au Cr@ns, mais plus
|
||||
généralement à nos membres qui souhaitent tirer le plus de ~systemd~.
|
||||
|
||||
~systemd~ est une suite logicielle qui a pour objectif de fournir une interface
|
||||
simple et unifiée à de nombreuses fonctionnalités du noyau Linux. En effet, les
|
||||
APIs Linux sont nombreuses et les utilisations multiples des mêmes interfaces
|
||||
peut être redondant.
|
||||
|
||||
Par exemple, considérons la tâche "lancer une backup" et supposons que l'on
|
||||
veuille (1) que la commande soit lancée un jour après que la dernière itération
|
||||
se soit terminée, et (2) éviter qu'une nouvelle backup soit lancée si l'ancienne
|
||||
n'est pas encore terminée. Systemd permet de paramétrer cela en quelques lignes,
|
||||
là où d'autres seraient tentés de faire un cron, dont la tâche associés commence
|
||||
par effectuer les vérications nécessaires au lancement conditionel.
|
||||
|
||||
-----
|
||||
|
||||
~systemd~ fournit un langage de configuration unifié et permet de paramétrer son
|
||||
système de manière déclarative, ce qui mène à des configurations plus sûres,
|
||||
systématiques et dont les sémantiques sont claires.
|
||||
|
||||
* Résumé succint (et partiel) des tâches effectuées par un utilitaire ~systemd~
|
||||
|
||||
| *Tâche* | *Utilitaire disponible* | Optionel (pour un système basé sur ~systemd~) |
|
||||
|--------------------------+------------------------------+-----------------------------------------------|
|
||||
| Boot loader | ~systemd-boot~ | Oui |
|
||||
| Init système (initrd) | ~systemd~ | Oui |
|
||||
| Init système | ~systemd~ | Non |
|
||||
| Gestionaire de service | ~systemd~ | Non |
|
||||
| DNS récursif | ~systemd-resolvd~ | Oui |
|
||||
| Gestion des ~$HOME~ | systemd-homed | Oui |
|
||||
| Montage de disques | ~systemd-fstab-generator~ | Pas à ma connaissance |
|
||||
| | ~systemd-gpt-auto-generator~ | Oui |
|
||||
| | ~systemd-fsck-generator~ | Peut-être |
|
||||
| Chiffrement de disques | ~systemd-cryptsetup~ | Oui |
|
||||
| | ~systemd-cryptenroll~ | Oui |
|
||||
| | ~systemd-crypttab-generator~ | |
|
||||
| Chiffrement de secrets | ~systemd-creds~ | Oui |
|
||||
| Gestion de l'horloge | ~systemd-timedated~ | Oui |
|
||||
| | ~systemd-timesyncd~ | Oui |
|
||||
| Nom d'hôte | ~systemd-hostnamed~ | Je ne sais pas |
|
||||
|
||||
** Critiques communes
|
||||
|
||||
/Cf/. la [[https://www.freedesktop.org/wiki/Software/systemd/FrequentlyAskedQuestions/][FAQ officielle]] du projet.
|
||||
|
||||
- /Il est dit que ~sd~ fait trop de choses/ !
|
||||
Ah bon ? Pourtant, ~systemd~ n'apparait pas si souvent dans le tableau ci-dessus.
|
||||
|
||||
- /Il est dit que ~sd~ est une dictature/ !
|
||||
|
||||
Je ne contribue pas, mais suis les messages postés sur les mailing list et
|
||||
parfois les issues du GitHub. Je trouve la communauté très accueillante.
|
||||
|
||||
|
||||
** Évolution de ~systemd~
|
||||
|
||||
~systemd~ évolue rapidement, pour permettre une gestion toujours plus fine des
|
||||
services, VMs, ... Certaines mises à jour de ~systemd~ retirent des
|
||||
fonctionnalités (/e.g./ ~/usr~ séparé ou ~cgroupsv1~). Lorsqu'il y a retrait d'une
|
||||
fonctionnalité, cela est au annoncé à l'avance, pour que chacun·e ait le temps
|
||||
de s'y préparer. Pour les deux exemples susmentionnés, cela a été annoncé plus
|
||||
d'un an à l'avance.
|
||||
|
||||
|
||||
* Rappel : processus de démarrage d'un ordinateur /systemd/GNU/Linux/
|
||||
|
||||
Ce paragraphe présente la manière dont les machines démarrent. Cette
|
||||
présentation se veut rapide, mais suffisante pour que chacun·e puisse comprendre
|
||||
à quelle étape de ce processus les disques d'un ordinateur sont déchiffrés,
|
||||
montés, /etc./
|
||||
|
||||
/Note/ : Je me concentrerai que sur les systèmes (U)EFI utilisant une table de
|
||||
partitions ~gpt~ (/i.e./ le disque sur lequel se trouvent les fichiers de démarrage
|
||||
contient un partitionnement ~gpt~).
|
||||
|
||||
Procédé de démarrage :
|
||||
|
||||
1. le logiciel de la carte mère est le premier élément à démarrer. Il charge
|
||||
vos paramètres (/e.g./ secure boot activé ou non) ;
|
||||
|
||||
2. le logiciel cherche à démarrer ou bien votre système d'exploitation
|
||||
directement, ou bien un /système d'amorçage/ (/bootloader/ en, anglais) ;
|
||||
|
||||
3. supposons qu'il lance ~systemd-boot~.
|
||||
~systemd-boot~ va constituer un menu avec
|
||||
- une ou plusieurs entrées pour lancer le(s) système(s) d'exploitation
|
||||
disponible(s) sur votre machine (ou en réseau),
|
||||
- une entrée pour redémarrer dans le panneau de configuration du logiciel
|
||||
UEFI,
|
||||
- une entrée pour redémarrer ;
|
||||
|
||||
4. Supposons que l'utilisateurice (ou ~systemd-boot~) choisisse un système sous
|
||||
~systemd~.
|
||||
~systemd~, qui est actuellement lancé dans un petit environnement (appelé
|
||||
/initrd/) va chercher à initialiser le système, noramment en :
|
||||
1. déchiffrant la partition racine du système (si nécessaire),
|
||||
2. montant la partition racine du sysème,
|
||||
3. pivotant sur le système final dont ~systemd~ vient de monter ~/~.
|
||||
|
||||
5. Nous sommes sur la bonne voie : le système de fichier principal est monté.
|
||||
~systemd~ monte les partitions/disques/resources réseaux supplémentaires
|
||||
requis, met en place les sous-systèmes nécessaires (journalisation, réseau,
|
||||
...).
|
||||
|
||||
L'un des derniers services démarré permet aux utilisateurices de
|
||||
s'authentifier. Le sysème a fini de démarrer.
|
||||
|
||||
|
||||
* TODO Configuration
|
||||
|
||||
** TODO Unité de configuration (~man systemd.unit~)
|
||||
|
||||
** TODO Service (~man systemd.service~)
|
||||
|
||||
** TODO Cibles (~man systemd.target~)
|
||||
|
||||
** TODO Minuteurs (~man systemd.timer~)
|
||||
|
||||
|
||||
* TODO Systemd : aspect pratique
|
||||
|
||||
** TODO Chiffrement (mots de passe, recovery key, FIDO2 ou TMP2)
|
||||
|
||||
L'utilitaire principal pour gérer le chiffrement de disques est
|
||||
~systemd-cryptenroll~.
|
||||
|
||||
** TODO Reconnaissance automatique de partitions
|
||||
|
||||
Lors de l'installation d'un système d'exploitation (avec UEFI), il y a au moins
|
||||
deux partitions :
|
||||
- une ESP (/EFI System Partition/), laquelle stocke les images de démarrage (dont
|
||||
l'éventuel boot loader) ;
|
||||
- une partition racine (root, ou ~/~), laquelle correspond au chemin ~/~ pour le
|
||||
système. C'est ici que sont généralement stockées vos applications, la
|
||||
configuration système, /etc/.
|
||||
|
||||
Pour ~systemd~, touts les points de montage sont des /unités de montage/ et le
|
||||
déchiffrement des disques est effectué via des /unités de services/. Ces unités
|
||||
sont /générées/ (/Cf./ plus bas).
|
||||
|
||||
|
||||
Lors du démarrage, il faut mettre le système de fichiers en place, /i.e./ monter
|
||||
les disques. Lors de l'installation du système d'exploitation, deux choix
|
||||
s'offrent à vous :
|
||||
- /OU BIEN/ Décrire les blocks à déchiffrer dans ~/etc/crypttab~ (/crypt table/) et
|
||||
les points de montage dans ~/etc/fstab~ (/file systems table/).
|
||||
|
||||
Ces fichiers seront inclus dans l'image de démarrage (qui est souvent appellée
|
||||
/initrd/ ou /initramfs/), afin que ~systemd~ sache quels disques déchiffrer et
|
||||
monter (et comment).
|
||||
|
||||
- /OU BIEN/ Indiquer le type de chaque partition ("X est ~/~", "Y est ~/boot~", "Z est
|
||||
~/home~", /etc./). Si tel est le cas, il n'est plus nécessaire d'inclure les
|
||||
partitions concernées dans ~/etc/fstab~.
|
||||
/Note/ : Si vous utilisez LUKS2 pour chiffrer vos disques, il n'est pas non plus
|
||||
nécessaire d'indiquer ces éléments dans ~/etc/crypttab~.
|
||||
|
||||
/Exemple/ : Partition ~/home~, troisième partition du disque ~/dev/nvme0n1~.
|
||||
Il suffit :
|
||||
- de changer le type de partition de ~/dev/nvme0n1p3~ :
|
||||
#+begin_src fdisk
|
||||
fdisk /dev/nvme0n1
|
||||
|
||||
t # change le type de partition
|
||||
3 # numéro de la partition à mettre à jour
|
||||
home # (ou 43) abbréviation pour "933ac7e1-2eb4-4f13-b844-0e14e2aef915"
|
||||
w # écrit les changements à la table de partitions
|
||||
#+end_src
|
||||
- retirer la ligne correspondant à ~/home~ dans ~/etc/fstab~ (et si la partition
|
||||
est chiffrée, de ~/etc/crypttab~ aussi),
|
||||
- régénrer les images de démarrage,
|
||||
- redémarrer et tester.
|
||||
|
||||
/Note/ : se référer à ~man systemd-gpt-auto-generator(8)~ pour une liste complète
|
||||
des tags ~gpt~ reconnus par ~systemd~.
|
||||
|
||||
|
||||
** TODO Redimension automatique de partitions
|
||||
|
||||
** TODO UKI et Secure boot
|
||||
|
||||
* TODO Réseau
|
||||
|
||||
* TODO Journalisation
|
||||
|
||||
* TODO Administration à distance
|
Loading…
Reference in New Issue