2020-04-15 17:01:06 +02:00
|
|
|
<center><h1>PROJET</h1></center>
|
|
|
|
|
2020-04-15 17:21:19 +02:00
|
|
|
|
|
|
|
#### Objectif: Automatisation de déploiement
|
|
|
|
L'objectif est d'automatiser des déploiements à l'aide de playbook Ansible et de son écosystème
|
|
|
|
|
|
|
|
Ce projet devra comprendre un:
|
|
|
|
- Déploiement serveur
|
2020-04-15 17:01:06 +02:00
|
|
|
- Déploiement applicatif
|
|
|
|
|
|
|
|
#### Groupe ou individuel:
|
|
|
|
Ce projet peut se faire en groupe (de 2/3/4 personnes) ou individuellement
|
|
|
|
|
|
|
|
#### Consignes:
|
|
|
|
- Le projet doit être mis sur un repository dans le [gitlab](https://forge.univ-lyon1.fr) de l'université.
|
|
|
|
- Le nom du repository devra être sous la forme: LP - DevOps - 2020 - ansible - Grp* - **** - *
|
|
|
|
|
|
|
|
Exemple: `LP - DevOps - 2020 - ansible - Grp2 - Python - 2`
|
|
|
|
|
|
|
|
- Grp* pour le numéro du groupe
|
|
|
|
- **** pour la technologie applicative utilisée (php / java / python / dotnet)
|
|
|
|
- * pour un numéro de sous groupe (1/2/3/4) si besoin
|
|
|
|
|
2020-04-15 17:21:19 +02:00
|
|
|
- Le professeur doit être ajouté en tant que `owner` aux membres du
|
|
|
|
|
|
|
|
|
2020-04-15 17:01:06 +02:00
|
|
|
- Un readme doit être présent dans le projet avec les rubriques suivantes:
|
|
|
|
- Liste des étudiants.
|
|
|
|
- Comportant: nom - prénom - numéro étudiant
|
|
|
|
- Les clés ssh de connexion:
|
|
|
|
- aux serveurs openstack
|
|
|
|
- aux repositories gitlab
|
|
|
|
- Les technologies utilisées.
|
|
|
|
- La liste des `roles` (si utilisés).
|
|
|
|
- La liste des commandes à utiliser.
|
|
|
|
Ceux-ci pourront aussi être présents dans un makefile
|
|
|
|
- Une présentation de l'architecture mise en place
|
|
|
|
|
|
|
|
|
|
|
|
#### Architecture/Environnement
|
|
|
|
L'architecture doit permettre le déploiement au minimun sur des environnements de:
|
|
|
|
- preprod
|
|
|
|
- prod
|
|
|
|
|
|
|
|
#### Serveur
|
2020-05-06 12:29:30 +02:00
|
|
|
Il doit être possible de déployer les types suivants (séparement ou "all-in-one"):
|
2020-04-15 17:01:06 +02:00
|
|
|
- web
|
|
|
|
- base de données
|
|
|
|
- applicatif
|
|
|
|
|
|
|
|
#### Applicatif
|
|
|
|
|
|
|
|
La stratégie de déploiement doit permettre du `atomic deployments`
|
|
|
|
|
|
|
|
```
|
|
|
|
-- /var/www/my-app.com
|
|
|
|
|-- current -> /var/www/my-app.com/releases/20200512131539
|
|
|
|
|-- releases
|
|
|
|
| |-- 20200512131539
|
|
|
|
| |-- 20200509150741
|
|
|
|
| |-- 20200509145325
|
|
|
|
|-- shared
|
|
|
|
```
|
|
|
|
|
|
|
|
#### Conseils
|
|
|
|
- Un code organiser/structurer, tu feras
|
|
|
|
- Sur une/des nouvelle(s) machine(s) (hôte/VM), le professeur lancera - sans erreur, les playbooks seront
|
|
|
|
|
|
|
|
#### Bonus
|
2020-05-06 12:29:30 +02:00
|
|
|
- Des tests applicatifs pourront être lancés via un playbook (phpunit, junit, unittest, xUnit.net,...)
|
2020-04-15 17:01:06 +02:00
|
|
|
- Si des `roles` ont été créés ceux-ci pourront être testés avec [Molecule](https://molecule.readthedocs.io/en/latest/)
|