This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
misc-csiraut/archives/publik-move
Christophe Siraut 9748a225a5 add publik-move to archives 2019-09-30 21:31:08 +02:00
..
README add publik-move to archives 2019-09-30 21:31:08 +02:00
dump-schemas add publik-move to archives 2019-09-30 21:31:08 +02:00
list-services.py add publik-move to archives 2019-09-30 21:31:08 +02:00
publik-cluster-copy add publik-move to archives 2019-09-30 21:31:08 +02:00
update-config-pck.py add publik-move to archives 2019-09-30 21:31:08 +02:00

README

[converted from https://dev.entrouvert.org/projects/sysadmin/wiki/D%C3%A9placement_Publik_Mutualise with html2text]

****** Déplacement Publik Mutualisé¶ ******
    * Déplacement_Publik_Mutualisé
          o Procédure
                # Avant
                # Pendant

Scripts de déploiement: git://git.entrouvert.org:publik-move.git
    * list-services.py doit être sur le vieux hobo

Utilisation du script :
    * publik-cluster-copy update : interroge le vieux hobo et stocke la liste
      des tenants et des services
    * publik-cluster-copy sync : copie les fichiers et les dumps des bases de
      données dans /srv/ceph/migration
    * publik-cluster-copy ls : liste les tenants
    * publik-cluster-copy take --tenant demarches-
      chateauroux.test.entrouvert.org : copie, adapte et pose les fichiers et
      les db
    * le flag --verbose permet de suivre les commandes exécutées

Pour une instance au-quotidien, procédure identique, nécessite le flag --auqo
et --tenant :
    * ./publik-cluster-copy sync --auquo --tenant demo.test.au-quotidien.com --
      verbose
    * ./publik-cluster-copy take --auquo --tenant demo.test.au-quotidien.com --
      wcsdbname wcs_demo_test_au_quotidien_com --verbose

***** Procédure¶ *****
**** Avant¶ ****
   1. Pré-synchroniser tous les tenants: ./publik-cluster-copy sync
   2. parcourir et dupliquer /etc/app/settings.d/ /etc/cron.hourly etc.
         * ssh app.test.entrouvert.org ls -l /etc/cron.hourly /etc/
           cron.daily /etc/cron.d
         * ssh app.test.entrouvert.org ls -l /etc/app/settings.d
   1. Préparer les prochains fichiers de zone DNS
         * à coups de :537,547 s/E[ \t]*.*/E tst/ ou de :537,547 s/E
           [ \t]*.*/E prod/
         * ne pas oublier les sous-domaines de au-quotidien.com!
   1. Vérifier si les certificats sont dispos sur le nouveau serveur
   2. Anticiper des dossiers posés sur des partitions différents (e.g. dossier
      uploads symlink vers /var/lib/wcs-au-quotidien-uploads/)
   3. Si nécessaire convertir wcs vers postgresql: CREATE DATABASE
      wcs_demo_test_au_quotidien_com WITH OWNER="wcs" TEMPLATE=template0
      LC_COLLATE='fr_FR.utf8' LC_CTYPE='fr_FR.utf8'; ensuite sudo -u wcs wcs-
      manage convert_to_sql -d demo.test.au-quotidien.com --database
      wcs_demo_test_au_quotidien_com

**** Pendant¶ ****
   1. couper les cron wcs sur l'ancien et le nouveau:
      ssh wcs.test.entrouvert.org sudo sed 's/^\*/##\*/' -i /etc/cron.d/wcs
      ssh wcs.node1.test.saas.entrouvert.org sudo sed 's/^\*/##\*/' -i /etc/cron.d/wcs
      # ou
      ssh wcs.entrouvert.org sudo sed 's/^\*/##\*/' -i /etc/cron.d/wcs
      ssh wcs.node1.prod.saas.entrouvert.org sudo sed 's/^\*/##\*/' -i /etc/cron.d/wcs
          o Vérifier que cron ne n'exécute plus avant de continuer : ssh wcs.
            {test|prod}.entrouvert.org ps waux | grep wcs-manage
   2. couper les vhost nginx: script qui déploie des 503 là ou c'est
      nécessaire:
          o sur gallinette/chicon, mettre à jour: /root/000_503-service-
            unavailable
          o lancer /root/diffuse-nginx-config
   3. sur le nouvel hyperviseur (e.g. node1.test.saas.entrouvert.org)
      $ sudo su -
      # cd /root/publik-move
      # git pull
      # ./publik-cluster-copy sync --tenant hobo-foobar.tst.entrouvert.org # prend du temps
      # ./publik-cluster-copy take --tenant hobo-foobar.tst.entrouvert.org
   4. invalider le client sur gallinette/chicon: tenant => tenant-migrated
          o ssh gallinette.entrouvert.org sudo /root/invalide-tenants-en-503
   5. dans le cas de tenant avec dossier uploads symlink vers /var/lib/wcs-au-
      quotidien-uploads/<site>, synchroniser ce dossier à la main
        upl=demarches.e-service.seine-et-marne.fr
        test -L /srv/ceph/lib/wcs/${upl}/uploads && echo "HAAAAA COPY"
        rm /srv/ceph/lib/wcs/${upl}/uploads
        rsync -apv --info=progress2 auquo.entrouvert.org:/var/lib/wcs-au-quotidien-
        uploads/$upl /srv/ceph/migration/wcs-au-quotidien-uploads/
        mv /srv/ceph/migration/wcs-au-quotidien-uploads/${upl}/uploads /srv/ceph/lib/wcs/${upl}/
   6. substituer le fichier de zone DNS, rndc reload
   7. attendre 2 minutes (ttl DNS) et tester le plus possible
   8. relancer les crons wcs sur l'ancien et le nouveau:
      ssh wcs.test.entrouvert.org sudo sed 's/^##\\*/\*/' -i /etc/cron.d/wcs
      ssh wcs.node1.test.saas.entrouvert.org sudo sed 's/^##\\*/\*/' -i /etc/cron.d/wcs
      # ou
      ssh wcs.entrouvert.org sudo sed 's/^##\\*/\*/' -i /etc/cron.d/wcs
      ssh wcs.node1.prod.saas.entrouvert.org sudo sed 's/^##\\*/\*/' -i /etc/cron.d/wcs