2022-04-08 20:39:14 +00:00
|
|
|
|
::::: {.exercice}
|
2020-10-28 22:16:34 +00:00
|
|
|
|
|
|
|
|
|
Pour mettre en pratiques toutes les notions que l'on a vu jusque là, écrivez un
|
|
|
|
|
script `mycloud-run.sh` pour automatiser le lancement de votre instance
|
|
|
|
|
personnelle de [`nextcloud`](https://hub.docker.com/_/nextcloud/) ou
|
|
|
|
|
d'[`owncloud`](https://hub.docker.com/r/owncloud/server/). Une attention
|
|
|
|
|
particulière devra être apportée à la manière dont vous gérerez le rappel du
|
|
|
|
|
script pour éventuellement relancer un conteneur qui se serait arrêté
|
|
|
|
|
(évidemment sans perdre les données).
|
|
|
|
|
|
|
|
|
|
À la fin de son exécution, le script affichera un lien utilisable sur l'hôte
|
|
|
|
|
pour se rendre sur la page de connexion. Une autre machine de votre réseau
|
|
|
|
|
local devrait également pouvoir accéder à la plate-forme, simplement en
|
|
|
|
|
renseignant l'IP de votre machine et en ajoutant éventuellement des règles de
|
|
|
|
|
pare-feu (mais cette dernière partie n'est pas demandée, gardez simplement en
|
2022-02-24 19:43:43 +00:00
|
|
|
|
tête que cela doit pouvoir être fait manuellement au cas par cas : sur une
|
2020-10-28 22:16:34 +00:00
|
|
|
|
machine sans pare-feu configurée, cela ne demande pas d'étape supplémentaire).
|
|
|
|
|
|
|
|
|
|
Votre script devra se limiter aux notions vues durant cette partie du TP
|
2022-02-24 19:43:43 +00:00
|
|
|
|
(ie. sans utiliser `docker-compose` ou `docker stack` que l'on verra par la
|
|
|
|
|
suite). Il pourra cependant faire usage des commandes `docker OBJECT inspect`
|
|
|
|
|
pour ne pas avoir à faire d'analyse syntaxique sur les retours des commandes
|
|
|
|
|
lisibles par les humains.
|
2020-10-28 22:16:34 +00:00
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
Cette instance devra utiliser une base de données MySQL (lancée par votre
|
|
|
|
|
script dans un autre conteneur) et contenir ses données dans un ou plusieurs
|
|
|
|
|
volumes (afin qu'elles persistent à une mise à jour des conteneurs par
|
|
|
|
|
exemple).
|
2020-10-28 22:16:34 +00:00
|
|
|
|
|
|
|
|
|
L'exécution doit être la plus sécurisée possible (pas de port MySQL exposé sur
|
|
|
|
|
l'hôte par exemple, etc.) et la plus respectueuse des bonnes pratiques que l'on
|
2022-02-24 19:43:43 +00:00
|
|
|
|
a pu voir jusque là.
|
2020-10-28 22:16:34 +00:00
|
|
|
|
|
|
|
|
|
|
2022-02-24 19:43:43 +00:00
|
|
|
|
### Exemple d'exécution {-}
|
2020-10-28 22:16:34 +00:00
|
|
|
|
|
|
|
|
|
<div lang="en-US">
|
|
|
|
|
```bash
|
|
|
|
|
42sh$ ./mycloud-run.sh
|
|
|
|
|
http://localhost:12345/
|
|
|
|
|
42sh$ #docker kill db
|
|
|
|
|
42sh$ ./mycloud-run.sh # le script relancera une base de données,
|
|
|
|
|
# sans avoir perdu les données
|
|
|
|
|
http://localhost:12345/
|
|
|
|
|
```
|
|
|
|
|
</div>
|
2022-04-08 20:39:14 +00:00
|
|
|
|
|
|
|
|
|
:::::
|