This commit is contained in:
nemunaire 2020-09-21 23:48:16 +02:00
commit 5f4880dc50
14 changed files with 159 additions and 108 deletions

View file

@ -2,30 +2,24 @@ Projet
======
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
playbook Ansible 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).
particulière devra être apportée à la manière dont vous faites persister les
données entre deux lancements, tout en prenant en compte les futures mises à
jour.
À 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
tête que cela doit pouvoir être fait manuellement au cas par cas : sur une
machine sans pare-feu configurée, cela ne demande pas d'étape supplémentaire).
Le service doit être accessible sur votre réseau local, sur un port
configurable.
Votre script devra se limiter aux notions vues durant cette partie du TP
(ie. sans utiliser `docker-compose` ou `docker stack` que l'on verra dans la
seconde partie). 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.
Votre playbook devrait se limiter au module
[`docker-container`](https://docs.ansible.com/ansible/latest/modules/docker_container_module.html)
(ie. sans utiliser `docker-compose` ou `docker stack` que l'on verra dans un
second temps).
Cette instance devra utiliser une base de données MySQL (lancée par vos soins
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).
Cette instance devra utiliser une base de données MySQL ou Postgres (lancée par
vos soins dans un autre conteneur) et contenir ses données dans un ou plusieurs
volumes (afin qu'elles persistent notamment à une mise à jour des conteneurs).
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
@ -36,11 +30,6 @@ a pu voir durant ce premier cours.
<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/
42sh$ ansible-playbook -i hosts my_cloud.yml
```
</div>

View file

@ -32,8 +32,8 @@ cela dépendra de votre avancée dans le projet) :
<div lang="en-US">
```
login_x-TP1/
login_x-TP1/mycloud-run.sh
login_x-TP1/...
login_x-TP1/my_cloud.yml
login_x-TP1/roles/...
```
</div>

View file

@ -2,5 +2,5 @@
title: Virtualisation légère -- Projet n^o^ 1
author: Pierre-Olivier *nemunaire* Mercier
institute: EPITA
date: EPITA -- SRS 2020
date: EPITA -- SRS 2021
...