TP1 ready

This commit is contained in:
nemunaire 2019-10-16 03:54:56 +02:00
parent 9281f01857
commit f909d463ca
16 changed files with 265 additions and 122 deletions

View file

@ -3,12 +3,11 @@
Composition de conteneurs
=========================
## Automatiser la construction et le lancement
## Automatiser le lancement de conteneurs
Au lieu de faire un script pour construire et lancer tous vos conteneurs, nous
allons définir à la racine de notre projet un fichier `docker-compose.yml` qui
contiendra les paramètres d'exécution (et éventuellement les méthodes de
construction).
contiendra les paramètres d'exécution.
<div lang="en-US">
```yaml
@ -137,12 +136,8 @@ Consultez
[la documentation](https://docs.docker.com/compose/compose-file/) pour
une liste exhaustive des options que nous pouvons utiliser.
Une fois que votre `docker-compose.yml` est prêt, lancez tout d'abord
`docker-compose build` pour commencer la phase de build de tous les conteneurs
listés dans le fichier.
Une fois le build terminé, nous pouvons lancer la commande suivante et admirer
le résultat :
Une fois que notre `docker-compose.yml` est prêt, nous pouvons lancer
la commande suivante et admirer le résultat :
<div lang="en-US">
```bash

View file

@ -6,7 +6,7 @@ Lier des conteneurs
Avant de voir des méthodes plus automatiques pour déployer toute notre pile
logicielle TICK, nous allons commencer par mettre en place et lier les
conteneurs manuellement, de la même manière que nous avons pu le faire avec
Owncloud et MySQL.
l'interface d'administration du FIC et MySQL.
## Conteneur central : la base de données
@ -14,7 +14,7 @@ Owncloud et MySQL.
Le premier conteneur qui doit être lancé est la base de données orientée séries
temporelles :
[InfluxDB](https://www.influxdata.com/time-series-platform/influxdb/).
En effet, tous les autres conteneurs on besoin de cette base de données pour
En effet, tous les autres conteneurs ont besoin de cette base de données pour
fonctionner correctement : il serait impossible à *Chronograf* d'afficher les
données sans base de données, tout comme *Telegraf* ne pourrait écrire les
métriques dans une base de données à l'arrêt.
@ -46,8 +46,8 @@ le client fourni :
<div lang="en-US">
```
42sh$ docker container run --rm -it --link mytsdb:influxdb \
> --entrypoint "/usr/bin/influx" influxdb -host influxdb
42sh$ docker container run --rm -it --link mytsdb:influxdb --entrypoint "/usr/bin/influx" \
influxdb -host influxdb
Connected to http://influxdb:8086 version 1.6.3
InfluxDB shell version: 1.6.3
> show databases
@ -74,8 +74,8 @@ docker container logs mytsdb
\hspace{2em}**Exercice :** Ajoutez à la ligne de commande de lancement du
conteneur les bon(s) volume(s) qui permettront de ne pas perdre les données
d'influxDB si nous devions redémarrer le conteneur.
d'influxDB si nous devions redémarrer le conteneur. Aidez-vous pour cela de la
[documentation du conteneur](https://hub.docker.com/_/influxdb).
## Collecter les données locales
@ -108,8 +108,8 @@ Et observons ensuite :
<div lang="en-US">
```bash
42sh$ docker container run --rm -it --link mytsdb:influxdb \
> --entrypoint "/usr/bin/influx" influxdb -host influxdb
42sh$ docker container run --rm -it --link mytsdb:influxdb --entrypoint "/usr/bin/influx" \
influxdb -host influxdb
InfluxDB shell version: 1.6.3
> show databases
name: databases

View file

@ -20,7 +20,10 @@ mettrez en place les *volumes* et *networks* nécessaire au bon fonctionnement
de la stack.
Le résultat final attendu doit permettre d'afficher dans `chronograf` l'hôte
auto-monitoré par la stack, sans plus de configuration.
auto-monitoré par la stack, sans plus de configuration. Vous aurez pour cela
éventuellement besoin de placer des fichiers de configuration à côté de votre
`docker-compose.yml`, afin de pouvoir inclure ces configurations dans les
conteneurs, sans avoir besoin de reconstruire ces conteneurs.
Modalités de rendu
@ -38,6 +41,9 @@ 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://www.epitaf.fr/moodle/mod/quiz/view.php?id=213).
Tarball
-------
@ -50,11 +56,89 @@ cela dépendra de votre avancée dans le projet) :
<div lang="en-US">
```
login_x-TP2/
login_x-TP2/tick/
login_x-TP2/tick/docker-compose.yml
login_x-TP2/tick/...
login_x-TP1/
login_x-TP1/ficadmin-run.sh
login_x-TP1/docker-compose.yml
login_x-TP1/...
```
</div>
Utilisez la même tarball pour le rendu que pour la partie précédente.
## Signature du rendu
Deux méthodes sont utilisables pour signer votre rendu :
* signature du courriel ;
* signature de la tarball.
Dans les deux cas, si vous n'en avez pas déjà une, vous devrez créer une clef
PGP à **votre nom et prénom**.
Pour valider la signature, il est nécessaire d'avoir reçu la clef publique
**séparément**. Vous avez le choix de l'uploader sur un serveur de clefs, soit
de me fournir votre clef en main propre, soit l'envoyer dans un courriel
distinct.
### Signature du courriel
[Enigmail](https://enigmail.net) est une extension très bien réputée pour
signer ses mails depuis Thunderbird.
Utilisez le service automatique <signcheck@nemunai.re> pour savoir si votre
courriel est correctement signé et que je suis en mesure de vérifier la
signature.
### Astuces
#### No public key
Si vous recevez un rapport avec l'erreur suivante :
<div lang="en-US">
```
[FAIL] Bad signature. Here is the gnupg output:
gpg: Signature made Tue Jan 01 16:42:23 2014 CET
gpg: using RSA key 842807A84573CC96
gpg: requesting key E2CCD99DD37BD32E from hkp server keys.openpgp.org
gpg: Can't check signature: No public key
```
</div>
C'est que votre clef publique n'est pas dans mon trousseau et que les
méthodes de récupération automatique n'ont pas permis de la
trouver. Uploadez votre clef sur [un serveur de
clefs](https://keys.openpgp.org/) ou envoyez un courriel au service
avec votre clef publique en pièce-jointe, avant de retenter votre
rendu.
#### Not explicit username
Si vous recevez un rapport avec l'erreur suivante :
<div lang="en-US">
```
[FAIL] The username of your key is not explicit, I can't find you.
```
</div>
Votre clef ne contient sans doute pas vos noms et prénoms ou l'adresse
électronique associée à la clef n'est pas celle que j'ai dans ma base de
données.
#### I've decided to skip your e-mail
Si vous recevez un rapport concluant ainsi :
<div lang="en-US">
```
After analyzing your e-mail, I've decided to SKIP it.
```
</div>
Cela signifie que la lecture de votre courriel qui a été préférée n'est pas
celle d'un rendu. Vérifiez que vous n'envoyez pas votre clef publique avec
votre rendu.

View file

@ -3,15 +3,15 @@
Mise en place
=============
Durant le premier TP, nous avons installé l'environnement Docker principal, qui
inclut le client, le daemon et toute sa machinerie. Mais le projet Docker
propose de nombreuses autres ressources, souvent directement trouvée dans les
usages de la communauté, et parfois même approprié par Docker.
Dans la première partie du TP, nous avons installé l'environnement Docker
principal, qui inclut le client, le daemon et toute sa machinerie. Mais le
projet Docker propose de nombreuses autres ressources, souvent directement
trouvée dans les usages de la communauté, et parfois même approprié par Docker.
## `docker-compose`
Pour ce TP, nous allons également avoir besoin de `docker-compose`.
Dans cette partie, nous allons avoir besoin de `docker-compose`.
Ce projet ne bénéficie pas d'une intégration au sein du projet Docker et doit
être téléchargé séparément, car originellement, le projet était développé par
@ -33,7 +33,7 @@ tous les scripts. Nous pouvons l'installer en suivant la procédure suivante :
<div lang="en-US">
```bash
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-Linux-x86_64 \
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-Linux-x86_64 \
> /usr/bin/docker-compose
chmod +x /usr/bin/docker-compose
```
@ -54,7 +54,7 @@ Comme avec Docker, nous pouvons vérifier le bon fonctionnement de
<div lang="en-US">
```
42sh$ docker-compose --version
docker-compose version: 1.16.1
docker-compose version: 1.24.1
```
</div>
@ -64,7 +64,7 @@ TP ! Alors n'attendons pas, partons à l'aventure !
## Play With Docker
Tout comme pour le TP précédent, si vous avez des difficultés pour réaliser les
exercices sur vos machines, vous pouvez utiliser le projet
[Play With Docker](https://play-with-docker.com/) qui vous donnera accès à un
bac à sable avec lequel vous pourrez réaliser tous les exercices de ce TP.
Tout comme pour la partie précédente, si vous avez des difficultés pour
réaliser les exercices sur vos machines, vous pouvez utiliser le projet [Play
With Docker](https://play-with-docker.com/) qui vous donnera accès à un bac à
sable avec lequel vous pourrez réaliser tous les exercices de ce TP.

View file

@ -1,23 +1,24 @@
---
title: Virtualisation légère -- TP n^o^ 2.2
subtitle: Aller plus loin avec Docker
title: Virtualisation légère -- TP n^o^ 1.2
subtitle: Les bases de Docker -- compose
author: Pierre-Olivier *nemunaire* [Mercier]{.smallcaps}
institute: EPITA
date: Jeudi 18 octobre 2017
date: Mercredi 2 octobre 2019
abstract: |
Dans cette deuxième partie du TP, nous allons approfondir l'utilisation de
Docker !
Dans cette deuxième partie du TP, nous allons apprendre à déployer
un groupe de 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 2017 à 0
h 42. Consultez la dernière section de chaque partie pour plus d'information
sur les éléments à rendre.
Le TP se termine par un petit projet à rendre à <virli@nemunai.re>
au plus tard le mercredi 16 octobre 2019 à 13 h 42, des questions de
cours sont également à compléter avant cette date sur
Epitaf. Consultez la dernière partie de ce TP pour les modalités.
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/).
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://keys.openpgp.org/search?q=nemunaire%40nemunai.re)
faire signer votre clef et n'hésitez pas à [faire signer la
votre](https://www.meetup.com/fr/Paris-certification-de-cles-PGP-et-CAcert/).
...