Configurateur TGS
Déployement
Le déploiement se fait via Ansible.
Repo Gitlab
https://gitlab.com/olicy-clients/tgs/provisioning
Instructions pour lancer le script Ansible
Ce guide fournit les instructions pour exécuter le script Ansible sur une machine distante.
Prérequis
Avant de commencer, assurez-vous que les prérequis suivants sont satisfaits sur votre machine locale :
-
Ansible est installé. Si ce n'est pas le cas, veuillez suivre les instructions d'installation fournies sur le site officiel d'Ansible.
-
Si vous vous connectez en SSH par mot de passe, vous devez installer sshpass en exécutant la commande suivante :
sudo apt-get install sshpass -
Python doit être installé sur la machine cible :
sudo apt-get install python pip
Configuration de l'environnement
- Créez un dossier nommé "ssl" à la racine du dossier Ansible.
- Ajoutez vos fichiers pem et key dans le dossier ssl. Par exemple, vous pouvez exécuter les commandes suivantes pour créer et ajouter un certificat auto-signé :
sudo openssl genrsa -out star.tgs.com.key 2048 sudo openssl req -new -x509 -key star.tgs.com.key -out star.tgs.com.crt -days 3650 -subj /CN=star.tgs.com sudo cat star.tgs.com.crt star.tgs.com.key | sudo tee star.tgs.com.pem
-
Pour installer les prérequis du serveur, exécutez la commande suivante :
ansible-playbook playbooks/init-server.yml -i inventory/production.ini
Si vous devez insérer ou modifier la clé de déploiement, placez votre clé de déploiement privée (nommée "deploy_key") à la racine du dossier Ansible. Par exemple, vous pouvez créer une clé en exécutant la commande suivante :
ssh-keygen -t ed25519 -f "/home/nlombard@hsk-partners.com/Bureau/Projets/Projects/tgs vm/ansible-deploy/deploy_key"
Installation
-
Pour installer les prérequis de Laravel, exécutez la commande suivante :
ansible-playbook playbooks/install.yml -i inventory/production.ini -
Pour déployer le frontend, exécutez la commande suivante :
ansible-playbook playbooks/deploy-front.yml -i inventory/production.ini -
Pour déployer Gotenberg, exécutez la commande suivante :
ansible-playbook playbooks/deploy-gotenberg.yml -i inventory/production.ini -
Pour déployer TGS images, exécutez la commande suivante :
ansible-playbook playbooks/deploy-tgs-images.yml -i inventory/production.ini
Mettre à jour les instances
Production
URL : https://devis.tgs-france.fr
Commande déploiement Ansible :
ansible-playbook playbooks/deploy-front.yml -i inventory/production.ini
Recette
URL : https://devispre.tgs-france.fr
Commande déploiement Ansible :
ansible-playbook playbooks/deploy-front.yml -i inventory/staging.ini
DEV
URL : https://devisdev.tgs-france.fr
Commande déploiement Ansible :
ansible-playbook playbooks/deploy-front.yml -i inventory/dev.ini
Migration des données STAGING vers la PROD
1. Backup complet DB prod (serv-cfg)
mysqldump -u tgsapp_prod -p tgsapp_prod > tgsapp_prod.sql
2. Backup projects prod (serv-cfg)
mysqldump -u tgsapp_prod -p tgsapp_prod projects > projects.sql
3. Backup DB staging sans projects (serv-pre-cf)
mysqldump -u tgsapp_prep -p tgsapp_prep --ignore-table=tgsapp_prep.projects > tgsapp_prep_no_projects.sql
4. Transfert de la DB staging sans projects vers la prod (serv-pre-cf)
scp tgsapp_prep_no_projects.sql au-aubert@prod:/data/app
5. Transfert des medias (serv-pre-cf)
cd /data/app/shared/
scp -r storage au-aubert@prod:/data/app/shared/
6. Supprimer et recréer la DB de prod (serv-cfg)
mysql -u tgsapp_prod -p
drop database tgsapp_prod;
create database tgsapp_prod;
exit
7. Import de la DB de staging sans les projects (serv-cfg)
mysql -u tgsapp_prod -p tgsapp_prod < tgsapp_prep_no_projects.sql
8. Import des projects de prod (serv-cfg)
mysql -u tgsapp_prod -p tgsapp_prod < projects.sql