Project

General

Profile

20230610 Forkred » History » Revision 28

Revision 27 (Carsten Rose, 10.06.2023 10:47) → Revision 28/44 (Carsten Rose, 10.06.2023 10:56)

{{child_pages}} 

 {{toc}} 

 h1. Forkred: OS Update U18>U22, T3 V9>V11, PHP 7.2>8.1, MariaDB 10.1>10.6 

 * Files: `/var/tmp/dev` 

 h2. VMWare Konsole 

 * Check das CR sich einloggen kann: https://wikiit.math.uzh.ch/it/bestpractice/vmware-console 

   * Wird der IE genommen, funktioniert der Aufruf der vsphere Seite nciht. 
   * Edge hat mehrere Minuten gebraucht um zu starten. 
   * Firefox konnte sich anmelden, dann hat CR aber abgebrochen weil mittlerweile Edge gestartet ist. 

 * Edge hat die Konsole gut dargestellt. 

 h2. Preparation on production 

 <pre> 
 # Check das der neueste Kernel aktiv ist, falls nicht reboot 
 $ uname -a 
 $ dpkg --list | grep linux 

 # 
 # Alle alten Kernel entfernen! Das ist wichtig damit der do-release-upgrade Process nicht unnoetig alte Kernel Module aktualisiert. 
 # 
 $ CURRENT=`uname -a | cut -f 3 -d ' '` 
 $ ALL=`dpkg --list | grep -e linux-modules -e linux-image | grep -v $CURRENT | awk '{ print $2 }'` 
 $ for II in $ALL; do apt purge -y $II; done 

 # Backup Dir anlegen: 
 [user@tlX] mkdir /scratch/tmp/30/forkred 
 # Latest T3 nach Production kopieren 
 [user@tlX] scp /scratch/software/typo3/typo3_src-11.5.25.tgz root@forkred.uzh.ch:/var/tmp/ 

 # T3 schonmal auspacken 
 [root@forkred] cd /var/html; tar zxf typo3_src-11.5.25.tgz 

 # ** Am Tag vor der Migration ** 
 # Backup anlegen. Zuerst auf TL: `mkdir /scratch/tmp/30/forkred` 
 #  
 [root@forkred] 
 $ cd / 
 $ tar --exclude=var/local/prod --exclude=var/www/html -czvf /tmp/forkred.system.tgz bin boot etc home initrd.img lib lib64 opt root sbin snap srv swap.img usr var vmlinuz 
 $ scp /tmp/forkred.tgz crose@ssh.math.uzh.ch:/scratch/tmp/30/forkred/ 
 $ rsync -av /var/www/html crose@ssh.math.uzh.ch:/scratch/tmp/30/forkred/ 

 #  
 # ** Am Tag der Migration ** 
 # 

 # Apache anhalten 
 $ service apache2 stop 

 # Alle Cronjobs anhalten: 
 $ cronjob -e 
 $ cronjob -e -u www-data 

 # DBs - einmal lokal ablegen und dann nochmal remote sichern 
 $ mkdir /var/tmp/prod; cd /var/tmp/prod 
 $ rm *.sql 
 $ ALL="forkred_preview_db forkred_preview_t3 forkred_prod_db forkred_prod_t3 mysql" 
 $ for II in $ALL; do mysqldump $II > $II.sql ; done 
 $ scp *.sql crose@ssh.math.uzh.ch:/scratch/tmp/30/forkred/ 

 # Backup latest files: 
 $ rsync -av --delete /var/www/html/ crose@ssh.math.uzh.ch:/scratch/tmp/30/forkred/html/ 

 #  
 # OS Migration:  
 #  

 # Ubuntu 20 
 $ do-release-upgrade  

 # Login forkred(u20) und Apache direkt wieder anhalten: 
 $ service apache2 stop 

 # Ubuntu 22 
 $ do-release-upgrade  

 # Login forkred(u22) und Apache direkt wieder anhalten: 
 $ service apache2 stop 
 </pre> 

 h2. Preparation on dev (webwork22) 

 <pre> 
 # Create dump of typo3 database: 
 $ mysqldump forkred_dev_t3 > /var/tmp/forkred_dev_t3_v11.sql 

 # Filestruktur  
 $ cd /var/www/html 
 $ tar zcf /var/tmp/forkred_dev_v11.tgz forkred 
 </pre> 

 h2. File transfer: Dev to Production 

 Jump host TL 
 <pre> 
 [crose@tlX] 
 $ scp root@webwork22:/var/tmp/forkred_dev_t3_v11.sql /scratch/tmp/30/forkred/dev/ 
 $ scp root@webwork22:/var/tmp/forkred_dev_v11.tgz /scratch/tmp/30/forkred/dev/ 

 $ rsync -av    /scratch/tmp/30/forkred/dev root@forkred.math.uzh.ch:/var/tmp/ 
 </pre> 

 h2. Setup Production 

 <pre> 
 [root@forkred] 

 $ cd /var/www/ 
 $ mv html html.v9 

 # Unpack page instance for prod and preview. Rename them to original name and check the right permissions: 

 # Prod 
 $ cd /var/www/ 
 $ tar -xzf /var/tmp/dev/forkred_dev_v11.tgz 
 $ mv forkred html 

 # Preview 
 $ tar -xzf /var/tmp/dev/forkred_dev_v11.tgz 
 $ mv forkred html/preview 

 # Import T3 DBs (Prod & Peview same) 
 $ mysql forkred_prod_t3 < /var/tmp/dev/forkred_dev_t3_v11.sql 
 $ mysql forkred_preview_t3 < /var/tmp/dev/forkred_dev_t3_v11.sql 

 # 
 # ** Sync QFQ Data ** 
 #  
 [crose@tlX] 
 $ cd /scratch/share/system/sync/forkred/ 
 $ ./forkredDevPreviewSync.sh -f 
 $ ./forkredDevProdSync.sh -f 

 #  
 # Restore fileadmin 
 #  
 $ mkdir /var/tmp/fileadmin.dev 

  

 # Keep dev version temporarily on prod for comparison in case  
 
 $ mv /var/www/html/fileadmin/financialrequests /var/tmp/fileadmin.dev/financialrequests /var/www/html/fileadmin/financialrequests.dev 
 $ mv /var/www/html/fileadmin/protected /var/tmp/fileadmin/.dev/protected /var/www/html/fileadmin/protected.dev 

 # Restore prod: financialrequests & protected 
 prod  
 $ mv /var/www/html.v9/fileadmin/financialrequests /var/www/html/fileadmin/ 
 $ mv /var/www/html.v9/fileadmin/protected /var/www/html/fileadmin/ 

 # Restore preview: financialrequests & protected 
 $ \rm -R /var/www/html/preview/fileadmin/protected /var/www/html/preview/fileadmin/financialrequests 
 $ mv /var/www/html.v9/preview/fileadmin/financialrequests /var/www/html/preview/fileadmin/ 
 $ mv /var/www/html.v9/preview/fileadmin/protected /var/www/html/preview/fileadmin/ 
 



 </pre> 

 h2. Configuration: qfq.json and LocalConfiguration.php 

 * Prepare the final config files in `/var/tmp/dev/prev|prod` 

 qfq.json: 

 * DB_1_USER 
 * DB_1_PASSWORD 
 * DB_1_NAME 

 LocalConfiguration.php: 

 * db 
 * user 
 * password 
 * baseUrl 
 * wkhtmltopdf  
 * redirect E-Mail 
 * sitename 
 * installtoolpw 

 h2. Finalize 

 <pre> 
 # Alle Cronjobs aktvieren: 
 $ cronjob -e 
 $ cronjob -e -u www-data 
 </pre> 

 * Check Backup 
 * Check PDF to SMB 

 h2. SQL Functions 

 The use of dump files doesn't include sql functions. Exporting them with phpMyAdmin from source to target is currently the best solution. In most cases not necessary because upgrade happens on an existing instance with given databases. 

 h2. Others 

 Sometimes T3 Cache could make problems while upgrading. Deleting the typo3temp folder helps. 

 Hint: 

 Using relative paths in typo3 template editor could make problems in v11. It helps to change them to aboslute paths. Good example for these situations are the use of 'cd.stylesheet =' options.