diff --git a/.drone.yml b/.drone.yml
index 75f494b..c63a2d8 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -128,7 +128,7 @@ steps:
- tar xf /tmp/FantasqueSansMono-Normal.tar.gz -C /usr/share/fonts/fantasque-sans-mono OTF/ TTF/ --strip-component=1
- mkdir dist
- make -C tutorial/ansible
- - mv tutorial/ansible/tutorial-2.pdf dist/tutorial-2-${DRONE_TAG##srs20??-tutorial2-}.pdf
+ - mv tutorial/ansible/tutorial.pdf dist/tutorial-2-${DRONE_TAG##srs20??-tutorial2-}.pdf
- name: deploy subject
image: appleboy/drone-scp
diff --git a/libadlin/domain.go b/libadlin/domain.go
index b30ec0e..1c33dc4 100644
--- a/libadlin/domain.go
+++ b/libadlin/domain.go
@@ -6,8 +6,8 @@ import (
)
var (
- AssociatedDomainSuffixes = []string{"adlin2024.driive.online.", "adlin2024.driive.site.", "adlin2024.drivve.online.", "adlin2024.drivee.site.", "adlin2024.p0m.fr."}
- DelegatedDomainSuffixes = []string{"srs.driive.online.", "srs.driive.site.", "srs.drivve.online.", "srs.drivee.site.", "srs.p0m.fr."}
+ AssociatedDomainSuffixes = []string{"adlin2023.driivve.com.", "adlin2023.driivve.co.", "adlin2023.driivee.cloud.", "adlin2023.p0m.fr."}
+ DelegatedDomainSuffixes = []string{"srs.driivve.com.", "srs.driivve.co.", "srs.driivee.cloud.", "srs.p0m.fr."}
)
func (student *Student) MyDelegatedDomainSuffix() string {
diff --git a/token-validator/grades.go b/token-validator/grades.go
index a9342a2..7aaecf4 100644
--- a/token-validator/grades.go
+++ b/token-validator/grades.go
@@ -75,8 +75,6 @@ func computeGrades(_ httprouter.Params, _ []byte) (interface{}, error) {
}
} else {
switch st.Challenge {
- case 0:
- res[std.Login]["TP1"] += 1
case 1:
res[std.Login]["TP1"] += 3
case 2:
@@ -99,8 +97,6 @@ func computeGrades(_ httprouter.Params, _ []byte) (interface{}, error) {
res[std.Login]["TP1"] += 2
case 11:
res[std.Login]["TP1"] += 1
- case 12:
- res[std.Login]["TP1"] += 1
}
}
}
diff --git a/tutorial/adlin.sty b/tutorial/adlin.sty
index 59fe540..be94771 100644
--- a/tutorial/adlin.sty
+++ b/tutorial/adlin.sty
@@ -24,30 +24,6 @@
\path[fill=black,draw=none] (interior.south west) rectangle node[white]{\huge\bfseries\texttt >\_} ([xshift=10mm]interior.north west);
},#1}
-\usetikzlibrary{calc}
-\newtcolorbox{exercicebox}[1][parbox=false]{breakable,enhanced,
- before=\hspace{.7em},after=\hspace{.5em},
- tile,left=2mm,right=12mm,top=.5em,bottom=.5em,
- frame code={\path[draw=Gold!85!gray,sharp corners,line width=2.5pt] (frame.north west) -- (frame.north) -- (frame.north east);}
- sharp corners,
- colback=white,
- underlay={%
- \path[fill=Gold!85!gray,draw=none] (interior.south east) rectangle node[white]{\begin{tikzpicture}
-\draw[fill=white,even odd rule]
-let
-\n{dpt} = {360/7}
-in
-(0,0) circle (1.2mm) %
-({\n{dpt}*(0.5)}:2.5mm) \foreach \x in {1,...,7}{ %
-arc ({\n{dpt}*(\x-0.5)}:{\n{dpt}*(\x-0.25)}:2.5mm) %
---++(\x*\n{dpt}:1.5mm) %
-arc ({\n{dpt}*(\x-0.25)}:{\n{dpt}*(\x+0.25)}:2.5mm) %
---++(\x*\n{dpt}:-1.5mm) %
-arc ({\n{dpt}*(\x+0.25)}:{\n{dpt}*(\x+0.5)}:2.5mm)--%
-({\n{dpt}*(\x+0.5)}:2.5mm)
-};\end{tikzpicture}} ([xshift=-10mm]interior.north east);
- },#1}
-
\newtcolorbox{questionbox}[1][]{breakable,enhanced,
before skip balanced=2mm,after skip balanced=3mm,
tile,left=11mm,right=2mm,top=1mm,bottom=1mm,
diff --git a/tutorial/ansible/.gitignore b/tutorial/ansible/.gitignore
index 055d9b1..4cf39d9 100644
--- a/tutorial/ansible/.gitignore
+++ b/tutorial/ansible/.gitignore
@@ -1,3 +1 @@
tutorial.pdf
-tutorial-2.pdf
-tutorial-ansible.pdf
diff --git a/tutorial/ansible/Makefile b/tutorial/ansible/Makefile
index a292fc9..c39bea3 100644
--- a/tutorial/ansible/Makefile
+++ b/tutorial/ansible/Makefile
@@ -1,15 +1,12 @@
include ../pandoc-opts.mk
-SOURCES_2 = tutorial-2.md setup.md maatma.md what.md vitrine.md nameserver.md
-SOURCES_ANSIBLE = tutorial.md ansible.md deploiement-svc.md rendu.md
+SOURCES = tutorial.md setup.md maatma.md what.md vitrine.md ansible.md nameserver.md deploiement-svc.md rendu.md
-all: tutorial-2.pdf tutorial-ansible.pdf
+all: tutorial.pdf
-tutorial-2.pdf: ${SOURCES_2}
- pandoc ${PANDOCOPTS} -o $@ $+
-tutorial-ansible.pdf: ${SOURCES_ANSIBLE}
+tutorial.pdf: ${SOURCES}
pandoc ${PANDOCOPTS} -o $@ $+
clean::
- rm tutorial-2.pdf tutorial-ansible.pdf
+ rm tutorial.pdf
diff --git a/tutorial/ansible/maatma.md b/tutorial/ansible/maatma.md
index 7ba9fe4..78d4afd 100644
--- a/tutorial/ansible/maatma.md
+++ b/tutorial/ansible/maatma.md
@@ -77,9 +77,9 @@ pouvez l'ignorer pour le moment.
Notez que vous ne disposez pas d'IPv4 publique (c'est-à-dire routable sur
Internet), vous disposez seulement d'une IPv6 publique. L'ensemble de vos
services sont cependant accessibles également en IPv4, car Maatma centralise
-les requêtes faites en IPv4 et les distribue entre vos IPv6, **lorsque le
-protocole permet de faire cette distribution**. Par exemple, HTTP et HTTPS le
-permettent, mais pas SSH. Vous ne pourrez donc pas vous connecter en SSH via
+les requêtes faites en IPv4 et les distribue entre vos IPv6, lorsque le
+protocole permet de faire cette distribution. Par exemple, HTTP et HTTPS le
+permette, mais pas SSH. Vous ne pourrez donc pas vous connecter en SSH via
l'IPv4 de Maatma.
Voici un schéma reprenant ces explications :
diff --git a/tutorial/ansible/setup.md b/tutorial/ansible/setup.md
index 78bca64..d3512fb 100644
--- a/tutorial/ansible/setup.md
+++ b/tutorial/ansible/setup.md
@@ -12,9 +12,8 @@ possédant les caractéristiques suivantes :
permettant d'aller sur Internet.
Le choix de la technologie de virtualisation est laissé à votre
-appréciation. L'ISO est réputée supporter *Hyper-V* (Windows), *qemu*/*KVM*
-(macOS, Linux, Windows), *Virtualization.Framework* (macOS) et VMware (macOS,
-Windows).\
+appréciation. L'ISO est réputée supportée par *Hyper-V* (Windows), *qemu*/*KVM*
+(macOS, Linux, Windows) et VMware (macOS, Windows).\
L'hyperviseur qui vous laissera le plus de liberté (et avec lequel vous pourrez
apprendre le plus de choses !) est sans doute *qemu*, sous Linux ; vous pouvez
@@ -47,7 +46,7 @@ Gérer le réseau de son hyperviseur
Cette section est là pour vous donner un aperçu du fonctionnement de votre
installation, pour que plus jamais, vous ne puissiez vous demander « On la met
-en NAT ou en Bridge la VM ? », sans vraiment savoir de quoi vous parlez.
+en NAT ou en Bridge la VM ? », sans vraiment savoir de quoi vous parler.
On vous encourage évidemment à comprendre les éléments présentés et à tester
par vous-même avec `qemu`, mais tous les hyperviseurs fonctionnent de la même
@@ -87,7 +86,7 @@ nombre d'interfaces physiques existantes.
Concrètement, l'opération est assez fastidieuse à réaliser à la main, car cela
demande de détacher le périphérique (via
`/sys/bus/pci/devices/0000:03:00.0/driver/unbind`,
-par exemple pour une carte `enp0s3`), avant de l'assigner à notre machine
+par exemple pour une carte `enp0s3`) ; avant de l'assigner à notre machine
virtuelle :
@@ -190,8 +189,8 @@ machine hôte sur ce réseau virtuel.
Il est tout à fait possible d'ajouter une interface réseau physique à un pont,
et c'est sans doute la méthode la plus simple pour que les machines virtuelles
-puissent accéder à Internet (si le réseau local de la machine hôte fournit des
-adresses IP par DHCP à toute machine rejoignant le réseau).
+puissent accéder à internet : si le réseau local de la machine hôte fournie des
+adresses IP par DHCP à toute machine rejoignant le réseau.
Lorsque le pont existe, `qemu` peut créer l'interface virtuelle et l'assigner à
diff --git a/tutorial/ansible/tutorial-2.md b/tutorial/ansible/tutorial-2.md
deleted file mode 100644
index 84e3f37..0000000
--- a/tutorial/ansible/tutorial-2.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: Administration Linux avancée -- TP n^o^ 2
-subtitle: "Maatma : l'hébergeur DIY"
-author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
-institute: EPITA
-date: Jeudi 2 mars 2023
-abstract: |
- Durant ce deuxième TP, nous allons préparer un serveur pour réponde à des
- services classiques d'Internet. Nous appréhenderons le fonctionnement des
- noms de domaine et des certificats TLS, au travers de Maatma, votre
- hébergeur.
-
- \vspace{1em}
-
- Ce TP est la partie découverte du 1er projet qui sera à rendre pour le
- **mercredi 29 mars 2023 à 23 h 42**. Nous verrons au prochain TP comment
- automatiser toutes les étapes d'aujourd'hui grâce à Ansible. Vous serez notés
- d'une part sur votre avancement dans les étapes de ce TP, et également sur la
- qualité du rendu de l'automatisation de ces mêmes étapes, via Ansible (que
- l'on verra au prochain TP).
-...
diff --git a/tutorial/ansible/tutorial.md b/tutorial/ansible/tutorial.md
index fd4e408..de682dd 100644
--- a/tutorial/ansible/tutorial.md
+++ b/tutorial/ansible/tutorial.md
@@ -3,9 +3,9 @@ title: Administration Linux avancée -- TP n^o^ 2
subtitle: "Maatma : l'hébergeur DIY"
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
institute: EPITA
-date: Jeudi 16 mars 2023
+date: Mercredi 9 mars 2022
abstract: |
- Durant ce troisième TP, nous allons apprendre à déployer des services sur un
+ Durant ce deuxième TP, nous allons apprendre à déployer des services sur un
serveur, de manière industrielle !
\vspace{1em}
diff --git a/tutorial/ansible/vitrine.md b/tutorial/ansible/vitrine.md
index 8c134c0..b868853 100644
--- a/tutorial/ansible/vitrine.md
+++ b/tutorial/ansible/vitrine.md
@@ -14,7 +14,7 @@ Internet, et renforcez cela au moyen d'un pare-feu (`iptables` ou
Faites le tour des configurations afin de vous assurer qu'elles sont
suffisamment durcies. Pensez à noter vos changements, vous devrez les
-reporter dans un fichier au prochain TP !
+reporter dans un fichiers au chapitre suivant !
À ce stade, vous devez suivre les recommandations de l'ANSSI que vous
jugez adaptées à votre déploiement :
@@ -26,21 +26,13 @@ Ma première vitrine
Sur le domaine `login-x.adlin2024.example.tld`, déployez une vitrine
d'entreprise basique. Vous n'allez pas déployer tout un Wordpress, mais un
-simple lot de pages HTML ... générées avec Hugo.
-
-::::: {.exercice}
+simple lot de pages HTML ... générées avec Hugo.
Vous aurez pour cela besoin d'un serveur web, dont le choix est laissé à votre
discrétion.
-:::::
-
-::::: {.exercice}
-
Vous pouvez utiliser les services de [Let's Encrypt](https://letsencrypt.org/)
-pour obtenir un certificat TLS.
-
-:::::
+pour obtenir un certificat TLS.\
::::: {.warning}
@@ -48,8 +40,8 @@ Compte tenu [des limitations
imposées](https://letsencrypt.org/docs/rate-limits/), vous ne pourrez pas tous
en créer un aujourd'hui, mais n'hésitez pas à retenter un peu plus tard dans la
semaine. Vous pouvez également obtenir vos certificats depuis de nombreux
-autres services gratuits similaires : [ZeroSSL](https://zerossl.com/),
-[buypass](https://www.buypass.com/), ...\
+autres services gratuits similaire : [ZeroSSL](https://zerossl.com/),
+[buypass](https://www.buypass.com/), ...\
D'ailleurs, si vous disposez de votre propre nom de domaine et que vous
souhaitez l'utiliser pour ce TP, vous pouvez suivre les instructions dans
diff --git a/tutorial/ansible/what.md b/tutorial/ansible/what.md
index db49ba4..058aefa 100644
--- a/tutorial/ansible/what.md
+++ b/tutorial/ansible/what.md
@@ -9,8 +9,6 @@ Accéder à la machine virtuelle
Une fois la machine virtuelle démarrée, vous pouvez vous y connecter en `root`
avec le mot de passe `adlin2024`.
-::::: {.more}
-
Vous pouvez également démarrer en mode *single user*, mais comme votre disque
n'est sans doute pas encore utilisable à ce stade, vous ne pourrez pas changer
le mot de passe `root`. Vous pourrez néanmoins effectuer les étapes de
@@ -20,8 +18,6 @@ Lorsque vous avez accès à la ligne de commande du *bootloader*, vous pouvez
généralement ajouter l'option `init=/bin/sh` à la ligne de commande du noyau,
afin de lancer un shell au lieu du système d'init habituel.
-:::::
-
Se mettre à l'aise
------------------
@@ -60,13 +56,9 @@ de personnes susceptibles de s'y connecter pour l'administrer[^whysudo].
permet également de pouvoir retracer, via les journaux, qui a réalisé
quelles opérations.
-::::: {.exercice}
-
Utilisez `adduser(8)` pour vous créer votre propre compte, et au minimum
`passwd(1)` pour lui définir un mot de passe.
-:::::
-
C'est bon, vous pouvez maintenant commencer à utiliser le client SSH de votre
choix pour administrer votre machine virtuelle !
@@ -89,23 +81,16 @@ d'administrateur. Utilisez :
administrateur ;
- `sudoedit` : pour éditer un fichier avec les droits administrateurs.
-::::: {.exercice}
-
-Après avoir installé le paquet `sudo`, vous devrez ajouter les utilisateurs
-autorisés à se servir de `sudo` dans le groupe `sudo` ou `wheel` (en fonction
-des distributions).
-
-:::::
-
-Vous pouvez également définir des conditions plus précises en éditant le
-fichier `/etc/sudoers` (utilisez impérativement `visudo(1)` pour éditer ce
-fichier).\
+Après avoir installé le paquet, vous devrez ajouter les utilisateurs autorisés
+à se servir de `sudo` dans le groupe `sudo` ou `wheel` (en fonction des
+distributions). Vous pouvez également définir des conditions plus précise en
+éditant le fichier `/etc/sudoers` (utilisez impérativement `visudo(1)` pour
+éditer ce fichier).\
::::: {.code}
-**Super astuce !** si vous oubliez de préfixer votre commande par `sudo`, vous
-allez obtenir une erreur `Permission Denied`. Vous n'êtes pas obligés de
-recopier la commande, utilisez :
+**Super astuce !** votre terminal rit encore de vous, affichant `Permission
+Denied` car vous avez oublié de préfixer votre commande par `sudo` ? essayez :
```
diff --git a/tutorial/colored-blocks.lua b/tutorial/colored-blocks.lua
index 14e0783..bb60f07 100644
--- a/tutorial/colored-blocks.lua
+++ b/tutorial/colored-blocks.lua
@@ -21,17 +21,6 @@ function Div(el)
el.content,
pandoc.RawBlock("latex", "\\end{codebox}"))
- elseif el.classes[1] == "exercice"
- then
- -- insert element in front
- table.insert(
- el.content, 1,
- pandoc.RawBlock("latex", "\\noindent\\begin{exercicebox}"))
- -- insert element at the back
- table.insert(
- el.content,
- pandoc.RawBlock("latex", "\\end{exercicebox}"))
-
elseif el.classes[1] == "question"
then
-- insert element in front
diff --git a/tutorial/pandoc-opts.mk b/tutorial/pandoc-opts.mk
index 83f67cd..94bbe53 100644
--- a/tutorial/pandoc-opts.mk
+++ b/tutorial/pandoc-opts.mk
@@ -6,7 +6,7 @@ PANDOCOPTS = --pdf-engine=lualatex \
-M fontsize=12pt \
-M papersize=a4 \
-M mainfont="Linux Libertine" \
- -M monofont="Inconsolata" \
+ -M monofont="FantasqueSansMono" \
-M sansfont="Linux Biolinum" \
-M colorlinks=true \
-M linkcolor="black" \