From 8e0fb8aa408fdab1dce161f82bcebf9e5445c8d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillaume=20Perr=C3=A9al?= <guillaume.perreal@inrae.fr> Date: Fri, 26 Nov 2021 16:04:50 +0100 Subject: [PATCH] =?UTF-8?q?D=C3=A9place=20la=20documentation=20d'installat?= =?UTF-8?q?ion=20dans=20un=20sous-r=C3=A9pertoire.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 - .gitlab-ci.yml | 1 + INSTALL_Ansible_Deployer.md | 97 --- README.md | 2 +- .dockerignore => doc/.dockerignore | 0 .editorconfig => doc/.editorconfig | 0 doc/.gitignore | 3 + {files => doc/files}/local_pg_dump | 0 .../guide_installation_OpenBDOH.md | 0 {test => doc/test}/Dockerfile | 0 {test => doc/test}/run.sh | 0 work/OpenBDOH_rapport.odt | Bin 20673 -> 0 bytes work/ansible_commandes_importantes.md | 0 work/deployer_commandes_importantes.md | 48 -- work/import_fichiers.sh | 8 - work/liste_commandes_ansible.md | 228 ------ work/liste_commandes_deployer.md | 756 ------------------ work/liste_etapes_ansible_openbdoh.txt | 88 -- work/liste_fichiers_configuration.md | 8 - work/tri_liste_commandes_ansible.md | 229 ------ 20 files changed, 5 insertions(+), 1465 deletions(-) delete mode 100644 .gitignore delete mode 100644 INSTALL_Ansible_Deployer.md rename .dockerignore => doc/.dockerignore (100%) rename .editorconfig => doc/.editorconfig (100%) create mode 100644 doc/.gitignore rename {files => doc/files}/local_pg_dump (100%) rename guide_installation_OpenBDOH.md => doc/guide_installation_OpenBDOH.md (100%) rename {test => doc/test}/Dockerfile (100%) rename {test => doc/test}/run.sh (100%) delete mode 100644 work/OpenBDOH_rapport.odt delete mode 100644 work/ansible_commandes_importantes.md delete mode 100644 work/deployer_commandes_importantes.md delete mode 100644 work/import_fichiers.sh delete mode 100644 work/liste_commandes_ansible.md delete mode 100644 work/liste_commandes_deployer.md delete mode 100644 work/liste_etapes_ansible_openbdoh.txt delete mode 100644 work/liste_fichiers_configuration.md delete mode 100644 work/tri_liste_commandes_ansible.md diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 29443501b..000000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/script.sh -/bdoh-*.tar.bz2 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 928dcd50b..8dd8b7376 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -26,6 +26,7 @@ test-run: BDOH_VERSION: v4.0.2 BDOH_HOST: docker before_script: + - cd doc - apk add -U bash sed jq curl tar bzip2 # Télécharge une archive de BDOH - | diff --git a/INSTALL_Ansible_Deployer.md b/INSTALL_Ansible_Deployer.md deleted file mode 100644 index 6337814c8..000000000 --- a/INSTALL_Ansible_Deployer.md +++ /dev/null @@ -1,97 +0,0 @@ -OpenBDOH - Base de Données des Observatoires Hydrologiques -====================================================== - -# Guide d'installation - -## Prérequis: -* (Une paire de clefs SSH ). -* Un poste administrateur noté A. -* Un poste cible, destiné à devenir serveur BDOH, noté S. -* S doit fonctionner sous un des systèmes d'exploitation suivants: Debian (Buster, Stretch), Ubuntu (Xenial, Bionic, Focal). -* Les fichiers détaillant la liste des paquets PHP nécessaires sont détaillés selon la distribution dans les fichiers correspondants situés dans ansible/group_vars; étendre la compatibilité requiert de générer une liste semblable de paquets PHP. -* Un accès ssh root à S depuis A, si besoin voici la marche à suivre: -* Un service DNS fonctionnel, de telle sorte que S est accessible par son nom de domaine. -* Un service habilité à délivrer des certificats SSL. - -## Préparation de S: -* Installer python s'il n'est pas présent sur S: - * `sudo apt install -y python` -* Ajouter le dépôt postgresql: - * `sudo apt -y install vim bash-completion wget` - * `wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -` - * `echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee /etc/apt/sources.list.d/pgdg.list` - * `sudo apt update puis sudo apt full-upgrade` -* Installer les paquets realtifs à Postgresql suivants: - * postgresql, postgresql-client, postgresql-1x et postgresql-client-1x (selon la dernière version), postgresql-client-common, postgresql-common, python3-psycopg2. - * En cas d'erreur due à /etc/postgresql/ vide: - * purger tous les paquets concernés: `sudo apt remove --purge postgresql*` . - * réinitialiser les locales: `dpkg-reconfigure locales`. - * recommencer l'installation comme ci-dessus. - -## Partie Ansible: -* Installer le serveur Ansible OpenBDOH sur A: - * Dans un répertoire de travail, cloner le dépôt Ansible dédié à OpenBDOH: - * par HTTPS: `git clone --branch OpenBDOH --single-branch https://gitlab.irstea.fr/pole-is/ansible.git` . - * par SSH: `git clone --branch OpenBDOH --single-branch git@gitlab-ssh.irstea.fr:pole-is/ansible.git` . -* Créer un fichier de configuration hôte: dans ansible/host_vars/, créer un fichier <nom_de_domaine_de_S>.yml . -Dans ce fichier, copier le contenu du fichier vm-bdoh-tst. Ce fichier contient des informations de configuration propres à BDOH. -* Déterminer la qualité de serveur de qualification ou de production de S. -* Ajouter S à l'inventaire Ansible: dans ansible/inv/qualif/00-hosts (ansible/inv/prod/00-hosts dans le cas d'un serveur de production), ajouter le nom de domaine de S dans les catégories [bdoh] et [qualif]\ ([prod] dans le cas d'un serveur de production) . -* Gestion des certificats SSL: - * ajouter les fichiers <nom_de_domaine_de_S>.crt/etc dans ansible/files/ssl/certs/, et les certificats intermédiaires délivrés par le service dédié dans ansible/files/ssl/intermediates/ . - * modifier les options de configuration relatives aux certificats SSL: - * dans ansible/group_vars/phpapp/vars.yml : changer "ssl: false" en "ssl: true". - * dans ansible/roles/phpapp/templates/apache2/vhost-ssl.conf.j2 : changer "SSLEngine off" en "SSLEngine on", et renseigner les chemins d'accès des fichiers certificats. -* Lancer le script ansible/scripts/update_known_hosts.sh, permettant de vérifier l'inventaire. -* Lancer le playbook ansible sur S: `./phpapp.yml -i inv/qualif (ou prod respectivement) -l "<nom_de_domaine_de_S>" -D (-e "ssl_paths=files/ssl/certs/" en cas d'erreur "ssl_paths undefined")`. -* Détail des options: - * -i inv/<prod ou qualif selon le serveur> : permet de choisir la partie de l'inventaire où se trouve le serveur à configurer. - * -l "<nom_de_domaine_de_S>" : permet de cibler précisément le serveur à configurer et de n'appliquer la configuration que sur celui-ci. - * -D : permet de montrer pour chaque étape les changements opérés; il est possible d'ajouter l'option -v (-vv, ou -vvv) afin d'obtenir plus d'indications sur le processus. - * -e "ssl_paths=files/ssl/certs/" : permet de redéfinir la variable "ssl_paths" en cas d'erreur "ssl_path undefined". -* Si besoin installer depuis S les paquets suivants: - * en cas d'erreur NodeJs: les paquets apt nodejs et npm. - * en cas d'erreur postgresql: le paquet apt python-pip, puis les paquets pip ipaddress et pyscopg2. - -## Partie déploiement de d'OpenBDOH - -### Configuration de la base de données: -* Installer postgis (version 2.5 ou supérieur): - * sur S, installer les paquets suivants: postgis, postgresql-1x-postgis-2.5 et postgresql-1x-postgis-2.5-scripts, selon les versions de postgresql et de postgis désirées. -* Effectuer le paramétrage initial de la base de données: - * sur S, se connecter à l'invite de commande Postgresql: `sudo -u postgres psql`. - * activer l'extension Postgis: `CREATE EXTENSION postgis;` - * créer un utilisateur devops: `CREATE USER devops;` - * donner à l'utilisateur devops le statut de superuser: `ALTER ROLE devops SUPERUSER;` - -### Apache2: -* Sur S, dans le dossier de configuration /etc/apache2/sites-available/, créer un fichier de configuration <nom_de_domaine_de_S>.conf. -* Remplir ce fichier sur le modèle du fichier vm-bdoh-tst fourni en exemple. - -### Deployer: -* Installer un OpenBDOH de référence sur A: - * Dans un répertoire de travail, cloner le dépôt de l'application OpenBDOH: - * par HTTPS: `git clone --branch OpenBDOH --single-branch https://gitlab.irstea.fr/pole-is/bdoh.git` . - * par SSH: `git clone --branch OpenBDOH --single-branch git@gitlab-ssh.irstea.fr:pole-is/bdoh.git` . -* Ajouter S à la liste des hôtes: - * sur A, dans /bdoh/.deploy/hosts.yml, ajouter un paragraphe au nom de S, sur le modèle de vm-bdoh-tst. Ce fichier définit l'environnement et la branche de BDOH à déployer sur S. - * sur A, dans /bdoh/.deploy/known_hosts, ajouter la clef publique de S afin de permettre son authentification lors du déploiement: `ssh-keyscan <nom_de_domaine_de_S> >>.deploy/known_hosts` . -* Installation du service bdoh-job-worker: - * sur S, dans /etc/systemd/system/, copier le fichier bdoh-job-worker.service d'exemple. - * configurer les droits d'accès au service nouvellement créé: `sudo chown root:root bdoh-job-worker.service` . - * activer le service: `sudo systemctl enable bdoh-job-worker.service` . -* Lancement du déploiement d'OpenBDOH avec Deployer: - * sur A, dans /bdoh/, lancer la commande de déploiement: `vendor/bin/dep deploy <nom_de_domaine_de_S> `. -* En cas d'erreur sur les droits d'accès de yarn: - * sur S, reconfigurer les droits d'accès: `sudo chmod u+x /home/devops/.config` . - * dans /var/www/bdoh/ relancer l'installation de yarn: `yarn install –pure-lockfile` . -* Paramétrage de la base de données: - * sur S, dans l'invite de commande psql, créer une nouvelle base de données: - * `CREATE TABLE bdoh;` - * dans /var/www/bdoh/shared/app/config/, remplir le fichier de configuration parameters.yml selon le modèle fourni en prenant en compte les noms, mot de passe, et versions de votre base de données créée précédemment. - * dans l'invite de commande psql, paramétrer les chemins d'accès: `ALTER ROLE devops SET search_path = bdoh,"$user",public;` - * dans l'invite de commande psql, paramétrer l'accès au schéma (namespace) valide: `ALTER SCHEMA bdoh owner to bdoh; ALTER SCHEMA temp owner to bdoh; ALTER TABLE migration_versions SET SCHEMA bdoh;` - * dans /var/www/bdoh/current/, lancer la migration: `app/console doctrine:migrations:migrate -n` . - * dans /var/www/bdoh/current/, vider le cache: `app/console cache:clear` . - * dans /var/www/bdoh/current/, vérifier la structure de la base de données: `app/console doctrine:schema:validate` -* En cas de réussite, OpenBDOH est donc prêt à être utilisé. \ No newline at end of file diff --git a/README.md b/README.md index 185f27819..8429fd569 100644 --- a/README.md +++ b/README.md @@ -5,4 +5,4 @@ Ce projet a pour vocation d'ouvrir l'application BDOH aux acteurs extérieurs à ## Installation -Consulter [le guide d'installation](guide_installation_OpenBDOH.md). +Consulter [le guide d'installation](doc/guide_installation_OpenBDOH.md). diff --git a/.dockerignore b/doc/.dockerignore similarity index 100% rename from .dockerignore rename to doc/.dockerignore diff --git a/.editorconfig b/doc/.editorconfig similarity index 100% rename from .editorconfig rename to doc/.editorconfig diff --git a/doc/.gitignore b/doc/.gitignore new file mode 100644 index 000000000..b805fce57 --- /dev/null +++ b/doc/.gitignore @@ -0,0 +1,3 @@ +script.sh +*.odt +*.pdf diff --git a/files/local_pg_dump b/doc/files/local_pg_dump similarity index 100% rename from files/local_pg_dump rename to doc/files/local_pg_dump diff --git a/guide_installation_OpenBDOH.md b/doc/guide_installation_OpenBDOH.md similarity index 100% rename from guide_installation_OpenBDOH.md rename to doc/guide_installation_OpenBDOH.md diff --git a/test/Dockerfile b/doc/test/Dockerfile similarity index 100% rename from test/Dockerfile rename to doc/test/Dockerfile diff --git a/test/run.sh b/doc/test/run.sh similarity index 100% rename from test/run.sh rename to doc/test/run.sh diff --git a/work/OpenBDOH_rapport.odt b/work/OpenBDOH_rapport.odt deleted file mode 100644 index 986f8a834efd6e1856542a66aacc81b5b3e574c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20673 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�ya!<4IkFXae16CRKU7B!O5dahMUw*QTM&6n6 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 IsvY0`3v<Y6+yDRo diff --git a/work/ansible_commandes_importantes.md b/work/ansible_commandes_importantes.md deleted file mode 100644 index e69de29bb..000000000 diff --git a/work/deployer_commandes_importantes.md b/work/deployer_commandes_importantes.md deleted file mode 100644 index 3d1b13223..000000000 --- a/work/deployer_commandes_importantes.md +++ /dev/null @@ -1,48 +0,0 @@ -Deployer commandes importantes -============================== - -➤ Executing task deploy:prepare -> if [ ! -d /var/www/bdoh ]; then mkdir -p /var/www/bdoh; fi -> cd /var/www/bdoh && if [ ! -d .dep ]; then mkdir .dep; fi -➤ Executing task deploy:update_code -> cd /var/www/bdoh && (/usr/bin/git clone -b develop --recursive --reference /var/www/bdoh --dissociate git@gitlab-ssh.irstea.fr:pole-is/bdoh.git /var/www/bdoh 2>&1) -> cd /var/www/bdoh && (/usr/bin/git clone -b develop --recursive git@gitlab-ssh.irstea.fr:pole-is/bdoh.git /var/www/bdoh 2>&1) -➤ Executing task deploy:create_cache_dir -> if [ -d "/var/www/bdoh/app/cache" ]; then rm -rf /var/www/bdoh/app/cache; fi -> mkdir -p /var/www/bdoh/app/cache -> chmod -R g+w /var/www/bdoh/app/cache -➤ Executing task deploy:vendors -> /usr/bin/php /usr/local/bin/composer install --verbose --prefer-dist --no-progress --no-interaction --no-dev --optimize-autoloader --no-suggest -➤ Executing task deploy:assets:install -> /usr/bin/php /usr/local/bin/composer install-assets --no-interaction -➤ Executing task frontend:vendors -> node_modules/.bin/yarn install --pure-lockfile -➤ Executing task frontend:generate -> node_modules/.bin/yarn run encore production -➤ Executing task deploy:cache:clear -> /usr/bin/php app/console cache:clear --no-interaction --env=prod --no-debug --no-warmup -➤ Executing task deploy:cache:warmup -> /usr/bin/php app/console cache:warmup --no-interaction --env=prod --no-debug -➤ Executing task deploy:writable -> mkdir -p app/cache app/logs app/imports app/exports web/css/themes web/uploads/. -> setfacl -L -R -m u:"www-data":rwX -m u:`whoami`:rwX app/cache -> setfacl -dL -R -m u:"www-data":rwX -m u:`whoami`:rwX app/cache -> setfacl -L -R -m u:"www-data":rwX -m u:`whoami`:rwX app/imports -> setfacl -dL -R -m u:"www-data":rwX -m u:`whoami`:rwX app/imports -> setfacl -L -R -m u:"www-data":rwX -m u:`whoami`:rwX app/exports -> setfacl -dL -R -m u:"www-data":rwX -m u:`whoami`:rwX app/exports -> setfacl -L -R -m u:"www-data":rwX -m u:`whoami`:rwX web/css/themes -> setfacl -dL -R -m u:"www-data":rwX -m u:`whoami`:rwX web/css/themes -➤ Executing task apache2:stop -> sudo systemctl stop apache2.service -➤ Executing task job-worker:stop -> sudo systemctl stop bdoh-job-worker.service -➤ Executing task database:migrate -> /usr/bin/php /var/www/bdoh/app/console doctrine:migrations:migrate --no-interaction --env=prod --no-debug --allow-no-migration --write-sql -> cat doctrine_migration_*.sql | psql -➤ Executing task job-worker:refresh -> sudo systemctl daemon-reload -➤ Executing task job-worker:start -> sudo systemctl start bdoh-job-worker.service -➤ Executing task apache2:start -> sudo systemctl start apache2.service \ No newline at end of file diff --git a/work/import_fichiers.sh b/work/import_fichiers.sh deleted file mode 100644 index a8ea0b269..000000000 --- a/work/import_fichiers.sh +++ /dev/null @@ -1,8 +0,0 @@ -/home/devops/.pgpass -/etc/apache2/sites-available/000-catch-all.conf -/etc/apache2/conf-available/security.conf -/etc/apache2/mods-available/ssl.conf -/etc/apache2/sites-available/<domaine>.conf -/etc/php/7.1/mods-available/owasp-security.ini -/home/devops/.config/composer/auth.json -/etc/logrotate.d/bdoh diff --git a/work/liste_commandes_ansible.md b/work/liste_commandes_ansible.md deleted file mode 100644 index 3b921eb48..000000000 --- a/work/liste_commandes_ansible.md +++ /dev/null @@ -1,228 +0,0 @@ -Liste détaillée des commandes exécutées par Ansible -=================================================== - -# TASK [Common] **************************************************************** - -TASK [common : Package cleanup] ************************************************ DISPENSABLE -sudo apt update -sudo apt autoclean -sudo apt autoremove -TASK [common : Configure timezone Europe/Paris] ******************************** DISPENSABLE -sudo echo "Europe/Paris" >> /etc/timezone -sudo chmod 0444 /etc/timezone -TASK [common : Configure default locale: fr_FR.UTF-8] ************************** DISPENSABLE -apt install locales -dpkg-reconfigure locales (interactive) -TASK [common : Configure generated locales] ************************************ DISPENSABLE -locale-gen --purge fr_FR.UTF-8 -TASK [common : Install common tools] ******************************************* DISPENSABLE -sudo apt install curl ncurses-bin ncurses-term vim bash -TASK [common : Set up MOTD] **************************************************** DISPENSABLE -cp ansible/roles/common/templates/login/motd.j2 /etc/motd -TASK [common : Set up shell prompt] ******************************************** DISPENSABLE -"remplir /etc/profile.d/prompt.sh sur le modèle de ansible/roles/common/templates/login/prompt.sh.j2" -TASK [common : Set up global bashrc] ******************************************* DISPENSABLE -mv ansible/roles/common/files/login/bash.bashrc /etc/bash.bashrc -TASK [common : Set up vim] ***************************************************** DISPENSABLE -mv ansible/roles/common/files/login/vimrc.local /etc/vim/vimrc.local -TASK [common : Install/update VMware guest tools] ****************************** DISPENSABLE -sudo apt install open-vm-tools -TASK [common : (Un)install time-syncing packages] ****************************** DISPENSABLE -"installation et configuration de NTP" -TASK [common : Install packages: cron] ***************************************** IMPORTANT -sudo apt install apt-transport-https -sudo apt install cron -TASK [common : Enable and start services: cron] ******************************** IMPORTANT -sudo systemctl enable cron.service -sudo systemctl start cron.service -TASK [common : Install authorized_keys for root] ******************************* IMPORTANT -"installation de la clef ssh de root" -TASK [common : Install SSH keys of known hosts] ******************************** INUTILE -"installation des clefs publiques des serveurs" -TASK [common : Install unattended upgrades] ************************************ DISPENSABLE -sudo apt install unattended-upgrades needrestart -TASK [common : Configure unattended upgrades] ********************************** DISPENSABLE -"configuration de unattended-upgrades" -TASK [common : Enable unattended upgrade timers] ******************************* DISPENSABLE -"configuration des timers de unattended-upgrades" - -# TASK [PostgreSQL-server] ***************************************************** - -TASK [postgresql-server : Install packages: postgresql, postgresql-client, libpq-dev, python3-psycopg2] *** IMPORTANT -sudo apt install postgresql postgresql-client libpq-dev python3-psycopg2 -TACHE: installation de postgis ************************************************* IMPORTANT -sudo apt install postgis postgresql-postgis-2.5 postgresql-postgis-2.5-scripts -TASK [postgresql-server : Enable and start services: postgresql] *************** IMPORTANT -sudo systemctl enable postgresql -sudo systemctl start postgresql -TASK [postgresql-server : Fetch postgresql version] **************************** INUTILE -"vérifier la version de postgresql" -TASK [postgresql-server : Set md5 policy for local connections] **************** IMPORTANT -"activer md5 pour toutes les connexions locales dans /etc/postgresql/11/main/pg_hba.conf" -TASK [postgresql-server : Set peer policy for postgres's connections] ********** IMPORTANT -"activer peer pour toutes les connexions locales de postgres" -TASK [postgresql-server : Create devops superuser] ***************************** IMPORTANT -CREATE USER devops; -ALTER ROLE devops SUPERUSER; -TASK [postgresql-server : Set peer policy for devops's connections] ************ IMPORTANT -"activer peer pour toutes les connexions locales de devops" -TASK [postgresql-server : Install the daily database dump script] ************** IMPORTANT -"installer le script ansible/roles/postgresql-server/files/local_pg_dump dans /etc/cron.daily/local_pg_dump" -TASK [postgresql-server : Create user 'bdoh'] ********************************** IMPORTANT -CREATE USER bdoh; -TASK [postgresql-server : Setting 'bdoh' password] ***************************** IMPORTANT -ALTER USER devops WITH PASSWORD 'WTvRR7UWsb3SH2oLlSMD'; -TASK [postgresql-server : Select database owner] ******************************* IMPORTANT -ALTER DATABASE postgres OWNER TO devops; -TASK [postgresql-server : Create database 'bdoh'] ****************************** IMPORTANT -CREATE DATABASE bdoh; -TASK [postgresql-server : Grant permissions on database 'bdoh' to bdoh] ******** IMPORTANT -"donner les autorisations CONNECT et TEMPORARY à bdoh sur la base bdoh" -GRANT CONNECT,TEMPORARY ON database bdoh TO bdoh; -REVOKE GRANT OPTION FOR CONNECT,TEMPORARY ON database bdoh FROM bdoh; -TASK [postgresql-server : Create schema 'bdoh.bdoh'] *************************** IMPORTANT -CREATE SCHEMA bdoh.bdoh; -TASK [postgresql-server : Grant permissions on schema 'bdoh.bdoh' to bdoh] ***** IMPORTANT -GRANT USAGE,CREATE ON schema bdoh TO bdoh; -REVOKE GRANT OPTION FOR USAGE,CREATE ON schema bdoh FROM bdoh; -TACHE: paramétrer le search space ********************************************** IMPORTANT -ALTER DATABASE bdoh SET search_path = "bdoh", "$user", public; -TACHE : créer l'extension PostGIS ********************************************** IMPORTANT -CREATE EXTENSION postgis; - -# TASK [PHP-App] *************************************************************** - -TASK [phpapp : Generate the deploy key pair] *********************************** INUTILE -"création de la clef de déploiement automatique" -TASK [phpapp : Read the deploy key pair] *************************************** INUTILE -"lecture de la clef de déploiment automatique" -TASK [phpapp : Create the devops group] **************************************** IMPORTANT -sudo adduser devops -sudo groupadd -g 1001 devops -TASK [phpapp : Create the devops user] ***************************************** DISPENSABLE -sudo useradd -u 1001 devops -sudo usermod -a -G devops,www-data,sudo devops -TASK [phpapp : Grant password-less sudo to devops] ***************************** DISPENSABLE -sudo echo "devops ALL = (ALL) NOPASSWD: ALL" >> /etc/sudoers.d/devops -TASK [phpapp : Install devops tools] ******************************************* DISPENSABLE -sudo apt install acl git htop unzip -TASK [phpapp : Install authorized_keys of devops] ****************************** INUTILE -"installer la clef devops dans authorized_keys" -TASK [phpapp : Remove local .bashrc] ******************************************* DISPENSABLE -rm /home/devops/.bashrc -TASK [phpapp : Setup environment variables] ************************************ IMPORTANT -"exporter les variables PGDATABASE PGHOST PGPORT PGUSER dans /home/devops/.profile" -echo "export PGDATABASE=bdoh \n export PGHOST=/run/postgresql \n export PGPORT=5432 \n export PGUSER=devops \n export APP_ENV=prod \n export SYMFONY_ENV=prod" > /home/devops/.profile ; -sudo chmod 0600 /home/devops/.profile -TASK [phpapp : Setup PSQLRC] *************************************************** IMPORTANT -rm /home/devops/.psqlrc -TASK [phpapp : Configure ~devops/.pgpass for bdoh] ***************************** IMPORTANT -"créer et configurer /home/devops/.pgpass" -echo "/run/postgresql:5432:bdoh:bdoh:WTvRR7UWsb3SH2oLlSMD" > /home/devops/.pgpass -chown devops:devops /home/devops/.pgpass -chmod 0400 /home/devops/.pgpass -TASK [phpapp : Setup /var/www/bdoh] ************** IMPORTANT -mkdir /var/www/bdoh -chown devops:www-data /var/www/bdoh -chmod 2755 /var/www/bdoh -TASK [phpapp : Install PostgreSQL client] ************** IMPORTANT -sudo apt install postgresql-client -TASK [phpapp : Query PostgreSQL about version] ************** INUTILE -"extraire et enregistrer la version de PostgreSQL" -TASK [phpapp : Extract the PostgreSQL server version] ************** INUTILE -"extraire et enregistrer la version du serveur PostgreSQL" -TASK [phpapp : Install packages: apache2] ************** IMPORTANT -sudo apt install apache2 -TASK [phpapp : Enable and start services: apache2] ************** IMPORTANT -sudo systemctl enable apache2 -sudo systemctl start apache2 -TASK [phpapp : Enable/disable SSL module] ************** IMPORTANT -"Activer le module SSL d'Apache2" -sudo a2enmod ssl -TASK [phpapp : (Un)install mod_rpaf package] ************** INUTILE -"Installer ou désinstaller mod_rpaf" -TASK [phpapp : Enable/disable rpaf module] ************** IMPORTANT -"Désactiver le module rpaf" -sudo a2dismod libapache2-mod-rpaf -TASK [phpapp : Disable sensible modules] ************** IMPORTANT -"Désactiver les modules cgid et status" -sudo a2dismod cgid -sudo a2dismod status -TASK [phpapp : Disable sensible configuration] ************** IMPORTANT -sudo /usr/sbin/a2disconf serve-cgi-bin || true -TASK [phpapp : Disable default site] ************** IMPORTANT -sudo /usr/sbin/a2dissite 000-default -TASK [phpapp : Configure catch-all site] ************** IMPORTANT -"configurer /etc/apache2/sites-available/000-catch-all.conf sur le modèle de /roles/phpapp/templates/apache2/vhost-catch-all.conf.j2" -sudo chmod 644 /etc/apache2/sites-available/000-catch-all.conf -sudo chown root:root /etc/apache2/sites-available/000-catch-all.conf -TASK [phpapp : Enable catch-all site] ************** IMPORTANT -sudo /usr/sbin/a2ensite 000-catch-all -TASK [phpapp : Enable modules] ************** IMPORTANT -"activer les modules alias authz_core deflate dir env expires headers log_config mime negotiation rewrite setenvif unique_id" -sudo a2enmod alias authz_core deflate dir env expires headers log_config mime negotiation rewrite setenvif unique_id -TASK [phpapp : Configure security] ************** IMPORTANT -"ajouter les options nécessaires à /etc/apache2/conf-available/security.conf" -TASK [phpapp : Configure SSL security] ***************************************** -"ajouter les options nécessaires à /etc/apache2/mods-available/ssl.conf" -TASK [phpapp : Enable security configuration] ************** IMPORTANT -sudo /usr/sbin/a2enconf security.conf -TASK [phpapp : Install http://vm-bdoh-tst/ configuration] ************** IMPORTANT -"remplir /etc/apache2/sites-available/vm-bdoh-tst.conf selon le modèle ansible/roles/phpapp/apache2/vhost.conf.j2" -TASK [phpapp : Enable http://vm-bdoh-tst/ configuration] ************** IMPORTANT -sudo /usr/sbin/a2ensite vm-bdoh-tst.conf -systemctl restart apache2 -TASK [phpapp : Install the APT key from https://packages.sury.org/] ************** IMPORTANT -"ajouter le dépot deb.sury.org" -sudo apt-get -y install apt-transport-https lsb-release ca-certificates curl -sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' -sudo apt-get update -TASK [phpapp : Install apt-transport-https] ************** IMPORTANT -sudo apt install apt-transport-https -TASK [phpapp : Configure APT repository: php] ************** INUTILE -"inscrire deb https://packages.sury.org/php/ buster main dans php" -TASK [phpapp : Remove unwanted PHP versions] ************** INUTILE -"désinstaller les versions de PHP inutiles" -TASK [phpapp : Remove configuration of unwanted PHP versions] ************** INUTILE -"retirer la configuration des versions PHP inutiles" -TASK [phpapp : Install required packages] ************** IMPORTANT -sudo apt install php 7.1 php7.1-apcu php7.1-apcu-bc php7.1-common php7.1-gd php7.1-intl php7.1-json php7.1-mbstring php7.1-pgsql php7.1-pgsql php7.1-common php7.1-sodium php7.1-xml php7.1-xml php7.1-zip -TASK [phpapp : Remove unwanted packages] ************** INUTILE -"supprimer les packages installés en trop" -TASK [phpapp : List available extensions] ************** INUTILE -"lister les extensions disponibles" -TASK [phpapp : Enable required extensions] ************** IMPORTANT -sudo /usr/sbin/phpenmod -v 7.1 apcu apcu-bc ctype gd hash iconv intl json mbstring pdo pdo-pgsql pgsql posix sodium tokenizer xml xsl zip pdo readline -TASK [phpapp : Disable unwanted extensions] ************** INUTILE -"désactiver les extensions installées en trop" -TASK [phpapp : Install security configuration] ************** IMPORTANT -cp ansible/roles/phpapp/files/php/owasp-security.ini /etc/php/7.1/mods-available/owasp-security.ini -chmod 644 /etc/php/7.1/mods-available/owasp-security.ini -TASK [phpapp : Enable security configuration] ************** IMPORTANT -sudo /usr/sbin/phpenmod -v 7.1 owasp-security -TASK [phpapp : Configure the default timezone] ************** DISPENSABLE -"régler la timezone dans /etc/php/7.1/cli/php.ini et /etc/php/7.1/php_sapi/php.ini" -TASK [phpapp : Remove locally installed composer binary and cache] ************** INUTILE -"supprimer /home/devops/.composer et /home/devops/bin/composer" -TASK [phpapp : Install the PHAR for 1.10.20] ************** IMPORTANT -wget http://getcomposer.org/download/1.10.20/composer.phar -P /usr/local/bin/composer -curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer --version=1.10.20 -TASK [phpapp : Create Composer configuration directory] ************** IMPORTANT -install -d -m 0700 -o devops -g devops /home/devops/.config/composer -TASK [phpapp : Setup Composer authentication] ************** IMPORTANT -"configurer /home/devops/.config/composer/auth.json sur le modèle de ansible/roles/phpapp/templates/auth.json.j2 avec le mode 0600" -TASK [phpapp : Install the APT key from https://deb.nodesource.com/] ************** IMPORTANT -curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/nodesource.gpg >/dev/null -gpg --no-default-keyring --keyring /usr/share/keyrings/nodesource.gpg --list-keys -TASK [phpapp : Install apt-transport-https] ************** IMPORTANT -sudo apt install apt-transport-https -TASK [phpapp : Configure APT repository: nodesource] ************** INUTILE -"déclarer le repository" -TASK [phpapp : Install NodeJS packages] ************** IMPORTANT -sudo apt install nodejs -apt install npm -TASK [phpapp : Install the Yarn package manager] ************** IMPORTANT -npm install --global --production yarn -TASK [phpapp : Install the configuration file for logrotate] ************** IMPORTANT -"écrire /etc/logrotate.d/bdoh en mode 0644 sur le modèle de ansible/roles/phpapp/templates/logrotate.j2" \ No newline at end of file diff --git a/work/liste_commandes_deployer.md b/work/liste_commandes_deployer.md deleted file mode 100644 index d3d17fa38..000000000 --- a/work/liste_commandes_deployer.md +++ /dev/null @@ -1,756 +0,0 @@ -✈︎ Deploying develop on ly-bdoh-tst.lyon.irstea.priv -• done on [ly-bdoh-tst.lyon.irstea.priv] -➤ Executing task deploy:prepare -> echo $0 -< bash -> if [ ! -d /var/www/bdoh ]; then mkdir -p /var/www/bdoh; fi -> if [ ! -L /var/www/bdoh/current ] && [ -d /var/www/bdoh/current ]; then echo 'true'; fi -> cd /var/www/bdoh && if [ ! -d .dep ]; then mkdir .dep; fi -> cd /var/www/bdoh && if [ ! -d releases ]; then mkdir releases; fi -> cd /var/www/bdoh && if [ ! -d shared ]; then mkdir shared; fi -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [146ms] -➤ Executing task deploy:lock -> if [ -f /var/www/bdoh/.dep/deploy.lock ]; then echo 'true'; fi -> touch /var/www/bdoh/.dep/deploy.lock -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [96ms] -➤ Executing task deploy:release -> cd /var/www/bdoh && (if [ -h release ]; then echo 'true'; fi) -> cd /var/www/bdoh && (if [ -d releases ] && [ "$(ls -A releases)" ]; then echo 'true'; fi) -< true -> cd /var/www/bdoh && (cd releases && ls -t -1 -d */) -< 12/ -< 11/ -< 0/ -< 10/ -< 9/ -< 8/ -> cd /var/www/bdoh && (if [ -f .dep/releases ]; then echo 'true'; fi) -< true -> cd /var/www/bdoh && (tail -n 15 .dep/releases) -< 20210325113130,1 -< 20210325114439,1 -< 20210325115310,1 -< 20210330143751,1 -< 20210414162236,2 -< 20210506090031,3 -< 20210531144457,4 -< 20210706111605,5 -< 20210729105625,6 -< 20210729154254,7 -< 20210803110002,8 -< 20210803171131,9 -< 20210804121125,10 -< 20210804140104,11 -< 20210913164859,12 -> cd /var/www/bdoh && (if [ -d /var/www/bdoh/releases/13 ]; then echo 'true'; fi) -> cd /var/www/bdoh && (date +"%Y%m%d%H%M%S") -< 20210913165448 -> cd /var/www/bdoh && (echo '20210913165448,13' >> .dep/releases) -> cd /var/www/bdoh && (mkdir /var/www/bdoh/releases/13) -> cd /var/www/bdoh && (if [[ $(man ln 2>&1 || ln -h 2>&1 || ln --help 2>&1) =~ '--relative' ]]; then echo 'true'; fi) -< true -> cd /var/www/bdoh && (ln -nfs --relative /var/www/bdoh/releases/13 /var/www/bdoh/release) -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [470ms] -➤ Executing task deploy:update_code -> command -v 'git' || which 'git' || type -p 'git' -< /usr/bin/git -> cd /var/www/bdoh && (if [ -h /var/www/bdoh/release ]; then echo 'true'; fi) -< true -> cd /var/www/bdoh && (readlink /var/www/bdoh/release) -< releases/13 -> cd /var/www/bdoh && (/usr/bin/git clone -b develop --recursive --reference /var/www/bdoh/releases/12 --dissociate git@gitlab-ssh.irstea.fr:pole-is/bdoh.git /var/www/bdoh/releases/13 2>&1) -< Clonage dans '/var/www/bdoh/releases/13'... -< fatal: le dépôt de référence '/var/www/bdoh/releases/12' n'est pas un dépôt local. -> cd /var/www/bdoh && (/usr/bin/git clone -b develop --recursive git@gitlab-ssh.irstea.fr:pole-is/bdoh.git /var/www/bdoh/releases/13 2>&1) -< Clonage dans '/var/www/bdoh/releases/13'... -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [8s 782ms] -➤ Executing task deploy:clear_paths -> rm -rf /var/www/bdoh/releases/13/web/app_*.php -> rm -rf /var/www/bdoh/releases/13/web/config.php -> rm -rf /var/www/bdoh/releases/13/dev -> rm -rf /var/www/bdoh/releases/13/staging -> rm -rf /var/www/bdoh/releases/13/.[a-z]* -> rm -rf /var/www/bdoh/releases/13/docker-* -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [239ms] -➤ Executing task deploy:create_cache_dir -> if [ -d "/var/www/bdoh/releases/13/app/cache" ]; then rm -rf /var/www/bdoh/releases/13/app/cache; fi -> mkdir -p /var/www/bdoh/releases/13/app/cache -> chmod -R g+w /var/www/bdoh/releases/13/app/cache -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [105ms] -➤ Executing task deploy:shared -> if [ -d /var/www/bdoh/shared/app/logs ]; then echo 'true'; fi -< true -> rm -rf /var/www/bdoh/releases/13/app/logs -> mkdir -p `dirname /var/www/bdoh/releases/13/app/logs` -> ln -nfs --relative /var/www/bdoh/shared/app/logs /var/www/bdoh/releases/13/app/logs -> if [ -d /var/www/bdoh/shared/web/uploads ]; then echo 'true'; fi -< true -> rm -rf /var/www/bdoh/releases/13/web/uploads -> mkdir -p `dirname /var/www/bdoh/releases/13/web/uploads` -> ln -nfs --relative /var/www/bdoh/shared/web/uploads /var/www/bdoh/releases/13/web/uploads -> if [ -d /var/www/bdoh/shared/app/config ]; then echo 'true'; fi -< true -> if [ -f /var/www/bdoh/shared/app/config/parameters.yml ]; then echo 'true'; fi -< true -> if [ -f $(echo /var/www/bdoh/releases/13/app/config/parameters.yml) ]; then rm -rf /var/www/bdoh/releases/13/app/config/parameters.yml; fi -> if [ ! -d $(echo /var/www/bdoh/releases/13/app/config) ]; then mkdir -p /var/www/bdoh/releases/13/app/config;fi -> touch /var/www/bdoh/shared/app/config/parameters.yml -> ln -nfs --relative /var/www/bdoh/shared/app/config/parameters.yml /var/www/bdoh/releases/13/app/config/parameters.yml -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [463ms] -➤ Executing task deploy:assets -> find /var/www/bdoh/releases/13/web/css /var/www/bdoh/releases/13/web/images /var/www/bdoh/releases/13/web/js -exec touch -t 202109131654.58 {} ';' &> /dev/null || true -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [92ms] -➤ Executing task deploy:copy_dirs -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [1ms] -➤ Executing task deploy:vendors -> if hash unzip 2>/dev/null; then echo 'true'; fi -< true -> if hash composer 2>/dev/null; then echo 'true'; fi -< true -> command -v 'composer' || which 'composer' || type -p 'composer' -< /usr/local/bin/composer -> command -v 'php' || which 'php' || type -p 'php' -< /usr/bin/php -> cd /var/www/bdoh/releases/13 && /usr/bin/php /usr/local/bin/composer install --verbose --prefer-dist --no-progress --no-interaction --no-dev --optimize-autoloader --no-suggest -< > pre-install-cmd: @force-permissions -< > force-permissions: `which sudo 2>/dev/null || true` chown -R `id -u`:`id -g` app vendor || true -< chown: cannot access 'vendor': No such file or directory -< Loading composer repositories with package information -< Installing dependencies from lock file -< Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. It is recommended that you run `composer update` or `composer update <package name>`. -< Dependency resolution completed in 0.000 seconds -< Analyzed 148 packages to resolve dependencies -< Analyzed 495 rules to resolve dependencies -< Package operations: 101 installs, 0 updates, 0 removals -< Installs: cocur/slugify:v2.5, doctrine/collections:1.6.7, doctrine/lexer:1.0.2, doctrine/inflector:1.3.1, doctrine/cache:v1.7.0, doctrine/annotations:1.11.1, doctrine/common:v2.8.1, symfony/doctrine-bridge:v2.8.52, doctrine/doctrine-cache-bundle:1.3.5, symfony/translation:v2.8.52, symfony/templating:v2.8.52, symfony/stopwatch:v3.0.9, symfony/security:v2.8.52, symfony/security-acl:v3.0.4, symfony/property-access:v2.8.52, symfony/polyfill-util:v1.20.0, symfony/http-foundation:v2.8.52, symfony/event-dispatcher:v2.8.52, psr/log:1.1.3, symfony/debug:v2.8.52, symfony/http-kernel:v2.8.52, symfony/routing:v2.8.52, symfony/finder:v2.8.52, symfony/filesystem:v3.0.9, symfony/dependency-injection:v2.8.52, symfony/config:v2.8.52, symfony/class-loader:v3.0.9, symfony/asset:v2.8.52, symfony/framework-bundle:v2.8.52, symfony/console:v2.8.52, jdorn/sql-formatter:v1.2.17, doctrine/dbal:v2.6.3, doctrine/doctrine-bundle:1.10.3, doctrine/data-fixtures:1.3.3, doctrine/doctrine-fixtures-bundle:v2.4.1, symfony/yaml:v2.8.52, zendframework/zend-eventmanager:3.2.1, zendframework/zend-code:2.6.3, ocramius/proxy-manager:1.0.2, doctrine/migrations:v1.5.0, doctrine/doctrine-migrations-bundle:v1.3.2, gregwar/captcha:v1.0.11, gregwar/captcha-bundle:v1.0.11, ralouphie/getallheaders:3.0.3, psr/http-message:1.0.1, guzzlehttp/psr7:1.8.2, guzzlehttp/promises:1.4.1, guzzlehttp/guzzle:6.5.5, incenteev/composer-parameter-handler:v2.1.4, jms/cg:1.2.0, symfony/process:v3.4.46, jms/metadata:1.7.0, jms/aop-bundle:1.3.0, jms/di-extra-bundle:1.8.2, jms/job-queue-bundle:1.4.2, symfony/security-bundle:v2.8.52, phpoption/phpoption:1.7.5, jms/parser-lib:1.0.0, jms/security-extra-bundle:1.6.1, phpcollection/phpcollection:0.5.0, doctrine/instantiator:1.4.0, jms/serializer:1.14.1, knplabs/knp-menu:2.6.0, knplabs/knp-menu-bundle:2.1.3, opis/json-schema:1.1.0, oyejorge/less.php:v1.7.0.3, pagerfanta/pagerfanta:v1.1.0, symfony/mime:v4.4.16, psr/container:1.0.0, symfony/service-contracts:v1.1.9, symfony/polyfill-php73:v1.20.0, symfony/http-client-contracts:v1.1.10, symfony/http-client:v4.4.16, sensiolabs/security-checker:v6.0.3, sensio/distribution-bundle:v5.0.25, sensio/framework-extra-bundle:v3.0.29, twig/twig:v1.43.1, symfony/twig-bridge:v2.8.52, symfony/twig-bundle:v2.8.52, symfony/options-resolver:v2.8.52, symfony/intl:v3.2.14, symfony/form:v2.8.52, twig/extensions:v1.5.4, symfony/validator:v2.8.52, sonata-project/datagrid-bundle:2.4.0, sonata-project/core-bundle:3.5.1, sonata-project/cache:2.0.1, sonata-project/block-bundle:3.13.0, sonata-project/exporter:1.11.1, symfony/expression-language:v3.1.10, sonata-project/admin-bundle:3.23.0, doctrine/orm:v2.5.14, sonata-project/doctrine-orm-admin-bundle:3.1.7, monolog/monolog:1.25.5, symfony/monolog-bridge:v3.2.14, symfony/monolog-bundle:v2.12.1, symfony/serializer:v2.8.52, swiftmailer/swiftmailer:v5.4.12, symfony/swiftmailer-bundle:v2.6.7, willdurand/js-translation-bundle:2.6.6, willdurand/negotiation:v2.3.1 -< - Installing cocur/slugify (v2.5): -< Loading from cache -< Extracting archive -< - Installing doctrine/collections (1.6.7): -< Loading from cache -< Extracting archive -< - Installing doctrine/lexer (1.0.2): -< Loading from cache -< Extracting archive -< - Installing doctrine/inflector (1.3.1): -< Loading from cache -< Extracting archive -< - Installing doctrine/cache (v1.7.0): -< Loading from cache -< Extracting archive -< - Installing doctrine/annotations (1.11.1): -< Loading from cache -< Extracting archive -< - Installing doctrine/common (v2.8.1): -< Loading from cache -< Extracting archive -< - Installing symfony/doctrine-bridge (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing doctrine/doctrine-cache-bundle (1.3.5): -< Loading from cache -< Extracting archive -< - Installing symfony/translation (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing symfony/templating (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing symfony/stopwatch (v3.0.9): -< Loading from cache -< Extracting archive -< - Installing symfony/security (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing symfony/security-acl (v3.0.4): -< Loading from cache -< Extracting archive -< - Installing symfony/property-access (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing symfony/polyfill-util (v1.20.0): -< Loading from cache -< Extracting archive -< - Installing symfony/http-foundation (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing symfony/event-dispatcher (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing psr/log (1.1.3): -< Loading from cache -< Extracting archive -< - Installing symfony/debug (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing symfony/http-kernel (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing symfony/routing (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing symfony/finder (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing symfony/filesystem (v3.0.9): -< Loading from cache -< Extracting archive -< - Installing symfony/dependency-injection (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing symfony/config (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing symfony/class-loader (v3.0.9): -< Loading from cache -< Extracting archive -< - Installing symfony/asset (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing symfony/framework-bundle (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing symfony/console (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing jdorn/sql-formatter (v1.2.17): -< Loading from cache -< Extracting archive -< - Installing doctrine/dbal (v2.6.3): -< Loading from cache -< Extracting archive -< - Installing doctrine/doctrine-bundle (1.10.3): -< Loading from cache -< Extracting archive -< - Installing doctrine/data-fixtures (1.3.3): -< Loading from cache -< Extracting archive -< - Installing doctrine/doctrine-fixtures-bundle (v2.4.1): -< Loading from cache -< Extracting archive -< - Installing symfony/yaml (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing zendframework/zend-eventmanager (3.2.1): -< Loading from cache -< Extracting archive -< - Installing zendframework/zend-code (2.6.3): -< Loading from cache -< Extracting archive -< - Installing ocramius/proxy-manager (1.0.2): -< Loading from cache -< Extracting archive -< - Installing doctrine/migrations (v1.5.0): -< Loading from cache -< Extracting archive -< - Installing doctrine/doctrine-migrations-bundle (v1.3.2): -< Loading from cache -< Extracting archive -< - Installing gregwar/captcha (v1.0.11): -< Loading from cache -< Extracting archive -< - Installing gregwar/captcha-bundle (v1.0.11): -< Loading from cache -< Extracting archive -< - Installing ralouphie/getallheaders (3.0.3): -< Loading from cache -< Extracting archive -< - Installing psr/http-message (1.0.1): -< Loading from cache -< Extracting archive -< - Installing guzzlehttp/psr7 (1.8.2): -< Loading from cache -< Extracting archive -< - Installing guzzlehttp/promises (1.4.1): -< Loading from cache -< Extracting archive -< - Installing guzzlehttp/guzzle (6.5.5): -< Loading from cache -< Extracting archive -< - Installing incenteev/composer-parameter-handler (v2.1.4): -< Loading from cache -< Extracting archive -< - Installing jms/cg (1.2.0): -< Loading from cache -< Extracting archive -< - Installing symfony/process (v3.4.46): -< Loading from cache -< Extracting archive -< - Installing jms/metadata (1.7.0): -< Loading from cache -< Extracting archive -< - Installing jms/aop-bundle (1.3.0): -< Loading from cache -< Extracting archive -< - Installing jms/di-extra-bundle (1.8.2): -< Loading from cache -< Extracting archive -< - Installing jms/job-queue-bundle (1.4.2): -< Loading from cache -< Extracting archive -< - Installing symfony/security-bundle (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing phpoption/phpoption (1.7.5): -< Loading from cache -< Extracting archive -< - Installing jms/parser-lib (1.0.0): -< Loading from cache -< Extracting archive -< - Installing jms/security-extra-bundle (1.6.1): -< Loading from cache -< Extracting archive -< - Installing phpcollection/phpcollection (0.5.0): -< Loading from cache -< Extracting archive -< - Installing doctrine/instantiator (1.4.0): -< Loading from cache -< Extracting archive -< - Installing jms/serializer (1.14.1): -< Loading from cache -< Extracting archive -< - Installing knplabs/knp-menu (2.6.0): -< Loading from cache -< Extracting archive -< - Installing knplabs/knp-menu-bundle (2.1.3): -< Loading from cache -< Extracting archive -< - Installing opis/json-schema (1.1.0): -< Loading from cache -< Extracting archive -< - Installing oyejorge/less.php (v1.7.0.3): -< Loading from cache -< Extracting archive -< - Installing pagerfanta/pagerfanta (v1.1.0): -< Loading from cache -< Extracting archive -< - Installing symfony/mime (v4.4.16): -< Loading from cache -< Extracting archive -< - Installing psr/container (1.0.0): -< Loading from cache -< Extracting archive -< - Installing symfony/service-contracts (v1.1.9): -< Loading from cache -< Extracting archive -< - Installing symfony/polyfill-php73 (v1.20.0): -< Loading from cache -< Extracting archive -< - Installing symfony/http-client-contracts (v1.1.10): -< Loading from cache -< Extracting archive -< - Installing symfony/http-client (v4.4.16): -< Loading from cache -< Extracting archive -< - Installing sensiolabs/security-checker (v6.0.3): -< Loading from cache -< Extracting archive -< - Installing sensio/distribution-bundle (v5.0.25): -< Loading from cache -< Extracting archive -< - Installing sensio/framework-extra-bundle (v3.0.29): -< Loading from cache -< Extracting archive -< - Installing twig/twig (v1.43.1): -< Loading from cache -< Extracting archive -< - Installing symfony/twig-bridge (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing symfony/twig-bundle (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing symfony/options-resolver (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing symfony/intl (v3.2.14): -< Loading from cache -< Extracting archive -< - Installing symfony/form (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing twig/extensions (v1.5.4): -< Loading from cache -< Extracting archive -< - Installing symfony/validator (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing sonata-project/datagrid-bundle (2.4.0): -< Loading from cache -< Extracting archive -< - Installing sonata-project/core-bundle (3.5.1): -< Loading from cache -< Extracting archive -< - Installing sonata-project/cache (2.0.1): -< Loading from cache -< Extracting archive -< - Installing sonata-project/block-bundle (3.13.0): -< Loading from cache -< Extracting archive -< - Installing sonata-project/exporter (1.11.1): -< Loading from cache -< Extracting archive -< - Installing symfony/expression-language (v3.1.10): -< Loading from cache -< Extracting archive -< - Installing sonata-project/admin-bundle (3.23.0): -< Loading from cache -< Extracting archive -< - Installing doctrine/orm (v2.5.14): -< Loading from cache -< Extracting archive -< - Installing sonata-project/doctrine-orm-admin-bundle (3.1.7): -< Loading from cache -< Extracting archive -< - Installing monolog/monolog (1.25.5): -< Loading from cache -< Extracting archive -< - Installing symfony/monolog-bridge (v3.2.14): -< Loading from cache -< Extracting archive -< - Installing symfony/monolog-bundle (v2.12.1): -< Loading from cache -< Extracting archive -< - Installing symfony/serializer (v2.8.52): -< Loading from cache -< Extracting archive -< - Installing swiftmailer/swiftmailer (v5.4.12): -< Loading from cache -< Extracting archive -< - Installing symfony/swiftmailer-bundle (v2.6.7): Loading from cache -< Extracting archive -< - Installing willdurand/js-translation-bundle (2.6.6): Loading from cache -< Extracting archive -< - Installing willdurand/negotiation (v2.3.1): Loading from cache -< Extracting archive -< Package doctrine/doctrine-cache-bundle is abandoned, you should avoid using it. No replacement was suggested. -< Package zendframework/zend-eventmanager is abandoned, you should avoid using it. Use laminas/laminas-eventmanager instead. -< Package zendframework/zend-code is abandoned, you should avoid using it. Use laminas/laminas-code instead. -< Package oyejorge/less.php is abandoned, you should avoid using it. No replacement was suggested. -< Package sensiolabs/security-checker is abandoned, you should avoid using it. Use https://github.com/fabpot/local-php-security-checker instead. -< Package sensio/distribution-bundle is abandoned, you should avoid using it. No replacement was suggested. -< Package twig/extensions is abandoned, you should avoid using it. No replacement was suggested. -< Package sonata-project/core-bundle is abandoned, you should avoid using it. No replacement was suggested. -< Generating optimized autoload files -< Deprecation Notice: Class Sensio\Bundle\FrameworkExtraBundle\Tests\DependencyInjection\AddParamConverterPassTest located in ./vendor/sensio/framework-extra-bundle/Tests/DependencyInjection/Compiler/AddParamConverterPassTest.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:201 -< Stack trace: -< phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:116 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:378 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:341 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:264 -< phar:///usr/local/bin/composer/src/Composer/Installer.php:307 -< phar:///usr/local/bin/composer/src/Composer/Command/InstallCommand.php:122 -< phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:245 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:835 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:185 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:281 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:117 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:113 -< phar:///usr/local/bin/composer/bin/composer:61 -< /usr/local/bin/composer:24 -< Deprecation Notice: Class Sensio\Bundle\FrameworkExtraBundle\Tests\DependencyInjection\AddExpressionLanguageProvidersPassTest located in ./vendor/sensio/framework-extra-bundle/Tests/DependencyInjection/Compiler/AddExpressionLanguageProvidersPassTest.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:201 -< Stack trace: -< phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:116 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:378 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:341 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:264 -< phar:///usr/local/bin/composer/src/Composer/Installer.php:307 -< phar:///usr/local/bin/composer/src/Composer/Command/InstallCommand.php:122 -< phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:245 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:835 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:185 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:281 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:117 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:113 -< phar:///usr/local/bin/composer/bin/composer:61 -< /usr/local/bin/composer:24 -< Deprecation Notice: Class Knp\Bundle\MenuBundle\Tests\EventListener\MenuPassTest located in ./vendor/knplabs/knp-menu-bundle/Tests/EventListener/VoterInitializerListenerTest.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:201 -< Stack trace: -< phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:116 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:378 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:341 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:264 -< phar:///usr/local/bin/composer/src/Composer/Installer.php:307 -< phar:///usr/local/bin/composer/src/Composer/Command/InstallCommand.php:122 -< phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:245 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:835 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:185 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:281 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:117 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:113 -< phar:///usr/local/bin/composer/bin/composer:61 -< /usr/local/bin/composer:24 -< Deprecation Notice: Class JMS\SecurityExtraBundle\Tests\Mapping\Driver\FooService located in ./vendor/jms/security-extra-bundle/Tests/Metadata/Driver/Fixtures/services.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:201 -< Stack trace: -< phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:116 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:378 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:341 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:264 -< phar:///usr/local/bin/composer/src/Composer/Installer.php:307 -< phar:///usr/local/bin/composer/src/Composer/Command/InstallCommand.php:122 -< phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:245 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:835 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:185 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:281 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:117 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:113 -< phar:///usr/local/bin/composer/bin/composer:61 -< /usr/local/bin/composer:24 -< Deprecation Notice: Class JMS\SecurityExtraBundle\Tests\Mapping\Driver\FooSecureService located in ./vendor/jms/security-extra-bundle/Tests/Metadata/Driver/Fixtures/services.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:201 -< Stack trace: -< phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:116 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:378 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:341 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:264 -< phar:///usr/local/bin/composer/src/Composer/Installer.php:307 -< phar:///usr/local/bin/composer/src/Composer/Command/InstallCommand.php:122 -< phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:245 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:835 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:185 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:281 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:117 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:113 -< phar:///usr/local/bin/composer/bin/composer:61 -< /usr/local/bin/composer:24 -< Deprecation Notice: Class JMS\SecurityExtraBundle\Tests\Mapping\Driver\FooMultipleSecureService located in ./vendor/jms/security-extra-bundle/Tests/Metadata/Driver/Fixtures/services.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:201 -< Stack trace: -< phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:116 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:378 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:341 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:264 -< phar:///usr/local/bin/composer/src/Composer/Installer.php:307 -< phar:///usr/local/bin/composer/src/Composer/Command/InstallCommand.php:122 -< phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:245 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:835 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:185 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:281 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:117 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:113 -< phar:///usr/local/bin/composer/bin/composer:61 -< /usr/local/bin/composer:24 -< Deprecation Notice: Class JMS\SecurityExtraBundle\Tests\Mapping\Driver\FooInterface located in ./vendor/jms/security-extra-bundle/Tests/Metadata/Driver/Fixtures/services.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:201 -< Stack trace: -< phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:116 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:378 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:341 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:264 -< phar:///usr/local/bin/composer/src/Composer/Installer.php:307 -< phar:///usr/local/bin/composer/src/Composer/Command/InstallCommand.php:122 -< phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:245 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:835 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:185 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:281 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:117 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:113 -< phar:///usr/local/bin/composer/bin/composer:61 -< /usr/local/bin/composer:24 -< Deprecation Notice: Class JMS\SecurityExtraBundle\Tests\Mapping\Driver\AnnotationDriverTest located in ./vendor/jms/security-extra-bundle/Tests/Metadata/Driver/AnnotationDriverTest.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:201 -< Stack trace: -< phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:116 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:378 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:341 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:264 -< phar:///usr/local/bin/composer/src/Composer/Installer.php:307 -< phar:///usr/local/bin/composer/src/Composer/Command/InstallCommand.php:122 -< phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:245 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:835 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:185 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:281 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:117 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:113 -< phar:///usr/local/bin/composer/bin/composer:61 -< /usr/local/bin/composer:24 -< Deprecation Notice: Class JMS\DiExtraBundle\Tests\Fixture\NonEmptyDirectory\SubDir2\Service1 located in ./vendor/jms/di-extra-bundle/Tests/Fixture/NonEmptyDirectory/SubDir2/Service3.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:201 -< Stack trace: -< phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:116 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:378 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:341 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:264 -< phar:///usr/local/bin/composer/src/Composer/Installer.php:307 -< phar:///usr/local/bin/composer/src/Composer/Command/InstallCommand.php:122 -< phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:245 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:835 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:185 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:281 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:117 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:113 -< phar:///usr/local/bin/composer/bin/composer:61 -< /usr/local/bin/composer:24 -< Deprecation Notice: Class Doctrine\Bundle\MigrationsBundle\Tests\DependencyInjection\DoctrineCommandTest located in ./vendor/doctrine/doctrine-migrations-bundle/Tests/Command/DoctrineCommandTest.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:201 -< Stack trace: -< phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:116 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:378 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:341 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:264 -< phar:///usr/local/bin/composer/src/Composer/Installer.php:307 -< phar:///usr/local/bin/composer/src/Composer/Command/InstallCommand.php:122 -< phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:245 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:835 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:185 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:281 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:117 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:113 -< phar:///usr/local/bin/composer/bin/composer:61 -< /usr/local/bin/composer:24 -< Deprecation Notice: Class Bazinga\Bundle\JsTranslationBundle\Tests\AppKernel located in ./vendor/willdurand/js-translation-bundle/Tests/Fixtures/app/AppKernel.php does not comply with psr-4 autoloading standard. It will not autoload anymore in Composer v2.0. in phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:201 -< Stack trace: -< phar:///usr/local/bin/composer/src/Composer/Autoload/ClassMapGenerator.php:116 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:378 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:341 -< phar:///usr/local/bin/composer/src/Composer/Autoload/AutoloadGenerator.php:264 -< phar:///usr/local/bin/composer/src/Composer/Installer.php:307 -< phar:///usr/local/bin/composer/src/Composer/Command/InstallCommand.php:122 -< phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:245 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:835 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:185 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:281 -< phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:117 -< phar:///usr/local/bin/composer/src/Composer/Console/Application.php:113 -< phar:///usr/local/bin/composer/bin/composer:61 -< /usr/local/bin/composer:24 -< 12 packages you are using are looking for funding. -< Use the `composer fund` command to find out more! -< > post-install-cmd: @symfony-scripts -< > symfony-scripts: `which sudo 2>/dev/null || true` rm -rf app/cache/${SYMFONY_ENV:-dev} || true -< > symfony-scripts: Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap -< Updating the "app/config/parameters.yml" file -< > symfony-scripts: Incenteev\ParameterHandler\ScriptHandler::buildParameters -< > symfony-scripts: @php app/console cache:warmup -< // Warming up the cache for the prod environment with debug false -< [OK] Cache for the "prod" environment (debug=false) was successfully warmed. -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [7s 627ms] -➤ Executing task deploy:assets:install -> cd /var/www/bdoh/releases/13 && (/usr/bin/php /usr/local/bin/composer install-assets --no-interaction) -< > @php app/console asset:install -n --symlink --relative -< Trying to install assets as relative symbolic links. -< --- ---------------------------- ------------------ -< Bundle Method / Error -< --- ---------------------------- ------------------ -< ✔ FrameworkBundle relative symlink -< ✔ BazingaJsTranslationBundle relative symlink -< ✔ JMSJobQueueBundle relative symlink -< ✔ SonataCoreBundle relative symlink -< ✔ SonataAdminBundle relative symlink -< --- ---------------------------- ------------------ -< [OK] All assets were successfully installed. -< > @php app/console bazinga:js-translation:dump -n src/Irstea/BdohInternationalisationBundle/Resources/assets --merge-domains --format=json -< Installing translation files in src/Irstea/BdohInternationalisationBundle/Resources/assets directory -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [519ms] -➤ Executing task frontend:vendors -> cd /var/www/bdoh/releases/13 && (yarn install --pure-lockfile) -< yarn install v1.22.10 -< [1/4] Resolving packages... -< [2/4] Fetching packages... -< info fsevents@1.1.2: The platform "linux" is incompatible with this module. -< info "fsevents@1.1.2" is an optional dependency and failed compatibility check. Excluding it from installation. -< [3/4] Linking dependencies... -< warning " > less-loader@4.0.5" has unmet peer dependency "webpack@^2.0.0 || ^3.0.0". -< [4/4] Building fresh packages... -< Done in 6.46s. -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [6s 717ms] -➤ Executing task frontend:generate -> cd /var/www/bdoh/releases/13 && (yarn run encore production) -< yarn run v1.22.10 -< $ /var/www/bdoh/releases/13/node_modules/.bin/encore production -< Running webpack ... -< DONE Compiled successfully in 49308ms4:56:03 PM -< I 83 files written to web/assets -< Done in 50.17s. -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [50s 432ms] -➤ Executing task deploy:assetic:dump -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [0ms] -➤ Executing task deploy:cache:clear -> /usr/bin/php /var/www/bdoh/releases/13/app/console cache:clear --no-interaction --env=prod --no-debug --no-warmup -< // Clearing the cache for the prod environment with debug false -< [OK] Cache for the "prod" environment (debug=false) was successfully cleared. -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [1s 543ms] -➤ Executing task deploy:cache:warmup -> /usr/bin/php /var/www/bdoh/releases/13/app/console cache:warmup --no-interaction --env=prod --no-debug -< // Warming up the cache for the prod environment with debug false -< [OK] Cache for the "prod" environment (debug=false) was successfully warmed. -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [3s 417ms] -➤ Executing task deploy:writable -> cd /var/www/bdoh/releases/13 && (mkdir -p app/cache app/logs app/imports app/exports web/css/themes web/uploads/.) -> cd /var/www/bdoh/releases/13 && (chmod 2>&1; true) -< chmod: opérande manquant -< Saisissez « chmod --help » pour plus d'informations. -> cd /var/www/bdoh/releases/13 && (if hash setfacl 2>/dev/null; then echo 'true'; fi) -< true -> cd /var/www/bdoh/releases/13 && (getfacl -p app/cache | grep "^user:www-data:.*w" | wc -l) -> cd /var/www/bdoh/releases/13 && (setfacl -L -R -m u:"www-data":rwX -m u:`whoami`:rwX app/cache) -> cd /var/www/bdoh/releases/13 && (setfacl -dL -R -m u:"www-data":rwX -m u:`whoami`:rwX app/cache) -> cd /var/www/bdoh/releases/13 && (getfacl -p app/logs | grep "^user:www-data:.*w" | wc -l) -< 1 -> cd /var/www/bdoh/releases/13 && (getfacl -p app/imports | grep "^user:www-data:.*w" | wc -l) -> cd /var/www/bdoh/releases/13 && (setfacl -L -R -m u:"www-data":rwX -m u:`whoami`:rwX app/imports) -> cd /var/www/bdoh/releases/13 && (setfacl -dL -R -m u:"www-data":rwX -m u:`whoami`:rwX app/imports) -> cd /var/www/bdoh/releases/13 && (getfacl -p app/exports | grep "^user:www-data:.*w" | wc -l) -> cd /var/www/bdoh/releases/13 && (setfacl -L -R -m u:"www-data":rwX -m u:`whoami`:rwX app/exports) -> cd /var/www/bdoh/releases/13 && (setfacl -dL -R -m u:"www-data":rwX -m u:`whoami`:rwX app/exports) -> cd /var/www/bdoh/releases/13 && (getfacl -p web/css/themes | grep "^user:www-data:.*w" | wc -l) -> cd /var/www/bdoh/releases/13 && (setfacl -L -R -m u:"www-data":rwX -m u:`whoami`:rwX web/css/themes) -> cd /var/www/bdoh/releases/13 && (setfacl -dL -R -m u:"www-data":rwX -m u:`whoami`:rwX web/css/themes) -> cd /var/www/bdoh/releases/13 && (getfacl -p web/uploads/. | grep "^user:www-data:.*w" | wc -l) -< 1 -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [606ms] -➤ Executing task apache2:stop -> cd /var/www/bdoh/releases/13 && (sudo systemctl stop apache2.service) -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [925ms] -➤ Executing task job-worker:stop -> cd /var/www/bdoh/releases/13 && (sudo systemctl stop bdoh-job-worker.service) -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [93ms] -➤ Executing task database:migrate -> /usr/bin/php /var/www/bdoh/releases/13/app/console doctrine:migrations:migrate --no-interaction --env=prod --no-debug --allow-no-migration -< -< BDOH Migrations -< No migrations to execute. -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [238ms] -➤ Executing task deploy:symlink -> if [[ $(man mv 2>&1 || mv -h 2>&1 || mv --help 2>&1) =~ '--no-target-directory' ]]; then echo 'true'; fi -< true -> mv -T /var/www/bdoh/release /var/www/bdoh/current -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [140ms] -➤ Executing task job-worker:refresh -> cd /var/www/bdoh/releases/13 && (sudo systemctl daemon-reload) -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [192ms] -➤ Executing task job-worker:start -> cd /var/www/bdoh/releases/13 && (sudo systemctl start bdoh-job-worker.service) -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [63ms] -➤ Executing task apache2:start -> cd /var/www/bdoh/releases/13 && (sudo systemctl start apache2.service) -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [141ms] -➤ Executing task deploy:unlock -> rm -f /var/www/bdoh/.dep/deploy.lock -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [46ms] -➤ Executing task cleanup -> rm -rf /var/www/bdoh/releases/8 -> cd /var/www/bdoh && if [ -e release ]; then rm release; fi -> cd /var/www/bdoh && if [ -h release ]; then rm release; fi -• done on [ly-bdoh-tst.lyon.irstea.priv] -✔ Ok [5s 53ms] -Successfully deployed! diff --git a/work/liste_etapes_ansible_openbdoh.txt b/work/liste_etapes_ansible_openbdoh.txt deleted file mode 100644 index fe165af49..000000000 --- a/work/liste_etapes_ansible_openbdoh.txt +++ /dev/null @@ -1,88 +0,0 @@ -TASK [Gathering Facts] ********************************************************* -TASK [common : Package cleanup] ************************************************ -TASK [common : Configure timezone Europe/Paris] ******************************** -TASK [common : Configure default locale: fr_FR.UTF-8] ************************** -TASK [common : Configure generated locales] ************************************ -TASK [common : Install common tools] ******************************************* -TASK [common : Set up MOTD] **************************************************** -TASK [common : Set up shell prompt] ******************************************** -TASK [common : Set up global bashrc] ******************************************* -TASK [common : Set up vim] ***************************************************** -TASK [common : Install/update VMware guest tools] ****************************** -TASK [common : (Un)install time-syncing packages] ****************************** -TASK [common : Install packages: cron] ***************************************** -TASK [common : Enable and start services: cron] ******************************** -TASK [common : Install authorized_keys for root] ******************************* -TASK [common : Install SSH keys of known hosts] ******************************** -TASK [common : Install unattended upgrades] ************************************ -TASK [common : Configure unattended upgrades] ********************************** -TASK [common : Enable unattended upgrade timers] ******************************* -TASK [postgresql-server : Install packages: postgresql, postgresql-client, libpq-dev, python3-psycopg2] *** -TASK [postgresql-server : Enable and start services: postgresql] *************** -TASK [postgresql-server : Fetch postgresql version] **************************** -TASK [postgresql-server : Set md5 policy for local connections] **************** -TASK [postgresql-server : Set peer policy for postgres's connections] ********** -TASK [postgresql-server : Create devops superuser] ***************************** -TASK [postgresql-server : Set peer policy for devops's connections] ************ -TASK [postgresql-server : Install the daily database dump script] ************** -TASK [postgresql-server : Create user 'bdoh'] ********************************** -TASK [postgresql-server : Setting 'bdoh' password] ***************************** -TASK [postgresql-server : Select database owner] ******************************* -TASK [postgresql-server : Create database 'bdoh'] ****************************** -TASK [postgresql-server : Grant permissions on database 'bdoh' to bdoh] ******** -TASK [postgresql-server : Create schema 'bdoh.bdoh'] *************************** -TASK [postgresql-server : Grant permissions on schema 'bdoh.bdoh' to bdoh] ***** -TASK [phpapp : Generate the deploy key pair] *********************************** -TASK [phpapp : Read the deploy key pair] *************************************** -TASK [phpapp : Create the devops group] **************************************** -TASK [phpapp : Create the devops user] ***************************************** -TASK [phpapp : Grant password-less sudo to devops] ***************************** -TASK [phpapp : Install devops tools] ******************************************* -TASK [phpapp : Install authorized_keys of devops] ****************************** -TASK [phpapp : Remove local .bashrc] ******************************************* -TASK [phpapp : Setup environment variables] ************************************ -TASK [phpapp : Setup PSQLRC] *************************************************** -TASK [phpapp : Configure ~devops/.pgpass for bdoh] ***************************** -TASK [phpapp : Setup /var/www/bdoh] ******************************************** -TASK [phpapp : Install PostgreSQL client] ************************************** -TASK [phpapp : Query PostgreSQL about version] ********************************* -TASK [phpapp : Extract the PostgreSQL server version] ************************** -TASK [phpapp : Install packages: apache2] ************************************** -TASK [phpapp : Enable and start services: apache2] ***************************** -TASK [phpapp : Enable/disable SSL module] ************************************** -TASK [phpapp : (Un)install mod_rpaf package] *********************************** -TASK [phpapp : Enable/disable rpaf module] ************************************* -TASK [phpapp : Disable sensible modules] *************************************** -TASK [phpapp : Disable sensible configuration] ********************************* -TASK [phpapp : Disable default site] ******************************************* -TASK [phpapp : Configure catch-all site] *************************************** -TASK [phpapp : Enable catch-all site] ****************************************** -TASK [phpapp : Enable modules] ************************************************* -TASK [phpapp : Configure security] ********************************************* -TASK [phpapp : Configure SSL security] ***************************************** -TASK [phpapp : Enable security configuration] ********************************** -TASK [phpapp : Install http://vm-bdoh-tst/ configuration] ********************** -TASK [phpapp : Enable http://vm-bdoh-tst/ configuration] *********************** -TASK [phpapp : Install the APT key from https://packages.sury.org/php/apt.gpg] *** -TASK [phpapp : Install apt-transport-https] ************************************ -TASK [phpapp : Configure APT repository: php] ********************************** -TASK [phpapp : Remove unwanted PHP versions] *********************************** -TASK [phpapp : Remove configuration of unwanted PHP versions] ****************** -TASK [phpapp : Install required packages] ************************************** -TASK [phpapp : Remove unwanted packages] *************************************** -TASK [phpapp : List available extensions] ************************************** -TASK [phpapp : Enable required extensions] ************************************* -TASK [phpapp : Disable unwanted extensions] ************************************ -TASK [phpapp : Install security configuration] ********************************* -TASK [phpapp : Enable security configuration] ********************************** -TASK [phpapp : Configure the default timezone] ********************************* -TASK [phpapp : Remove locally installed composer binary and cache] ************* -TASK [phpapp : Install the PHAR for 1.10.20] *********************************** -TASK [phpapp : Create Composer configuration directory] ************************ -TASK [phpapp : Setup Composer authentication] ********************************** -TASK [phpapp : Install the APT key from https://deb.nodesource.com/gpgkey/nodesource.gpg.key] *** -TASK [phpapp : Install apt-transport-https] ************************************ -TASK [phpapp : Configure APT repository: nodesource] *************************** -TASK [phpapp : Install NodeJS packages] **************************************** -TASK [phpapp : Install the Yarn package manager] ******************************* -TASK [phpapp : Install the configuration file for logrotate] ******************* diff --git a/work/liste_fichiers_configuration.md b/work/liste_fichiers_configuration.md deleted file mode 100644 index a8ea0b269..000000000 --- a/work/liste_fichiers_configuration.md +++ /dev/null @@ -1,8 +0,0 @@ -/home/devops/.pgpass -/etc/apache2/sites-available/000-catch-all.conf -/etc/apache2/conf-available/security.conf -/etc/apache2/mods-available/ssl.conf -/etc/apache2/sites-available/<domaine>.conf -/etc/php/7.1/mods-available/owasp-security.ini -/home/devops/.config/composer/auth.json -/etc/logrotate.d/bdoh diff --git a/work/tri_liste_commandes_ansible.md b/work/tri_liste_commandes_ansible.md deleted file mode 100644 index 3a4b1812a..000000000 --- a/work/tri_liste_commandes_ansible.md +++ /dev/null @@ -1,229 +0,0 @@ -Liste détaillée des commandes exécutées par Ansible -=================================================== - -# TASK [Common] **************************************************************** - -TASK [common : Package cleanup] ************************************************ DISPENSABLE -sudo apt update -sudo apt autoclean -sudo apt autoremove -TASK [common : Configure timezone Europe/Paris] ******************************** DISPENSABLE -sudo echo "Europe/Paris" >> /etc/timezone -sudo chmod 0444 /etc/timezone -TASK [common : Configure default locale: fr_FR.UTF-8] ************************** DISPENSABLE -apt install locales -dpkg-reconfigure locales (interactive) -TASK [common : Configure generated locales] ************************************ DISPENSABLE -locale-gen --purge fr_FR.UTF-8 -TASK [common : Install common tools] ******************************************* DISPENSABLE -sudo apt install curl ncurses-bin ncurses-term vim bash -TASK [common : Set up MOTD] **************************************************** DISPENSABLE -cp ansible/roles/common/templates/login/motd.j2 /etc/motd -TASK [common : Set up shell prompt] ******************************************** DISPENSABLE -"remplir /etc/profile.d/prompt.sh sur le modèle de ansible/roles/common/templates/login/prompt.sh.j2" -TASK [common : Set up global bashrc] ******************************************* DISPENSABLE -mv ansible/roles/common/files/login/bash.bashrc /etc/bash.bashrc -TASK [common : Set up vim] ***************************************************** DISPENSABLE -mv ansible/roles/common/files/login/vimrc.local /etc/vim/vimrc.local -TASK [common : Install/update VMware guest tools] ****************************** DISPENSABLE -sudo apt install open-vm-tools -TASK [common : (Un)install time-syncing packages] ****************************** DISPENSABLE -"installation et configuration de NTP" -TASK [common : Install packages: cron] ***************************************** IMPORTANT -sudo apt install apt-transport-https -sudo apt install cron -TASK [common : Enable and start services: cron] ******************************** IMPORTANT -sudo systemctl enable cron.service -sudo systemctl start cron.service -TASK [common : Install authorized_keys for root] ******************************* INUTILE -"installation de la clef ssh de root" -TASK [common : Install SSH keys of known hosts] ******************************** INUTILE -"installation des clefs publiques des serveurs" -TASK [common : Install unattended upgrades] ************************************ DISPENSABLE -sudo apt install unattended-upgrades needrestart -TASK [common : Configure unattended upgrades] ********************************** DISPENSABLE -"configuration de unattended-upgrades" -TASK [common : Enable unattended upgrade timers] ******************************* DISPENSABLE -"configuration des timers de unattended-upgrades" - -# TASK [PostgreSQL-server] ***************************************************** - -TASK [postgresql-server : Install packages: postgresql, postgresql-client, libpq-dev, python3-psycopg2] *** IMPORTANT -sudo apt install postgresql postgresql-client libpq-dev python3-psycopg2 -TACHE: installation de postgis ************************************************* IMPORTANT -sudo apt install postgis postgresql-postgis-2.5 postgresql-postgis-2.5-scripts -TASK [postgresql-server : Enable and start services: postgresql] *************** IMPORTANT -sudo systemctl enable postgresql -sudo systemctl start postgresql -TASK [postgresql-server : Fetch postgresql version] **************************** INUTILE -"vérifier la version de postgresql" -TASK [postgresql-server : Set md5 policy for local connections] **************** IMPORTANT -"activer md5 pour toutes les connexions locales dans /etc/postgresql/11/main/pg_hba.conf" -TASK [postgresql-server : Set peer policy for postgres's connections] ********** IMPORTANT -"activer peer pour toutes les connexions locales de postgres" -TASK [postgresql-server : Create devops superuser] ***************************** IMPORTANT -CREATE USER devops; -ALTER ROLE devops SUPERUSER; -TASK [postgresql-server : Set peer policy for devops's connections] ************ IMPORTANT -"activer peer pour toutes les connexions locales de devops" -TASK [postgresql-server : Install the daily database dump script] ************** IMPORTANT -"installer le script ansible/roles/postgresql-server/files/local_pg_dump dans /etc/cron.daily/local_pg_dump" -sudo chmod 0555 /etc/cron.daily/local_pg_dump; -TASK [postgresql-server : Create user 'bdoh'] ********************************** IMPORTANT -CREATE USER bdoh; -TASK [postgresql-server : Setting 'bdoh' password] ***************************** IMPORTANT -ALTER USER devops WITH PASSWORD 'devopsmdp'; -TASK [postgresql-server : Select database owner] ******************************* IMPORTANT -ALTER DATABASE postgres OWNER TO devops; -TASK [postgresql-server : Create database 'bdoh'] ****************************** IMPORTANT -CREATE DATABASE bdoh; -TASK [postgresql-server : Grant permissions on database 'bdoh' to bdoh] ******** IMPORTANT -"donner les autorisations CONNECT et TEMPORARY à bdoh sur la base bdoh" -GRANT CONNECT,TEMPORARY ON database bdoh TO bdoh; -REVOKE GRANT OPTION FOR CONNECT,TEMPORARY ON database bdoh FROM bdoh; -TASK [postgresql-server : Create schema 'bdoh.bdoh'] *************************** IMPORTANT -CREATE SCHEMA bdoh.bdoh; -TASK [postgresql-server : Grant permissions on schema 'bdoh.bdoh' to bdoh] ***** IMPORTANT -GRANT USAGE,CREATE ON schema bdoh TO bdoh; -REVOKE GRANT OPTION FOR USAGE,CREATE ON schema bdoh FROM bdoh; -TACHE: paramétrer le search space ********************************************** IMPORTANT -ALTER DATABASE bdoh SET search_path = "bdoh", "$user", public; -TACHE : créer l'extension PostGIS ********************************************** IMPORTANT -CREATE EXTENSION postgis; - -# TASK [PHP-App] *************************************************************** - -TASK [phpapp : Generate the deploy key pair] *********************************** INUTILE -"création de la clef de déploiement automatique" -TASK [phpapp : Read the deploy key pair] *************************************** INUTILE -"lecture de la clef de déploiment automatique" -TASK [phpapp : Create the devops group] **************************************** IMPORTANT -sudo adduser devops -sudo groupadd -g 1001 devops -TASK [phpapp : Create the devops user] ***************************************** IMPORTANT -sudo useradd -u 1001 devops -sudo usermod -a -G devops,www-data,sudo devops -TASK [phpapp : Grant password-less sudo to devops] ***************************** DISPENSABLE -sudo echo "devops ALL = (ALL) NOPASSWD: ALL" >> /etc/sudoers.d/devops -TASK [phpapp : Install devops tools] ******************************************* DISPENSABLE -sudo apt install acl git htop unzip -TASK [phpapp : Install authorized_keys of devops] ****************************** INUTILE -"installer la clef devops dans authorized_keys" -TASK [phpapp : Remove local .bashrc] ******************************************* DISPENSABLE -rm /home/devops/.bashrc -TASK [phpapp : Setup environment variables] ************************************ IMPORTANT -"exporter les variables PGDATABASE PGHOST PGPORT PGUSER dans /home/devops/.profile" -echo "export PGDATABASE=bdoh \n export PGHOST=/run/postgresql \n export PGPORT=5432 \n export PGUSER=devops \n export APP_ENV=prod \n export SYMFONY_ENV=prod" > /home/devops/.profile ; -sudo chmod 0600 /home/devops/.profile -TASK [phpapp : Setup PSQLRC] *************************************************** IMPORTANT -rm /home/devops/.psqlrc -TASK [phpapp : Configure ~devops/.pgpass for bdoh] ***************************** IMPORTANT -"créer et configurer /home/devops/.pgpass" -echo "/run/postgresql:5432:bdoh:bdoh:devopsmdp" > /home/devops/.pgpass -chown devops:devops /home/devops/.pgpass -chmod 0400 /home/devops/.pgpass -TASK [phpapp : Setup /var/www/bdoh] ************** IMPORTANT -mkdir /var/www/bdoh -chown devops:www-data /var/www/bdoh -chmod 2755 /var/www/bdoh -TASK [phpapp : Install PostgreSQL client] ************** IMPORTANT -sudo apt install postgresql-client -TASK [phpapp : Query PostgreSQL about version] ************** INUTILE -"extraire et enregistrer la version de PostgreSQL" -TASK [phpapp : Extract the PostgreSQL server version] ************** INUTILE -"extraire et enregistrer la version du serveur PostgreSQL" -TASK [phpapp : Install packages: apache2] ************** IMPORTANT -sudo apt install apache2 -TASK [phpapp : Enable and start services: apache2] ************** IMPORTANT -sudo systemctl enable apache2 -sudo systemctl start apache2 -TASK [phpapp : Enable/disable SSL module] ************** IMPORTANT -"Activer le module SSL d'Apache2" -sudo a2enmod ssl -TASK [phpapp : (Un)install mod_rpaf package] ************** INUTILE -"Installer ou désinstaller mod_rpaf" -TASK [phpapp : Enable/disable rpaf module] ************** IMPORTANT -"Désactiver le module rpaf" -sudo a2dismod libapache2-mod-rpaf -TASK [phpapp : Disable sensible modules] ************** IMPORTANT -"Désactiver les modules cgid et status" -sudo a2dismod cgid -sudo a2dismod status -TASK [phpapp : Disable sensible configuration] ************** IMPORTANT -sudo /usr/sbin/a2disconf serve-cgi-bin || true -TASK [phpapp : Disable default site] ************** IMPORTANT -sudo /usr/sbin/a2dissite 000-default -TASK [phpapp : Configure catch-all site] ************** IMPORTANT -"configurer /etc/apache2/sites-available/000-catch-all.conf sur le modèle de /roles/phpapp/templates/apache2/vhost-catch-all.conf.j2" -sudo chmod 644 /etc/apache2/sites-available/000-catch-all.conf -sudo chown root:root /etc/apache2/sites-available/000-catch-all.conf -TASK [phpapp : Enable catch-all site] ************** IMPORTANT -sudo /usr/sbin/a2ensite 000-catch-all -TASK [phpapp : Enable modules] ************** IMPORTANT -"activer les modules alias authz_core deflate dir env expires headers log_config mime negotiation rewrite setenvif unique_id" -sudo a2enmod alias authz_core deflate dir env expires headers log_config mime negotiation rewrite setenvif unique_id -TASK [phpapp : Configure security] ************** IMPORTANT -"ajouter les options nécessaires à /etc/apache2/conf-available/security.conf" -TASK [phpapp : Configure SSL security] ***************************************** -"ajouter les options nécessaires à /etc/apache2/mods-available/ssl.conf" -TASK [phpapp : Enable security configuration] ************** IMPORTANT -sudo /usr/sbin/a2enconf security.conf -TASK [phpapp : Install http://vm-bdoh-tst/ configuration] ************** IMPORTANT -"remplir /etc/apache2/sites-available/vm-bdoh-tst.conf selon le modèle ansible/roles/phpapp/apache2/vhost.conf.j2" -TASK [phpapp : Enable http://vm-bdoh-tst/ configuration] ************** IMPORTANT -sudo /usr/sbin/a2ensite vm-bdoh-tst.conf -systemctl restart apache2 -TASK [phpapp : Install the APT key from https://packages.sury.org/] ************** IMPORTANT -"ajouter le dépot deb.sury.org" -sudo apt-get -y install apt-transport-https lsb-release ca-certificates curl -sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg -sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' -sudo apt-get update -TASK [phpapp : Install apt-transport-https] ************** IMPORTANT -sudo apt install apt-transport-https -TASK [phpapp : Configure APT repository: php] ************** INUTILE -"inscrire deb https://packages.sury.org/php/ buster main dans php" -TASK [phpapp : Remove unwanted PHP versions] ************** INUTILE -"désinstaller les versions de PHP inutiles" -TASK [phpapp : Remove configuration of unwanted PHP versions] ************** INUTILE -"retirer la configuration des versions PHP inutiles" -TASK [phpapp : Install required packages] ************** IMPORTANT -sudo apt install php 7.1 php7.1-apcu php7.1-apcu-bc php7.1-common php7.1-gd php7.1-intl php7.1-json php7.1-mbstring php7.1-pgsql php7.1-pgsql php7.1-common php7.1-sodium php7.1-xml php7.1-xml php7.1-zip -TASK [phpapp : Remove unwanted packages] ************** INUTILE -"supprimer les packages installés en trop" -TASK [phpapp : List available extensions] ************** INUTILE -"lister les extensions disponibles" -TASK [phpapp : Enable required extensions] ************** IMPORTANT -sudo /usr/sbin/phpenmod -v 7.1 apcu apcu-bc ctype gd hash iconv intl json mbstring pdo pdo-pgsql pgsql posix sodium tokenizer xml xsl zip pdo readline -TASK [phpapp : Disable unwanted extensions] ************** INUTILE -"désactiver les extensions installées en trop" -TASK [phpapp : Install security configuration] ************** IMPORTANT -cp ansible/roles/phpapp/files/php/owasp-security.ini /etc/php/7.1/mods-available/owasp-security.ini -chmod 644 /etc/php/7.1/mods-available/owasp-security.ini -TASK [phpapp : Enable security configuration] ************** IMPORTANT -sudo /usr/sbin/phpenmod -v 7.1 owasp-security -TASK [phpapp : Configure the default timezone] ************** DISPENSABLE -"régler la timezone dans /etc/php/7.1/cli/php.ini et /etc/php/7.1/php_sapi/php.ini" -TASK [phpapp : Remove locally installed composer binary and cache] ************** INUTILE -"supprimer /home/devops/.composer et /home/devops/bin/composer" -TASK [phpapp : Install the PHAR for 1.10.20] ************** IMPORTANT -wget http://getcomposer.org/download/1.10.20/composer.phar -P /usr/local/bin/composer -curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer --version=1.10.20 -TASK [phpapp : Create Composer configuration directory] ************** IMPORTANT -install -d -m 0700 -o devops -g devops /home/devops/.config/composer -TASK [phpapp : Setup Composer authentication] ************** IMPORTANT -"configurer /home/devops/.config/composer/auth.json sur le modèle de ansible/roles/phpapp/templates/auth.json.j2 avec le mode 0600" -TASK [phpapp : Install the APT key from https://deb.nodesource.com/] ************** IMPORTANT -curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/nodesource.gpg >/dev/null -gpg --no-default-keyring --keyring /usr/share/keyrings/nodesource.gpg --list-keys -TASK [phpapp : Install apt-transport-https] ************** IMPORTANT -sudo apt install apt-transport-https -TASK [phpapp : Configure APT repository: nodesource] ************** INUTILE -"déclarer le repository" -TASK [phpapp : Install NodeJS packages] ************** IMPORTANT -sudo apt install nodejs -apt install npm -TASK [phpapp : Install the Yarn package manager] ************** IMPORTANT -npm install --global --production yarn -TASK [phpapp : Install the configuration file for logrotate] ************** IMPORTANT -"écrire /etc/logrotate.d/bdoh en mode 0644 sur le modèle de ansible/roles/phpapp/templates/logrotate.j2" \ No newline at end of file -- GitLab