diff --git a/readme.md b/readme.md index 042932b..5b6282e 100644 --- a/readme.md +++ b/readme.md @@ -5,8 +5,9 @@ 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 - - Déploiement applicatif + - Déploiement serveur (nginx, mariadb, php, composer, nodejs) + - Déploiement applicatif (Symfony blog) + - https://forge.univ-lyon1.fr/iut-lyon-lp-devops-ansible/symfony-blog #### Groupe ou individuel: 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") : - serveur web (nginx) - 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 @@ -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. -- 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://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 ``` --- /var/www/my-app.com -|-- current -> /var/www/my-app.com/releases/20200512131539 +-- /var/www/html/my-app.com +|-- current -> /var/www/html/my-app.com/releases/20200512131539 |-- releases | |-- 20200512131539 | |-- 20200509150741 @@ -64,13 +79,39 @@ La stratégie de déploiement doit permettre du `atomic deployments` |-- shared ``` + + - 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. +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. Exemple: 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 - Un code organiser/structurer, tu feras - Sur une/des nouvelle(s) machine(s) (hôte/VM), le professeur lancera - sans erreur, les playbooks seront