Site Soce.fr : Procédure pour redescendre une version de la production vers la recette

Environnements :

 

OS, versions serveur web : Debian 7, Apache 2.2

Production : 

VM : hesykhia2 (hors LDAP)

Base SQL : prod_anakrys_gorg

URL : https://www.arts-et-metiers.asso.fr

Recette :

VM : pyracmon (hors LDAP)

Base SQL : int_anakrys_gorg

URL : https://recette.soce.fr

Étapes :

1- Manipulations bases SQL :

  • Vider les tables de la base actuelle de recette : int_anakrys_soce
  • Copier les tables de la base prod "prod_anakrys_soce" vers la base recette "int_anakrys_soce"

 

2- Manipulation bases Postgresql du grAM

 

Copier ce script, renseigner le login SSH et le lancer depuis un poste avec la toolbelt Heroku installée

#!/bin/bash
#CONF
now=$(date "+%Y%m%d-%H%M%S")
rec_gram_file_name="rec_gram-${now}.dump"
prod_gram_file_name="gram-prod-data-${now}.sql"
ssh_host="hestia.gorgu.net"
ssh_login="YOUR_LOGIN_HERE"
ssh_path="~/tmp/${prod_gram_file_name}"

#ACTION
echo "Sauvegarde de la base de recette du GrAM";
heroku run -a rec-gram-api-2 'pg_dump $DATABASE_URL -F c && sleep 10'> $rec_gram_file_name
echo "Dump des tables métiers du GrAM et copie sur le serveur ssh"
heroku run -a gram-api-2 "pg_dump \$DATABASE_URL -Fc --no-acl --no-owner --clean -t 'gram*' -v -f ~/$prod_gram_file_name && scp ~/$prod_gram_file_name ${ssh_login}@${ssh_host}:${ssh_path}"
echo "Copie des données sur la base de recette"
command="scp ${ssh_login}@${ssh_host}:${ssh_path} ~/$prod_gram_file_name  &&  pg_restore -d \"\$DATABASE_URL\" --verbose -F c --no-acl --no-owner --clean ~/$prod_gram_file_name"
heroku run -a rec-gram-api-2 "${command}"
echo "Nettoyage du serveur SSH"
ssh ${ssh_login}@${ssh_host} "rm ${ssh_path}"

 

3- Réinitialisation du LDAP

 

  • vider le ldap : Via apache directory studio


  • relancer avec synchro totale avec la commande bash :

    heroku run -a rec-gram-api-2 'rails runner "MasterData::Account.find_each{|a|LdapDaemon.new.request_account_update(a)}"'

    Génère un message de synchro vers LDAP daemon pour chaque utilisateur.

4- Gorgmail

 

  • Reset via la commande : 

    heroku run -a rec-gorg-mail 'rake db:migrate:reset && rake db:seed_recette'

    Drop la base de donnée, la reconstruit à partir des migrations (plus lents que de recharger le schéma mais ça assure d'avoir bien tout les sql qui sont ré-implémentés) puis charge les données d'initialisation de la recette

5- GorgAccount

 

  • Reset via la commande : 

    heroku run -a rec-gorg-account-manager 'rake db:migrate:reset && rake db:seed'

    Drop la base de donnée, la reconstruit à partir des migrations (plus lents que de recharger le schéma mais ça assure d'avoir bien tout les sql qui sont ré-implémentés) puis charge les données d'initialisation de la recette

6- GoogleApps

 

  • Suppression de tous les comptes GApps

  • suppression de toutes les Id google apps dans le grAM


 

  • Aucune étiquette