summaryrefslogtreecommitdiffstats
path: root/archives/publik-move/README
blob: 6551f08a15bf20358d0cf5481247f6cbf98e3400 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
[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