tutorials: improve theme + use pandoc 2
This commit is contained in:
parent
de21be218a
commit
d25af4fdb2
65 changed files with 1281 additions and 1292 deletions
|
@ -1,19 +1,6 @@
|
|||
include ../pandoc-opts.mk
|
||||
|
||||
SOURCES = tutorial.md setup.md machine.md swarm.md stack.md rendu.md
|
||||
PANDOCOPTS = --latex-engine=xelatex \
|
||||
--standalone \
|
||||
--normalize \
|
||||
--number-sections \
|
||||
--smart \
|
||||
-M lang=fr-FR \
|
||||
-M fontsize=12pt \
|
||||
-M papersize=a4paper \
|
||||
-M mainfont="Linux Libertine O" \
|
||||
-M monofont="FantasqueSansMono-Regular" \
|
||||
-M sansfont="Linux Biolinum O" \
|
||||
-M colorlinks=true \
|
||||
-M linkcolor="black" \
|
||||
-M urlcolor="[rgb]{0.2,0.6,0.4}" \
|
||||
--include-in-header=../header.tex
|
||||
|
||||
|
||||
all: tutorial.pdf
|
||||
|
|
|
@ -55,8 +55,8 @@ donner à cette machine (les machines ne sont pas considérées comme jetables,
|
|||
leur nom vous permettra par exemple de relancer une machine plus tard) :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
docker-machine create --driver virtualbox echinoidea
|
||||
```bash
|
||||
docker-machine create --driver virtualbox echinoidea
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -81,14 +81,14 @@ avec `docker-machine` cela prend tout son sens, car vous pouvez très facilement
|
|||
changer de daamon/machine avec une simple commande :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
$ docker container ls
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS
|
||||
$ eval $(docker-machine env echinoidea)
|
||||
$ docker container ls -a
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS
|
||||
a814293b9f45 armbuild/busybox "/bin/sh" 18 seconds ago Up 10 minutes
|
||||
0caddeed5037 armbuild/alpine "/bin/sh" 2 weeks ago Created
|
||||
```
|
||||
42sh$ docker container ls
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS
|
||||
42sh$ eval $(docker-machine env echinoidea)
|
||||
42sh$ docker container ls -a
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS
|
||||
a814293b9f45 armbuild/busybox "/bin/sh" 18 seconds ago Up 10 minutes
|
||||
0caddeed5037 armbuild/alpine "/bin/sh" 2 weeks ago Created
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -141,20 +141,20 @@ Commençons par voir sur quel port le daemon `dockerd` de notre machine
|
|||
virtuelle écoute :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
(virt1) 42sh$ netstat -tpln | grep dockerd
|
||||
Proto Recv-Q Send-Q Local Address Foreign Address PID/Program name
|
||||
tcp 0 0 :::2376 :::* 980/dockerd
|
||||
```bash
|
||||
(virt1) 42sh$ netstat -tpln | grep dockerd
|
||||
Proto Recv-Q Send-Q Local Address Foreign Address PID/Program name
|
||||
tcp 0 0 :::2376 :::* 980/dockerd
|
||||
```
|
||||
</div>
|
||||
|
||||
Essayons de renseigner simplement cette configuration à notre client Docker :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
(main) 42sh$ docker -H tcp://$VM1_IP:2376/ info
|
||||
Get http://$VM1_IP:2376/v1.32/info: net/http: HTTP/1.x transport connection broken: malformed HTTP response "\x15\x03\x01\x00\x02\x02".
|
||||
* Are you trying to connect to a TLS-enabled daemon without TLS?
|
||||
```bash
|
||||
(main) 42sh$ docker -H tcp://$VM1_IP:2376/ info
|
||||
Get http://$VM1_IP:2376/v1.32/info: net/http: HTTP/1.x transport connection broken: malformed HTTP response "\x15\x03\x01\x00\x02\x02".
|
||||
* Are you trying to connect to a TLS-enabled daemon without TLS?
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -173,20 +173,20 @@ Tout le nécessaire est déjà configuré au sein de `boot2docker`, pour nos tes
|
|||
nous n'avons qu'à recopier la clef et les certificats en place.
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
(main) 42sh$ mkdir remote/virt1
|
||||
(main) 42sh$ scp "docker@$VM1_IP:.docker/*" remote/virt1
|
||||
ca.pem
|
||||
cert.pem
|
||||
key.pem
|
||||
```bash
|
||||
(main) 42sh$ mkdir remote/virt1
|
||||
(main) 42sh$ scp "docker@$VM1_IP:.docker/*" remote/virt1
|
||||
ca.pem
|
||||
cert.pem
|
||||
key.pem
|
||||
```
|
||||
</div>
|
||||
|
||||
Tentons maintenant de nous connecter au daemon distant en utilisant ces éléments :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
42sh$ DOCKER_CERT_PATH=remote/virt1/ docker -H tcp://$VM1_IP:2376/ --tlsverify info
|
||||
```bash
|
||||
42sh$ DOCKER_CERT_PATH=remote/virt1/ docker -H tcp://$VM1_IP:2376/ --tlsverify info
|
||||
```
|
||||
</div>
|
||||
|
||||
|
|
|
@ -38,8 +38,8 @@ cela dépendra de votre avancée dans le projet) :
|
|||
|
||||
<div lang="en-US">
|
||||
```
|
||||
login_x-TP2/
|
||||
login_x-TP2/mymonitoring-stack.yml
|
||||
login_x-TP2/
|
||||
login_x-TP2/mymonitoring-stack.yml
|
||||
```
|
||||
</div>
|
||||
|
||||
|
|
|
@ -27,10 +27,10 @@ pour bon nombres d'environnements. Nous pouvons l'installer en suivant la
|
|||
procédure suivante :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
curl -L https://github.com/docker/machine/releases/download/v0.15.0/docker-machine-Linux-x86_64 \
|
||||
> /usr/bin/docker-machine
|
||||
chmod +x /usr/bin/docker-machine
|
||||
```bash
|
||||
curl -L https://github.com/docker/machine/releases/download/v0.15.0/docker-machine-Linux-x86_64 \
|
||||
> /usr/bin/docker-machine
|
||||
chmod +x /usr/bin/docker-machine
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -59,8 +59,8 @@ Comme avec Docker, nous pouvons vérifier le bon fonctionnement de
|
|||
|
||||
<div lang="en-US">
|
||||
```
|
||||
42sh$ docker-machine version
|
||||
docker-machine version 0.12.2, build 9371605
|
||||
42sh$ docker-machine version
|
||||
docker-machine version 0.12.2, build 9371605
|
||||
```
|
||||
</div>
|
||||
|
||||
|
|
|
@ -27,8 +27,8 @@ un serveur web, qui sera bien plus représentatif de ce que l'on pourra obtenir.
|
|||
Précédemment, nous lancions notre serveur web favori avec :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
docker container run --name mywebs -d nginx
|
||||
```bash
|
||||
docker container run --name mywebs -d nginx
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -36,8 +36,8 @@ La même commande, mais déployée à partir d'un nœud manager, vers un nœud
|
|||
*workers*, est :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
docker service create --name myWebS nginx
|
||||
```bash
|
||||
docker service create --name myWebS nginx
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -46,10 +46,10 @@ Allons-y, essayons !
|
|||
On peut consulter l'état du service avec, comme d'habitude `ls` :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
42sh$ docker service ls
|
||||
ID NAME MODE REPLICAS IMAGE PORTS
|
||||
iyue3rgd0ohs myWebS replicated 1/1 nginx:latest
|
||||
```
|
||||
42sh$ docker service ls
|
||||
ID NAME MODE REPLICAS IMAGE PORTS
|
||||
iyue3rgd0ohs myWebS replicated 1/1 nginx:latest
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -62,8 +62,8 @@ Rien de très excitant pour le moment, car nous ne pouvons pas vraiment accéder
|
|||
d'ajouter une redirection de port :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
docker service update --publish-add 80 myWebS
|
||||
```bash
|
||||
docker service update --publish-add 80 myWebS
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -109,16 +109,16 @@ Ce qui se fait souvent avec beaucoup de douleur hors de Docker, se résume ici
|
|||
:
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
docker service update --replicas 3 myWebS
|
||||
```bash
|
||||
docker service update --replicas 3 myWebS
|
||||
```
|
||||
</div>
|
||||
|
||||
Roulement de tambours .......
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
docker service ps myWebS
|
||||
```bash
|
||||
docker service ps myWebS
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -139,8 +139,8 @@ Notre système de monitoring est une *stack* lui aussi, d'ailleurs, nous pouvons
|
|||
la lancer grâce à notre `docker-compose.yml` :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
docker stack deploy --compose-file docker-compose.yml tic
|
||||
```bash
|
||||
docker stack deploy --compose-file docker-compose.yml tic
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -151,23 +151,23 @@ paramètres qui ne serviront qu'au déploiement de notre tâche.
|
|||
|
||||
<div lang="en-US">
|
||||
```yaml
|
||||
version: '3'
|
||||
services:
|
||||
redis:
|
||||
image: redis:alpine
|
||||
version: '3'
|
||||
services:
|
||||
redis:
|
||||
image: redis:alpine
|
||||
|
||||
deploy:
|
||||
replicas: 6
|
||||
update_config:
|
||||
parallelism: 2
|
||||
delay: 10s
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
resources:
|
||||
memory: 50M
|
||||
deploy:
|
||||
replicas: 6
|
||||
update_config:
|
||||
parallelism: 2
|
||||
delay: 10s
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == manager
|
||||
resources:
|
||||
memory: 50M
|
||||
```
|
||||
</div>
|
||||
|
||||
|
|
|
@ -77,8 +77,8 @@ La première chose à faire, est d'initialiser un cluster swarm. Pour se faire,
|
|||
ce n'est pas plus compliqué que de faire :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
docker swarm init
|
||||
```bash
|
||||
docker swarm init
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -98,8 +98,8 @@ lorsque vous initialisez le cluster. Si vous avez raté la sortie de la
|
|||
commande, vous pouvez retrouver le jeton avec :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
docker swarm join-token worker
|
||||
```bash
|
||||
docker swarm join-token worker
|
||||
```
|
||||
</div>
|
||||
|
||||
|
@ -119,21 +119,21 @@ utilisant `docker-machine`.
|
|||
des redirections de ports, mais le résultat n'est pas garanti !
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
eval $(docker-machine env echinoidea)
|
||||
docker swarm join --token SWMTKN-1-...-... 10.10.10.42:2377
|
||||
```bash
|
||||
eval $(docker-machine env echinoidea)
|
||||
docker swarm join --token SWMTKN-1-...-... 10.10.10.42:2377
|
||||
```
|
||||
</div>
|
||||
|
||||
Une fois rejoint, vous devriez voir apparaître un nouveau nœud *worker* dans :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
42sh$ eval $(docker-machine env -u)
|
||||
42sh$ docker node ls
|
||||
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
|
||||
y9skzvuf989hjrkciu8mnsy echinoidea Ready Active
|
||||
ovgh6r32kgcbswb2we48br1 * wales Ready Active Leader
|
||||
```
|
||||
42sh$ eval $(docker-machine env -u)
|
||||
42sh$ docker node ls
|
||||
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
|
||||
y9skzvuf989hjrkciu8mnsy echinoidea Ready Active
|
||||
ovgh6r32kgcbswb2we48br1 * wales Ready Active Leader
|
||||
```
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,22 +1,24 @@
|
|||
---
|
||||
title: Virtualisation légère -- TP n^o^ 2.3
|
||||
subtitle: L'orchestration avec Docker
|
||||
author: Pierre-Olivier *Nemunaire* Mercier
|
||||
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
|
||||
institute: EPITA
|
||||
date: Jeudi 18 octobre 2018
|
||||
abstract: |
|
||||
Dans la troisième partie de ce TP, nous allons orchestrer nos
|
||||
conteneurs !
|
||||
|
||||
\vspace{1em}
|
||||
|
||||
Tous les éléments de ce TP (exercices et projet) sont à rendre à
|
||||
<virli@nemunai.re> au plus tard le mercredi 24 octobre 2018 à 0
|
||||
h 42. Consultez la 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, vous devrez m'envoyer vos rendus signés avec votre
|
||||
clef PGP. Pensez à
|
||||
[me](https://pgp.mit.edu/pks/lookup?op=vindex&search=0x842807A84573CC96)
|
||||
faire signer votre clef et n'hésitez pas à [faire signer votre
|
||||
clef](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/).
|
||||
...
|
||||
|
||||
Dans la troisième partie de ce TP, nous allons orchestrer nos conteneurs !
|
||||
|
||||
Tous les éléments de ce TP (exercices et projet) sont à rendre à
|
||||
<virli@nemunai.re> au plus tard le mercredi 24 octobre 2018 à 0 h 42. Consultez la
|
||||
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,
|
||||
vous devrez m'envoyer vos rendus signés avec votre clef PGP. Pensez à
|
||||
[me](https://pgp.mit.edu/pks/lookup?op=vindex&search=0x842807A84573CC96) faire
|
||||
signer votre clef et n'hésitez pas à
|
||||
[faire signer votre clef](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/).
|
||||
|
||||
\tableofcontents
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue