Skip to main content

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