tuto: Prepare for 2022
This commit is contained in:
parent
37f0ba4b3d
commit
af860b40a0
@ -3,7 +3,7 @@ title: Virtualisation légère -- TP n^o^ 1
|
|||||||
subtitle: Les bases de Docker
|
subtitle: Les bases de Docker
|
||||||
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
|
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
|
||||||
institute: EPITA
|
institute: EPITA
|
||||||
date: Mardi 15 septembre 2020
|
date: Jeudi 16 septembre 2021
|
||||||
abstract: |
|
abstract: |
|
||||||
Durant ce premier TP, nous allons apprendre à utiliser Docker, puis
|
Durant ce premier TP, nous allons apprendre à utiliser Docker, puis
|
||||||
nous apprendrons à déployer un groupe de conteneurs !
|
nous apprendrons à déployer un groupe de conteneurs !
|
||||||
|
@ -3,7 +3,7 @@ title: Virtualisation légère -- TP n^o^ 2
|
|||||||
subtitle: Construire des images Docker et leur sécurité
|
subtitle: Construire des images Docker et leur sécurité
|
||||||
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
|
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
|
||||||
institute: EPITA
|
institute: EPITA
|
||||||
date: Mardi 22 septembre 2020
|
date: Jeudi 23 septembre 2021
|
||||||
abstract: |
|
abstract: |
|
||||||
Durant ce deuxième TP, nous allons voir comment créer nos propres
|
Durant ce deuxième TP, nous allons voir comment créer nos propres
|
||||||
images, comment s'assurer qu'elles n'ont pas de vulnérabilités
|
images, comment s'assurer qu'elles n'ont pas de vulnérabilités
|
||||||
|
@ -1,14 +1,6 @@
|
|||||||
include ../pandoc-opts.mk
|
include ../pandoc-opts.mk
|
||||||
|
|
||||||
SOURCES = tutorial.md \
|
SOURCES = tutorial.md installation.md chroot.md pseudofs.md capabilities.md cgroups.md oom.md seccomp.md project-intro.md project-body.md project-rendu.md
|
||||||
../devops/devops.md \
|
|
||||||
../devops/what.md \
|
|
||||||
../devops/tools.md \
|
|
||||||
../devops/ci.md \
|
|
||||||
../devops/publish-docker.md \
|
|
||||||
../docker-internals/oci.md \
|
|
||||||
../docker-internals/registry.md \
|
|
||||||
rendu.md
|
|
||||||
|
|
||||||
|
|
||||||
all: tutorial.pdf
|
all: tutorial.pdf
|
||||||
|
@ -5,20 +5,20 @@ Projet et rendu
|
|||||||
|
|
||||||
## Sujet
|
## Sujet
|
||||||
|
|
||||||
**Ce projet, étalé sur ce TP et le TP précédent, constitue le cœur de la
|
Vous allez commencer aujourd'hui un projet qui s'étendra au prochain TP et qui
|
||||||
notation de ce cours.**
|
consistera à réaliser la partie d'isolation de la moulinette des ACUs !
|
||||||
|
|
||||||
Vous allez continuer aujourd'hui le projet qui s'étendra depuis le TP précédent
|
|
||||||
et qui consistera à réaliser la partie d'isolation de la moulinette des ACUs !
|
|
||||||
|
|
||||||
Cette semaine, il faudra faire en sorte de restreindre un groupe de processus
|
Cette semaine, il faudra faire en sorte de restreindre un groupe de processus
|
||||||
pour qu'il s'exécute indépendemment de votre système.
|
pour qu'il ne puisse pas faire de déni de service sur notre machine.
|
||||||
|
|
||||||
Il n'y a pas de restriction sur le langage utilisé, vous pouvez tout aussi bien
|
Il n'y a pas de restriction sur le langage utilisé, vous pouvez tout aussi bien
|
||||||
utiliser du C, du C++, du Python, du shell, etc.
|
utiliser du C, du C++, du Python, etc.
|
||||||
|
|
||||||
L'usage de bibliothèques **non relatives** au projet est autorisé : le but de
|
L'usage de bibliothèques **non relatives** au projet est autorisé : le but de
|
||||||
ce sujet est d'évaluer votre compréhension et votre utilisation de la
|
ce sujet est d'évaluer votre compréhension et votre utilisation de la
|
||||||
tuyauterie bas-niveau du noyau liée à la virtualisation légère. À partir du
|
tuyauterie bas-niveau du noyau liée à la virtualisation légère. À partir du
|
||||||
moment où vous n'utilisez pas une bibliothèque qui abstrait complètement cette
|
moment où vous n'utilisez pas une bibliothèque qui abstrait complètement cette
|
||||||
plomberie, n'hésitez pas à l'utiliser !
|
plomberie, n'hésitez pas à l'utiliser !
|
||||||
|
|
||||||
|
Gardez en tête que ce projet sera à continuer au prochain TP, où il sera
|
||||||
|
principalement question de faire des appels systèmes.
|
39
tutorial/3/project-rendu.md
Normal file
39
tutorial/3/project-rendu.md
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
## Modalité de rendu
|
||||||
|
|
||||||
|
Un service automatique s'occupe de réceptionner vos rendus, de faire les
|
||||||
|
vérifications nécessaires et de vous envoyer un accusé de réception (ou de
|
||||||
|
rejet).
|
||||||
|
|
||||||
|
Ce service écoute sur l'adresse <virli@nemunai.re>, c'est donc à cette adresse
|
||||||
|
et exclusivement à celle-ci que vous devez envoyer vos rendus. Tout rendu
|
||||||
|
envoyé à une autre adresse et/ou non signé et/ou reçu après la correction ne
|
||||||
|
sera pas pris en compte.
|
||||||
|
|
||||||
|
Par ailleurs, n'oubliez pas de répondre à
|
||||||
|
[l'évaluation du cours](https://virli.nemunai.re/quiz/6).
|
||||||
|
|
||||||
|
|
||||||
|
## Tarball
|
||||||
|
|
||||||
|
Tous les fichiers identifiés comme étant à rendre pour ce TP sont à
|
||||||
|
placer dans une tarball (pas d'archive ZIP, RAR, ...).
|
||||||
|
|
||||||
|
Voici une arborescence type (adaptez les extensions et les éventuels
|
||||||
|
fichiers supplémentaires associés au langage que vous aurez choisi
|
||||||
|
pour chaque exercice) :
|
||||||
|
|
||||||
|
<div lang="en-US">
|
||||||
|
```
|
||||||
|
login_x-TP3/
|
||||||
|
login_x-TP3/escape.c
|
||||||
|
login_x-TP3/procinfo.sh
|
||||||
|
login_x-TP3/suspend_schedule.sh
|
||||||
|
login_x-TP3/view_caps.c
|
||||||
|
login_x-TP3/monitor.sh
|
||||||
|
login_x-TP3/monitor_init.sh
|
||||||
|
login_x-TP3/syscall_filter.c
|
||||||
|
```
|
||||||
|
</div>
|
||||||
|
|
||||||
|
Les premières étapes du projet ne sont pas à rendre et feront l'objet
|
||||||
|
d'un rendu à part.
|
@ -1,49 +0,0 @@
|
|||||||
\newpage
|
|
||||||
|
|
||||||
Rendu
|
|
||||||
=====
|
|
||||||
|
|
||||||
Modalités de rendu
|
|
||||||
------------------
|
|
||||||
|
|
||||||
En tant que personnes sensibilisées à la sécurité des échanges électroniques,
|
|
||||||
vous devrez m'envoyer vos rendus signés avec votre clef PGP.
|
|
||||||
|
|
||||||
Un service automatique s'occupe de réceptionner vos rendus, de faire des
|
|
||||||
vérifications élémentaires et de vous envoyer un accusé de réception (ou de
|
|
||||||
rejet).
|
|
||||||
|
|
||||||
Ce service écoute sur l'adresse <virli@nemunai.re>, c'est donc à cette adresse
|
|
||||||
et exclusivement à celle-ci que vous devez envoyer vos rendus. Tout rendu
|
|
||||||
envoyé à une autre adresse et/ou non signé et/ou reçu après la correction ne
|
|
||||||
sera pas pris en compte.
|
|
||||||
|
|
||||||
Par ailleurs, n'oubliez pas de répondre à
|
|
||||||
[l'évaluation du cours](https://virli.nemunai.re/quiz/5).
|
|
||||||
|
|
||||||
|
|
||||||
Tarball
|
|
||||||
-------
|
|
||||||
|
|
||||||
Tous les fichiers identifiés comme étant à rendre pour ce TP sont à
|
|
||||||
placer dans une tarball (pas d'archive ZIP, RAR, ...).
|
|
||||||
|
|
||||||
Voici une arborescence type (vous pourriez avoir des fichiers
|
|
||||||
supplémentaires) :
|
|
||||||
|
|
||||||
<div lang="en-US">
|
|
||||||
```
|
|
||||||
login_x-TP3/
|
|
||||||
login_x-TP3/cicd-playbook/
|
|
||||||
login_x-TP3/cicd-playbook/cicd-setup.yml
|
|
||||||
login_x-TP3/cicd-playbook/roles/...
|
|
||||||
login_x-TP3/youp0m/
|
|
||||||
login_x-TP3/youp0m/.drone.yml
|
|
||||||
login_x-TP3/youp0m/.ansible/... # Pour ceux qui auraient fait le 5.4 optionnel
|
|
||||||
login_x-TP3/youp0m/Dockerfile
|
|
||||||
login_x-TP3/youp0m/entrypoint.sh
|
|
||||||
login_x-TP3/youp0m/.dockerignore
|
|
||||||
login_x-TP3/youp0m/...
|
|
||||||
login_x-TP3/registry_play.sh
|
|
||||||
```
|
|
||||||
</div>
|
|
@ -1,20 +1,20 @@
|
|||||||
---
|
---
|
||||||
title: Virtualisation légère -- TP n^o^ 3
|
title: Virtualisation légère -- TP n^o^ 3
|
||||||
subtitle: DevOps, intégration et déploiement continu
|
subtitle: Linux Internals partie 1
|
||||||
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
|
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
|
||||||
institute: EPITA
|
institute: EPITA
|
||||||
date: Mercredi 28 octobre 2020
|
date: Jeudi 30 septembre 2021
|
||||||
abstract: |
|
abstract: |
|
||||||
Durant ce troisième TP, nous allons jouer les DevOps et déployer
|
Ce premier TP consacré aux Linux Internals va nous permettre
|
||||||
automatiquement des services !
|
d'appréhender les notions de pseudos systèmes de fichiers, de
|
||||||
|
cgroups ainsi que de capabilities.
|
||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
Tous les éléments de ce TP (exercices et projet) sont à rendre à
|
Certains éléments de ce TP sont à rendre à <virli@nemunai.re> au
|
||||||
<virli@nemunai.re> au plus tard le **mercredi 4 novembre 2020 à 12 h
|
plus tard le jeudi 12 novembre 2020 à 12 h 42. Consultez la
|
||||||
42**. Consultez la dernière section de chaque partie pour plus d'information
|
dernière section de chaque partie pour plus d'information sur les
|
||||||
sur les éléments à rendre. Et n'oubliez pas de répondre aux [questions de
|
éléments à rendre.
|
||||||
cours](https://virli.nemunai.re/quiz/5).
|
|
||||||
|
|
||||||
En tant que personnes sensibilisées à la sécurité des échanges électroniques,
|
En tant que personnes sensibilisées à la sécurité des échanges électroniques,
|
||||||
vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à
|
vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
include ../pandoc-opts.mk
|
include ../pandoc-opts.mk
|
||||||
|
|
||||||
SOURCES = tutorial.md installation.md chroot.md pseudofs.md capabilities.md cgroups.md oom.md seccomp.md project-intro.md project-body.md project-rendu.md
|
SOURCES_TUTO = tutorial.md setup.md mount.md namespaces.md cmpns.md docker-exec.md networkns.md pidns.md mountns.md userns.md rendu.md
|
||||||
|
|
||||||
|
|
||||||
all: tutorial.pdf
|
all: tutorial.pdf
|
||||||
|
|
||||||
tutorial.pdf: ${SOURCES}
|
tutorial.pdf: ${SOURCES_TUTO}
|
||||||
pandoc ${PANDOCOPTS} -o $@ $+
|
pandoc ${PANDOCOPTS} -o $@ $+
|
||||||
|
|
||||||
clean::
|
clean::
|
||||||
|
@ -5,20 +5,20 @@ Projet et rendu
|
|||||||
|
|
||||||
## Sujet
|
## Sujet
|
||||||
|
|
||||||
Vous allez commencer aujourd'hui un projet qui s'étendra au prochain TP et qui
|
**Ce projet, étalé sur ce TP et le TP précédent, constitue le cœur de la
|
||||||
consistera à réaliser la partie d'isolation de la moulinette des ACUs !
|
notation de ce cours.**
|
||||||
|
|
||||||
|
Vous allez continuer aujourd'hui le projet qui s'étendra depuis le TP précédent
|
||||||
|
et qui consistera à réaliser la partie d'isolation de la moulinette des ACUs !
|
||||||
|
|
||||||
Cette semaine, il faudra faire en sorte de restreindre un groupe de processus
|
Cette semaine, il faudra faire en sorte de restreindre un groupe de processus
|
||||||
pour qu'il ne puisse pas faire de déni de service sur notre machine.
|
pour qu'il s'exécute indépendemment de votre système.
|
||||||
|
|
||||||
Il n'y a pas de restriction sur le langage utilisé, vous pouvez tout aussi bien
|
Il n'y a pas de restriction sur le langage utilisé, vous pouvez tout aussi bien
|
||||||
utiliser du C, du C++, du Python, etc.
|
utiliser du C, du C++, du Python, du shell, etc.
|
||||||
|
|
||||||
L'usage de bibliothèques **non relatives** au projet est autorisé : le but de
|
L'usage de bibliothèques **non relatives** au projet est autorisé : le but de
|
||||||
ce sujet est d'évaluer votre compréhension et votre utilisation de la
|
ce sujet est d'évaluer votre compréhension et votre utilisation de la
|
||||||
tuyauterie bas-niveau du noyau liée à la virtualisation légère. À partir du
|
tuyauterie bas-niveau du noyau liée à la virtualisation légère. À partir du
|
||||||
moment où vous n'utilisez pas une bibliothèque qui abstrait complètement cette
|
moment où vous n'utilisez pas une bibliothèque qui abstrait complètement cette
|
||||||
plomberie, n'hésitez pas à l'utiliser !
|
plomberie, n'hésitez pas à l'utiliser !
|
||||||
|
|
||||||
Gardez en tête que ce projet sera à continuer au prochain TP, où il sera
|
|
||||||
principalement question de faire des appels systèmes.
|
|
||||||
|
@ -1,39 +1,35 @@
|
|||||||
## Modalité de rendu
|
Modalités de rendu
|
||||||
|
==================
|
||||||
|
|
||||||
|
En tant que personnes sensibilisées à la sécurité des échanges électroniques,
|
||||||
|
vous devrez m'envoyer vos rendus signés avec votre clef PGP.
|
||||||
|
|
||||||
Un service automatique s'occupe de réceptionner vos rendus, de faire les
|
Un service automatique s'occupe de réceptionner vos rendus, de faire les
|
||||||
vérifications nécessaires et de vous envoyer un accusé de réception (ou de
|
vérifications nécessaires et de vous envoyer un accusé de réception (ou de
|
||||||
rejet).
|
rejet).
|
||||||
|
|
||||||
Ce service écoute sur l'adresse <virli@nemunai.re>, c'est donc à cette adresse
|
Ce service écoute sur l'adresse <virli@nemunai.re>. C'est donc à cette adresse
|
||||||
et exclusivement à celle-ci que vous devez envoyer vos rendus. Tout rendu
|
et exclusivement à celle-ci que vous devez envoyer vos rendus. Tout rendu
|
||||||
envoyé à une autre adresse et/ou non signé et/ou reçu après la correction ne
|
envoyé à une autre adresse et/ou non signé et/ou reçu après la correction ne
|
||||||
sera pas pris en compte.
|
sera pas pris en compte.
|
||||||
|
|
||||||
Par ailleurs, n'oubliez pas de répondre à
|
Pour différencier le rendu du TP, du rendu du projet, ajoutez une balise
|
||||||
[l'évaluation du cours](https://virli.nemunai.re/quiz/6).
|
`[PROJET]` au sujet de votre courriel, afin qu'il soit traité comme tel.
|
||||||
|
N'hésitez pas à indiquer dans le corps du courriel votre
|
||||||
|
ressenti et vos difficultés ou bien alors écrivez votre meilleure histoire
|
||||||
|
drôle si vous n'avez rien à dire.
|
||||||
|
|
||||||
|
Tarball
|
||||||
|
-------
|
||||||
|
|
||||||
## Tarball
|
Le projet à rendre pour ce cours est à placer dans une tarball (pas d'archive
|
||||||
|
ZIP, RAR, ...).
|
||||||
|
|
||||||
Tous les fichiers identifiés comme étant à rendre pour ce TP sont à
|
Voici une arborescence type:
|
||||||
placer dans une tarball (pas d'archive ZIP, RAR, ...).
|
|
||||||
|
|
||||||
Voici une arborescence type (adaptez les extensions et les éventuels
|
|
||||||
fichiers supplémentaires associés au langage que vous aurez choisi
|
|
||||||
pour chaque exercice) :
|
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
login_x-TP3/
|
login_x-mymoulette/README
|
||||||
login_x-TP3/escape.c
|
login_x-mymoulette/...
|
||||||
login_x-TP3/procinfo.sh
|
|
||||||
login_x-TP3/suspend_schedule.sh
|
|
||||||
login_x-TP3/view_caps.c
|
|
||||||
login_x-TP3/monitor.sh
|
|
||||||
login_x-TP3/monitor_init.sh
|
|
||||||
login_x-TP3/syscall_filter.c
|
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
Les premières étapes du projet ne sont pas à rendre et feront l'objet
|
|
||||||
d'un rendu à part.
|
|
||||||
|
49
tutorial/4/rendu.md
Normal file
49
tutorial/4/rendu.md
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
\newpage
|
||||||
|
|
||||||
|
Projet et rendu
|
||||||
|
===============
|
||||||
|
|
||||||
|
Projet
|
||||||
|
------
|
||||||
|
|
||||||
|
[Le sujet complet du projet est disponible ici](https://virli.nemunai.re/project-3.pdf). Il
|
||||||
|
n'est pas à rendre en même temps que le TP. Consultez ses modalités de rendu
|
||||||
|
pour plus d'informations.
|
||||||
|
|
||||||
|
|
||||||
|
Modalités de rendu
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Un service automatique s'occupe de réceptionner vos rendus, de faire des
|
||||||
|
vérifications élémentaires et de vous envoyer un accusé de réception (ou de
|
||||||
|
rejet).
|
||||||
|
|
||||||
|
Ce service écoute sur l'adresse <virli@nemunai.re>. C'est donc à cette adresse
|
||||||
|
et exclusivement à celle-ci que vous devez envoyer vos rendus. Tout rendu
|
||||||
|
envoyé à une autre adresse et/ou non signé et/ou reçu après la correction ne
|
||||||
|
sera pas pris en compte.
|
||||||
|
|
||||||
|
Afin d'orienter correctement votre rendu, ajoutez une balise `[TP5]` au sujet
|
||||||
|
de votre courriel. N'hésitez pas à indiquer dans le corps du courriel votre
|
||||||
|
ressenti et vos difficultés ou bien alors écrivez votre meilleure histoire
|
||||||
|
drôle si vous n'avez rien à dire.
|
||||||
|
|
||||||
|
Par ailleurs, n'oubliez pas de répondre à
|
||||||
|
[l'évaluation du cours](https://virli.nemunai.re/quiz/7).
|
||||||
|
|
||||||
|
|
||||||
|
Tarball
|
||||||
|
-------
|
||||||
|
|
||||||
|
Tous les exercices de ce TP sont à placer dans une tarball (pas d'archive ZIP,
|
||||||
|
RAR, ...).
|
||||||
|
|
||||||
|
Voici une arborescence type :
|
||||||
|
|
||||||
|
<div lang="en-US">
|
||||||
|
```
|
||||||
|
login_x-TP5/cmpns.sh
|
||||||
|
login_x-TP5/mydocker_exec.sh
|
||||||
|
login_x-TP5/myswitch_root.sh
|
||||||
|
```
|
||||||
|
</div>
|
@ -1,20 +1,19 @@
|
|||||||
---
|
---
|
||||||
title: Virtualisation légère -- TP n^o^ 4
|
title: Virtualisation légère -- TP n^o^ 4
|
||||||
subtitle: Linux Internals partie 1
|
subtitle: Linux Internals partie 2
|
||||||
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
|
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
|
||||||
institute: EPITA
|
institute: EPITA
|
||||||
date: Jeudi 4 novembre 2020
|
date: Jeudi 7 octobre 2021
|
||||||
abstract: |
|
abstract: |
|
||||||
Ce premier TP consacré aux Linux Internals va nous permettre
|
Le but de ce second TP sur les mécanismes internes du noyau va nous
|
||||||
d'appréhender les notions de pseudos systèmes de fichiers, de
|
permettre d'utiliser les commandes et les appels systèmes relatifs
|
||||||
cgroups ainsi que de capabilities.
|
aux *namespaces* ainsi que d'appréhender la complexité des systèmes
|
||||||
|
de fichiers.
|
||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
Certains éléments de ce TP sont à rendre à <virli@nemunai.re> au
|
Tous les exercices de ce TP sont à rendre à <virli@nemunai.re> au
|
||||||
plus tard le jeudi 12 novembre 2020 à 12 h 42. Consultez la
|
plus tard le jeudi 19 novembre 2020 à 12 h 42.
|
||||||
dernière section de chaque partie pour plus d'information sur les
|
|
||||||
éléments à rendre.
|
|
||||||
|
|
||||||
En tant que personnes sensibilisées à la sécurité des échanges électroniques,
|
En tant que personnes sensibilisées à la sécurité des échanges électroniques,
|
||||||
vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à
|
vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,11 +1,19 @@
|
|||||||
include ../pandoc-opts.mk
|
include ../pandoc-opts.mk
|
||||||
|
|
||||||
SOURCES_TUTO = tutorial.md setup.md mount.md namespaces.md cmpns.md docker-exec.md networkns.md pidns.md mountns.md userns.md rendu.md
|
SOURCES = tutorial.md \
|
||||||
|
../devops/devops.md \
|
||||||
|
../devops/what.md \
|
||||||
|
../devops/tools.md \
|
||||||
|
../devops/ci.md \
|
||||||
|
../devops/publish-docker.md \
|
||||||
|
../docker-internals/oci.md \
|
||||||
|
../docker-internals/registry.md \
|
||||||
|
rendu.md
|
||||||
|
|
||||||
|
|
||||||
all: tutorial.pdf
|
all: tutorial.pdf
|
||||||
|
|
||||||
tutorial.pdf: ${SOURCES_TUTO}
|
tutorial.pdf: ${SOURCES}
|
||||||
pandoc ${PANDOCOPTS} -o $@ $+
|
pandoc ${PANDOCOPTS} -o $@ $+
|
||||||
|
|
||||||
clean::
|
clean::
|
||||||
|
@ -1,35 +0,0 @@
|
|||||||
Modalités de rendu
|
|
||||||
==================
|
|
||||||
|
|
||||||
En tant que personnes sensibilisées à la sécurité des échanges électroniques,
|
|
||||||
vous devrez m'envoyer vos rendus signés avec votre clef PGP.
|
|
||||||
|
|
||||||
Un service automatique s'occupe de réceptionner vos rendus, de faire les
|
|
||||||
vérifications nécessaires et de vous envoyer un accusé de réception (ou de
|
|
||||||
rejet).
|
|
||||||
|
|
||||||
Ce service écoute sur l'adresse <virli@nemunai.re>. C'est donc à cette adresse
|
|
||||||
et exclusivement à celle-ci que vous devez envoyer vos rendus. Tout rendu
|
|
||||||
envoyé à une autre adresse et/ou non signé et/ou reçu après la correction ne
|
|
||||||
sera pas pris en compte.
|
|
||||||
|
|
||||||
Pour différencier le rendu du TP, du rendu du projet, ajoutez une balise
|
|
||||||
`[PROJET]` au sujet de votre courriel, afin qu'il soit traité comme tel.
|
|
||||||
N'hésitez pas à indiquer dans le corps du courriel votre
|
|
||||||
ressenti et vos difficultés ou bien alors écrivez votre meilleure histoire
|
|
||||||
drôle si vous n'avez rien à dire.
|
|
||||||
|
|
||||||
Tarball
|
|
||||||
-------
|
|
||||||
|
|
||||||
Le projet à rendre pour ce cours est à placer dans une tarball (pas d'archive
|
|
||||||
ZIP, RAR, ...).
|
|
||||||
|
|
||||||
Voici une arborescence type:
|
|
||||||
|
|
||||||
<div lang="en-US">
|
|
||||||
```
|
|
||||||
login_x-mymoulette/README
|
|
||||||
login_x-mymoulette/...
|
|
||||||
```
|
|
||||||
</div>
|
|
@ -1,49 +1,49 @@
|
|||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
Projet et rendu
|
Rendu
|
||||||
===============
|
=====
|
||||||
|
|
||||||
Projet
|
|
||||||
------
|
|
||||||
|
|
||||||
[Le sujet complet du projet est disponible ici](https://virli.nemunai.re/project-3.pdf). Il
|
|
||||||
n'est pas à rendre en même temps que le TP. Consultez ses modalités de rendu
|
|
||||||
pour plus d'informations.
|
|
||||||
|
|
||||||
|
|
||||||
Modalités de rendu
|
Modalités de rendu
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
En tant que personnes sensibilisées à la sécurité des échanges électroniques,
|
||||||
|
vous devrez m'envoyer vos rendus signés avec votre clef PGP.
|
||||||
|
|
||||||
Un service automatique s'occupe de réceptionner vos rendus, de faire des
|
Un service automatique s'occupe de réceptionner vos rendus, de faire des
|
||||||
vérifications élémentaires et de vous envoyer un accusé de réception (ou de
|
vérifications élémentaires et de vous envoyer un accusé de réception (ou de
|
||||||
rejet).
|
rejet).
|
||||||
|
|
||||||
Ce service écoute sur l'adresse <virli@nemunai.re>. C'est donc à cette adresse
|
Ce service écoute sur l'adresse <virli@nemunai.re>, c'est donc à cette adresse
|
||||||
et exclusivement à celle-ci que vous devez envoyer vos rendus. Tout rendu
|
et exclusivement à celle-ci que vous devez envoyer vos rendus. Tout rendu
|
||||||
envoyé à une autre adresse et/ou non signé et/ou reçu après la correction ne
|
envoyé à une autre adresse et/ou non signé et/ou reçu après la correction ne
|
||||||
sera pas pris en compte.
|
sera pas pris en compte.
|
||||||
|
|
||||||
Afin d'orienter correctement votre rendu, ajoutez une balise `[TP5]` au sujet
|
|
||||||
de votre courriel. N'hésitez pas à indiquer dans le corps du courriel votre
|
|
||||||
ressenti et vos difficultés ou bien alors écrivez votre meilleure histoire
|
|
||||||
drôle si vous n'avez rien à dire.
|
|
||||||
|
|
||||||
Par ailleurs, n'oubliez pas de répondre à
|
Par ailleurs, n'oubliez pas de répondre à
|
||||||
[l'évaluation du cours](https://virli.nemunai.re/quiz/7).
|
[l'évaluation du cours](https://virli.nemunai.re/quiz/5).
|
||||||
|
|
||||||
|
|
||||||
Tarball
|
Tarball
|
||||||
-------
|
-------
|
||||||
|
|
||||||
Tous les exercices de ce TP sont à placer dans une tarball (pas d'archive ZIP,
|
Tous les fichiers identifiés comme étant à rendre pour ce TP sont à
|
||||||
RAR, ...).
|
placer dans une tarball (pas d'archive ZIP, RAR, ...).
|
||||||
|
|
||||||
Voici une arborescence type :
|
Voici une arborescence type (vous pourriez avoir des fichiers
|
||||||
|
supplémentaires) :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
login_x-TP5/cmpns.sh
|
login_x-TP3/
|
||||||
login_x-TP5/mydocker_exec.sh
|
login_x-TP3/cicd-playbook/
|
||||||
login_x-TP5/myswitch_root.sh
|
login_x-TP3/cicd-playbook/cicd-setup.yml
|
||||||
|
login_x-TP3/cicd-playbook/roles/...
|
||||||
|
login_x-TP3/youp0m/
|
||||||
|
login_x-TP3/youp0m/.drone.yml
|
||||||
|
login_x-TP3/youp0m/.ansible/... # Pour ceux qui auraient fait le 5.4 optionnel
|
||||||
|
login_x-TP3/youp0m/Dockerfile
|
||||||
|
login_x-TP3/youp0m/entrypoint.sh
|
||||||
|
login_x-TP3/youp0m/.dockerignore
|
||||||
|
login_x-TP3/youp0m/...
|
||||||
|
login_x-TP3/registry_play.sh
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,19 +1,20 @@
|
|||||||
---
|
---
|
||||||
title: Virtualisation légère -- TP n^o^ 5
|
title: Virtualisation légère -- TP n^o^ 5
|
||||||
subtitle: Linux Internals partie 2
|
subtitle: DevOps, intégration et déploiement continu
|
||||||
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
|
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
|
||||||
institute: EPITA
|
institute: EPITA
|
||||||
date: Jeudi 12 novembre 2020
|
date: Jeudi 4 novembre 2021
|
||||||
abstract: |
|
abstract: |
|
||||||
Le but de ce second TP sur les mécanismes internes du noyau va nous
|
Durant ce nouveau TP, nous allons jouer les DevOps et déployer
|
||||||
permettre d'utiliser les commandes et les appels systèmes relatifs
|
automatiquement des services !
|
||||||
aux *namespaces* ainsi que d'appréhender la complexité des systèmes
|
|
||||||
de fichiers.
|
|
||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
Tous les exercices de ce TP sont à rendre à <virli@nemunai.re> au
|
Tous les éléments de ce TP (exercices et projet) sont à rendre à
|
||||||
plus tard le jeudi 19 novembre 2020 à 12 h 42.
|
<virli@nemunai.re> au plus tard le **mercredi 4 novembre 2020 à 12 h
|
||||||
|
42**. Consultez la dernière section de chaque partie pour plus d'information
|
||||||
|
sur les éléments à rendre. Et n'oubliez pas de répondre aux [questions de
|
||||||
|
cours](https://virli.nemunai.re/quiz/5).
|
||||||
|
|
||||||
En tant que personnes sensibilisées à la sécurité des échanges électroniques,
|
En tant que personnes sensibilisées à la sécurité des échanges électroniques,
|
||||||
vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à
|
vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à
|
||||||
|
@ -3,15 +3,19 @@
|
|||||||
Installation
|
Installation
|
||||||
============
|
============
|
||||||
|
|
||||||
|
Avant de voir de quoi il s'agit, afin de gagner du temps, nous allons commencer
|
||||||
|
par installer Docker.
|
||||||
|
|
||||||
## Prérequis
|
## Prérequis
|
||||||
|
|
||||||
Docker repose sur plusieurs techniques implémentées dans les récents noyaux
|
Docker repose sur plusieurs techniques implémentées dans les récents noyaux
|
||||||
Linux. Nous consacrerons les prochains cours à comprendre leur
|
Linux (et plus marginalement, Windows). Nous consacrerons les prochains cours à
|
||||||
fonctionnement. Ces techniques ne sont pas limitées à une architecture de
|
comprendre leur fonctionnement. Ces techniques, contrairement aux instructions
|
||||||
microprocesseur spécifique (comme peuvent l'être les instructions de
|
de virtualisation qui rendent les hyperviseurs attractifs, ne sont pas limitées
|
||||||
virtualisation nécessaire pour rendre les hyperviseurs attractifs) ; cependant
|
à une architecture de microprocesseur spécifique ; cependant la communauté
|
||||||
la communauté autour de Docker utilisant principalement l'architecture `amd64`,
|
autour de Docker utilise principalement l'architecture `amd64`, c'est sur cette
|
||||||
c'est sur cette dernière que Docker pourra être exploité à son plein potentiel.
|
dernière que Docker pourra être exploité à son plein potentiel, suivi de près
|
||||||
|
par l'architecture `arm64`.
|
||||||
|
|
||||||
Avant de continuer, assurez-vous que votre machine a bien démarré sur un noyau
|
Avant de continuer, assurez-vous que votre machine a bien démarré sur un noyau
|
||||||
64 bits. Le retour de la commande `uname -m` doit vous indiquer :
|
64 bits. Le retour de la commande `uname -m` doit vous indiquer :
|
||||||
@ -22,15 +26,24 @@ x86_64
|
|||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Ou si vous êtes intrépide :
|
||||||
|
|
||||||
|
<div lang="en-US">
|
||||||
|
```
|
||||||
|
aarch64
|
||||||
|
```
|
||||||
|
</div>
|
||||||
|
|
||||||
Assurez-vous également d'avoir un noyau récent, avec la commande `uname -r` :
|
Assurez-vous également d'avoir un noyau récent, avec la commande `uname -r` :
|
||||||
|
|
||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
5.8.9-gentoo
|
5.14.2-gentoo
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
Vous ne pourrez pas utiliser Docker avec un noyau antérieur à la version 3.10.
|
Rassurez-vous, même si vous n'avez pas compilé le dernier noyau disponible sur
|
||||||
|
<kernel.org>, Docker s'utilise à partir de Linux 3.10.
|
||||||
|
|
||||||
|
|
||||||
## Par le gestionnaire de paquets
|
## Par le gestionnaire de paquets
|
||||||
@ -40,9 +53,10 @@ plus ou moins récente. Sous Debian et ses dérivés (Ubuntu, Mint, ...) le paqu
|
|||||||
a été nommé [`docker.io`](https://packages.debian.org/sid/docker.io).
|
a été nommé [`docker.io`](https://packages.debian.org/sid/docker.io).
|
||||||
|
|
||||||
Si dans un environnement de production, on préférera sans doute utiliser une
|
Si dans un environnement de production, on préférera sans doute utiliser une
|
||||||
version déjà bien éprouvée, pour ce cours, nous allons avoir besoin de la
|
version déjà bien éprouvée (comme celle des dépôts de sa distribution), pour ce
|
||||||
**dernière version disponible**. Référez-vous à la documentation officielle
|
cours, nous allons avoir besoin de la **dernière version
|
||||||
correspondant à votre distribution :
|
disponible**. Référez-vous à la documentation officielle correspondant à votre
|
||||||
|
distribution :
|
||||||
|
|
||||||
<https://docs.docker.com/engine/install/debian/>
|
<https://docs.docker.com/engine/install/debian/>
|
||||||
|
|
||||||
@ -66,6 +80,13 @@ Une fois l'installation terminée, lancez l'application : elle ajoutera une
|
|||||||
icône dans la zone de notification, vous permettant de contrôler l'exécution de
|
icône dans la zone de notification, vous permettant de contrôler l'exécution de
|
||||||
la machine virtuelle sous-jacente.
|
la machine virtuelle sous-jacente.
|
||||||
|
|
||||||
|
Notez qu'à partir de janvier 2022, ces applications passent sous une licence
|
||||||
|
payante pour les grosses entreprises[^TODO]. Cela ne concernera nous concerne
|
||||||
|
pas, car la licence est gratuite pour un usage éducatif ou personnel. Notez que
|
||||||
|
ce n'est pas le binaire Docker qui change de licence, elle reste libre, mais
|
||||||
|
seulement les applications Docker Desktop.
|
||||||
|
|
||||||
|
[^TODO]: FIXME article de blog concernant docker desktop
|
||||||
|
|
||||||
## Évaluation en ligne
|
## Évaluation en ligne
|
||||||
|
|
||||||
@ -93,32 +114,33 @@ Une sortie similaire au bloc suivant devrait apparaître sur votre écran :
|
|||||||
<div lang="en-US">
|
<div lang="en-US">
|
||||||
```
|
```
|
||||||
Client:
|
Client:
|
||||||
Version: 19.03.12
|
Version: 20.10.8
|
||||||
API version: 1.40
|
API version: 1.41
|
||||||
Go version: go1.14.6
|
Go version: go1.16.6
|
||||||
Git commit: 48a66213fe
|
Git commit: 3967b7d28e
|
||||||
Built: Thu Aug 6 01:27:59 2020
|
Built: Wed Aug 4 12:55:42 2021
|
||||||
OS/Arch: linux/amd64
|
OS/Arch: linux/amd64
|
||||||
|
Context: default
|
||||||
Experimental: false
|
Experimental: false
|
||||||
|
|
||||||
Server:
|
Server:
|
||||||
Engine:
|
Engine:
|
||||||
Version: 19.03.12
|
Version: 20.10.8
|
||||||
API version: 1.40 (minimum version 1.12)
|
API version: 1.41 (minimum version 1.12)
|
||||||
Go version: go1.14.6
|
Go version: go1.16.6
|
||||||
Git commit: 48a66213fe
|
Git commit: 75249d88bc
|
||||||
Built: Thu Aug 6 01:26:25 2020
|
Built: Wed Aug 4 12:55:42 2021
|
||||||
OS/Arch: linux/amd64
|
OS/Arch: linux/amd64
|
||||||
Experimental: true
|
Experimental: true
|
||||||
containerd:
|
containerd:
|
||||||
Version: 1.2.13
|
Version: 1.5.5
|
||||||
GitCommit: 35bd7a5f69c13e1563af8a93431411cd9ecf5021
|
GitCommit: 72cec4be58a9eb6b2910f5d10f1c01ca47d231c0.m
|
||||||
runc:
|
runc:
|
||||||
Version: 1.0.0-rc10
|
Version: 1.0.2
|
||||||
GitCommit:
|
GitCommit: v1.0.2-0-g52b36a2d
|
||||||
docker-init:
|
docker-init:
|
||||||
Version: 0.18.0
|
Version: 0.19.0
|
||||||
GitCommit: fec3683b971d9c3ef73f284f176672c44b448662
|
GitCommit: de40ad0
|
||||||
```
|
```
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ Docker est un écosystème d'outils de haut niveau, permettant d'utiliser des
|
|||||||
*conteneurs*.
|
*conteneurs*.
|
||||||
|
|
||||||
Docker est composé d'un daemon lancé au démarrage de votre machine, avec lequel
|
Docker est composé d'un daemon lancé au démarrage de votre machine, avec lequel
|
||||||
vous interagissez via un client (le programme `docker`). La communication entre
|
nous interagissons via un client (le programme `docker`). La communication entre
|
||||||
le daemon et le client s'effectuant sur une API REST généralement au travers
|
le daemon et le client s'effectuant sur une API REST généralement au travers
|
||||||
d'une socket.
|
d'une socket.
|
||||||
|
|
||||||
@ -21,6 +21,9 @@ au deamon dans la machine virtuelle.[^dockermachine]
|
|||||||
`DOCKER_HOST` ou de passer le paramètre `-H` suivi de l'URL de la socket à
|
`DOCKER_HOST` ou de passer le paramètre `-H` suivi de l'URL de la socket à
|
||||||
`docker`. Voir aussi : <https://docs.docker.com/machine/overview/>
|
`docker`. Voir aussi : <https://docs.docker.com/machine/overview/>
|
||||||
|
|
||||||
|
Commençons par planter le décors, en détaillant les principaux mécanismes de
|
||||||
|
Docker.
|
||||||
|
|
||||||
|
|
||||||
## Les images Docker
|
## Les images Docker
|
||||||
|
|
||||||
@ -29,7 +32,7 @@ d'un ensemble de couches, agrégées selon le principe d'UnionFS.
|
|||||||
|
|
||||||
Une image peut, par exemple, contenir :
|
Une image peut, par exemple, contenir :
|
||||||
|
|
||||||
* un système Ubuntu complet,
|
* un système Ubuntu opérationnel,
|
||||||
* le programme `busybox`,
|
* le programme `busybox`,
|
||||||
* un serveur web et votre application web, prêts à l'emploi,
|
* un serveur web et votre application web, prêts à l'emploi,
|
||||||
* ...
|
* ...
|
||||||
@ -45,7 +48,7 @@ les outils fournis, soit les récupérer depuis un registre.
|
|||||||
|
|
||||||
Alors que les images constituent la partie immuable de Docker, les conteneurs
|
Alors que les images constituent la partie immuable de Docker, les conteneurs
|
||||||
sont sa partie vivante. Chaque conteneur est créé à partir d'une image : à
|
sont sa partie vivante. Chaque conteneur est créé à partir d'une image : à
|
||||||
chaque fois que vous lancez un conteneur, une couche lecture/écriture est
|
chaque fois que nous lançons un conteneur, une couche lecture/écriture est
|
||||||
ajoutée au dessus de l'image. Cette couche est propre au conteneur et
|
ajoutée au dessus de l'image. Cette couche est propre au conteneur et
|
||||||
temporaire : l'image n'est pas modifiée par l'exécution d'un conteneur.
|
temporaire : l'image n'est pas modifiée par l'exécution d'un conteneur.
|
||||||
|
|
||||||
@ -67,3 +70,7 @@ Le registre utilisé de base est le [Docker Hub](https://hub.docker.com/) : il
|
|||||||
contient à la fois des images officielles (ubuntu, debian, nginx, ...), des
|
contient à la fois des images officielles (ubuntu, debian, nginx, ...), des
|
||||||
images créées par des utilisateurs, mais aussi des images de grands éditeurs,
|
images créées par des utilisateurs, mais aussi des images de grands éditeurs,
|
||||||
payantes, à destination des entreprises.
|
payantes, à destination des entreprises.
|
||||||
|
|
||||||
|
Des registres alternatifs existent comme celui de
|
||||||
|
[quay.io](https://quay.io/#FIXME), et les dépôts de sources tels que [GitHub](#FIXME) et
|
||||||
|
[GitLab](#FIXME) le proposent également.
|
||||||
|
@ -3,13 +3,13 @@ title: Ελαφριά εικονικοποίηση -- Πρακτική δουλ
|
|||||||
subtitle: κυβερνήτης
|
subtitle: κυβερνήτης
|
||||||
author: Πιέρ-Ολιβιέ *νεμυναιρε* [ῥαφοπώλης]{.smallcaps}
|
author: Πιέρ-Ολιβιέ *νεμυναιρε* [ῥαφοπώλης]{.smallcaps}
|
||||||
institute: ΣΠκΠΤ
|
institute: ΣΠκΠΤ
|
||||||
date: Πέμπτη 19 Νοεμβρίου 2020
|
date: Πέμπτη 19 Νοεμβρίου 2021
|
||||||
abstract: |
|
abstract: |
|
||||||
Ο στόχος αυτού του τελευταίου εργαστηρίου είναι να κατανοήσει το κυβερνήτης και την ενορχήστρωση εμπορευματοκιβωτίων.
|
Ο στόχος αυτού του τελευταίου εργαστηρίου είναι να κατανοήσει το κυβερνήτης και την ενορχήστρωση εμπορευματοκιβωτίων.
|
||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
Οι ασκήσεις για αυτό το πρακτικό έργο μπορούν να επιστραφούν στη διεύθυνση <ανδροππήςρε@nemunai.re> το αργότερο την Πέμπτη 26 Νοεμβρίου 2020 στις 11:42 μ.μ., οι ερωτήσεις των μαθημάτων πρέπει επίσης να ολοκληρωθούν πριν από αυτήν την ημερομηνία. Δείτε το τελευταίο μέρος αυτού του εργαστηρίου για λεπτομέρειες.
|
Οι ασκήσεις για αυτό το πρακτικό έργο μπορούν να επιστραφούν στη διεύθυνση <ανδροππήςρε@nemunai.re> το αργότερο την Πέμπτη 26 Νοεμβρίου 2021 στις 11:42 μ.μ., οι ερωτήσεις των μαθημάτων πρέπει επίσης να ολοκληρωθούν πριν από αυτήν την ημερομηνία. Δείτε το τελευταίο μέρος αυτού του εργαστηρίου για λεπτομέρειες.
|
||||||
|
|
||||||
Καθώς οι άνθρωποι γνωρίζουν την ασφάλεια των ηλεκτρονικών ανταλλαγών, πρέπει να μου στείλετε τις υπογεγραμμένες αποδόσεις σας με το κλειδί PGP. Θυμηθείτε να [με](https://keys.openpgp.org/search?q=nemunaire%40nemunai.re) υπογράψετε το κλειδί σας και μην διστάσετε [να υπογράψετε το δικό σας](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/).
|
Καθώς οι άνθρωποι γνωρίζουν την ασφάλεια των ηλεκτρονικών ανταλλαγών, πρέπει να μου στείλετε τις υπογεγραμμένες αποδόσεις σας με το κλειδί PGP. Θυμηθείτε να [με](https://keys.openpgp.org/search?q=nemunaire%40nemunai.re) υπογράψετε το κλειδί σας και μην διστάσετε [να υπογράψετε το δικό σας](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/).
|
||||||
...
|
...
|
||||||
|
@ -3,7 +3,7 @@ title: Virtualisation légère -- TP n^o^ 6
|
|||||||
subtitle: Kubernetes
|
subtitle: Kubernetes
|
||||||
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
|
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
|
||||||
institute: EPITA
|
institute: EPITA
|
||||||
date: Jeudi 19 novembre 2020
|
date: Jeudi 19 novembre 2021
|
||||||
abstract: |
|
abstract: |
|
||||||
Le but de ce dernier TP est d'appréhender Kubernetes et l'orchestration de
|
Le but de ce dernier TP est d'appréhender Kubernetes et l'orchestration de
|
||||||
conteneurs.
|
conteneurs.
|
||||||
|
Loading…
Reference in New Issue
Block a user