1
0
Fork 0

update project def

This commit is contained in:
yohann 2021-05-05 19:25:42 +02:00
parent 1c344e03c3
commit b195750064

View file

@ -5,8 +5,9 @@
L'objectif est d'automatiser des déploiements à l'aide de playbook Ansible et de son écosystème L'objectif est d'automatiser des déploiements à l'aide de playbook Ansible et de son écosystème
Ce projet devra comprendre un : Ce projet devra comprendre un :
- Déploiement serveur - Déploiement serveur (nginx, mariadb, php, composer, nodejs)
- Déploiement applicatif - Déploiement applicatif (Symfony blog)
- https://forge.univ-lyon1.fr/iut-lyon-lp-devops-ansible/symfony-blog
#### Groupe ou individuel: #### Groupe ou individuel:
Ce projet peut se faire en binôme ou individuellement Ce projet peut se faire en binôme ou individuellement
@ -36,7 +37,21 @@ L'architecture doit permettre le déploiement sur des environnements de :
Il doit être possible de déployer les parties suivantes (séparément ou "all-in-one") : Il doit être possible de déployer les parties suivantes (séparément ou "all-in-one") :
- serveur web (nginx) - serveur web (nginx)
- base de données (mariadb) - base de données (mariadb)
- applicatif (php / composer / git / nodejs ) - applicatif (php / composer / git / npm )
- Nginx :
- Configuration: Activer le Gzip (https://www.digitalocean.com/community/tools/nginx)
- Vhost pour Symfony: [https://symfony.com/doc/current/setup/web_server_configuration.html#nginx]
- Mariadb :
- (?TODO Check timeout sur installation de la clé) Installer la version : [10.5](https://downloads.mariadb.org/mariad≤b/repositories/#distro=Ubuntu&distro_release=focal--ubuntu_focal&mirror=cnrs&version=10.5)
- config: create database / create user and password
- PHP :
- version 7.4
- Extensions: JSON, zip, mysql, intl, fpm, xml
- max_execution_time / memory_limit
- composer: https://getcomposer.org/download/
#### Applicatif #### Applicatif
@ -47,7 +62,7 @@ La stratégie de déploiement doit permettre du `atomic deployments`
> **Atomic deployment** Make updates available only when they are complete and totally in place. > **Atomic deployment** Make updates available only when they are complete and totally in place.
- Ressource pour en savoir plus sur l'atomic deployemnt - Ressource pour en savoir plus sur l'atomic deployment
- https://deploybot.com/blog/deploy-complex-apps-with-atomic-sftp-deployments (lire les 3 premières parties) - https://deploybot.com/blog/deploy-complex-apps-with-atomic-sftp-deployments (lire les 3 premières parties)
- https://www.ewaldvanderveken.dev/zero-downtime-deployment-of-your-symfony-project-using-capistrano-and-gitlab-ci/ (lire la première partie) - https://www.ewaldvanderveken.dev/zero-downtime-deployment-of-your-symfony-project-using-capistrano-and-gitlab-ci/ (lire la première partie)
@ -55,8 +70,8 @@ La stratégie de déploiement doit permettre du `atomic deployments`
- https://docs.ansible.com/ansible/2.9/modules/deploy_helper_module.html - https://docs.ansible.com/ansible/2.9/modules/deploy_helper_module.html
``` ```
-- /var/www/my-app.com -- /var/www/html/my-app.com
|-- current -> /var/www/my-app.com/releases/20200512131539 |-- current -> /var/www/html/my-app.com/releases/20200512131539
|-- releases |-- releases
| |-- 20200512131539 | |-- 20200512131539
| |-- 20200509150741 | |-- 20200509150741
@ -64,13 +79,39 @@ La stratégie de déploiement doit permettre du `atomic deployments`
|-- shared |-- shared
``` ```
- L'applicatif doit comporter un connexion à la base de données - L'applicatif doit comporter un connexion à la base de données
Chaque environnement doit avoir sa propre base de données avec un user et un mot de passe différent. Chaque environnement doit avoir sa propre base de données avec un user et un mot de passe différent.
Exemple:
- preprod:
- user: symfony_preprod
- pwd: symfony_preprod
- prod:
- user: symfony_prod
- pwd: symfony_prod
- L'applicatif doit permet d'afficher un titre de blog différent par environnement. - L'applicatif doit permet d'afficher un titre de blog différent par environnement.
Exemple: Exemple:
Symfony blog - preprod Symfony blog - preprod
- Variable d'environnement du projet symfony:
- DATABASE_URL=
- APP_ENV=
- APP_SECRET=
Commande pour compiler les variables d'environment: `composer dump-env dev`
- Mise à jours de la base de données:
- bin/console doctrine:migration:migrate
- Compiler le JS et SCSS:
- npm run build
- Pour la preprod:
- Ajouter les données de test (fixtures)
- `bin/console hautelook:fixtures:load`
#### Conseils #### Conseils
- Un code organiser/structurer, tu feras - Un code organiser/structurer, tu feras
- Sur une/des nouvelle(s) machine(s) (hôte/VM), le professeur lancera - sans erreur, les playbooks seront - Sur une/des nouvelle(s) machine(s) (hôte/VM), le professeur lancera - sans erreur, les playbooks seront