tutorials: improve theme + use pandoc 2

This commit is contained in:
nemunaire 2018-11-16 02:38:41 +01:00
parent de21be218a
commit d25af4fdb2
65 changed files with 1281 additions and 1292 deletions

View file

@ -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

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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