Project

General

Profile

20230610 Forkred » History » Version 35

Carsten Rose, 10.06.2023 15:56

1 4 Carsten Rose
{{child_pages}}
2
3
{{toc}}
4
5 6 Carsten Rose
h1. Forkred: OS Update U18>U22, T3 V9>V11, PHP 7.2>8.1, MariaDB 10.1>10.6
6 1 Carsten Rose
7 31 Carsten Rose
* Files: `forkrd:/var/tmp/dev`
8
* Installtool: https://www.myuzhgrants.uzh.ch/typo3/install.php
9 32 Carsten Rose
* 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.
10 34 Carsten Rose
* Sometimes T3 Cache could make problems while upgrading. Deleting the typo3temp folder helps.
11
* Using relative paths in typo3 template editor could make problems in v11. It helps to change them to absolute paths. Good example for these situations are the use of 'cd.stylesheet =' options.
12 32 Carsten Rose
13 1 Carsten Rose
h2. VMWare Konsole
14
15 2 Carsten Rose
* Check das CR sich einloggen kann: https://wikiit.math.uzh.ch/it/bestpractice/vmware-console
16 1 Carsten Rose
17 2 Carsten Rose
  * Wird der IE genommen, funktioniert der Aufruf der vsphere Seite nciht.
18
  * Edge hat mehrere Minuten gebraucht um zu starten.
19
  * Firefox konnte sich anmelden, dann hat CR aber abgebrochen weil mittlerweile Edge gestartet ist.
20
21
* Edge hat die Konsole gut dargestellt.
22
23 1 Carsten Rose
h2. Preparation on production
24
25
<pre>
26
# Check das der neueste Kernel aktiv ist, falls nicht reboot
27
$ uname -a
28
$ dpkg --list | grep linux
29
30
#
31
# Alle alten Kernel entfernen! Das ist wichtig damit der do-release-upgrade Process nicht unnoetig alte Kernel Module aktualisiert.
32
#
33
$ CURRENT=`uname -a | cut -f 3 -d ' '`
34
$ ALL=`dpkg --list | grep -e linux-modules -e linux-image | grep -v $CURRENT | awk '{ print $2 }'`
35
$ for II in $ALL; do apt purge -y $II; done
36
37 2 Carsten Rose
# Backup Dir anlegen:
38
[user@tlX] mkdir /scratch/tmp/30/forkred
39
# Latest T3 nach Production kopieren
40
[user@tlX] scp /scratch/software/typo3/typo3_src-11.5.25.tgz root@forkred.uzh.ch:/var/tmp/
41 1 Carsten Rose
42 2 Carsten Rose
# T3 schonmal auspacken
43
[root@forkred] cd /var/html; tar zxf typo3_src-11.5.25.tgz
44 1 Carsten Rose
45 2 Carsten Rose
# ** Am Tag vor der Migration **
46
# Backup anlegen. Zuerst auf TL: `mkdir /scratch/tmp/30/forkred`
47
# 
48 14 Carsten Rose
[root@forkred]
49 2 Carsten Rose
$ cd /
50 19 Carsten Rose
$ 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
51
$ scp /tmp/forkred.tgz crose@ssh.math.uzh.ch:/scratch/tmp/30/forkred/
52 2 Carsten Rose
$ rsync -av /var/www/html crose@ssh.math.uzh.ch:/scratch/tmp/30/forkred/
53 1 Carsten Rose
54 2 Carsten Rose
# 
55
# ** Am Tag der Migration **
56
#
57 1 Carsten Rose
58 2 Carsten Rose
# Apache anhalten
59
$ service apache2 stop
60 1 Carsten Rose
61 25 Carsten Rose
# Alle Cronjobs anhalten:
62
$ cronjob -e
63
$ cronjob -e -u www-data
64
65 9 Carsten Rose
# DBs - einmal lokal ablegen und dann nochmal remote sichern
66 19 Carsten Rose
$ mkdir /var/tmp/prod; cd /var/tmp/prod
67 8 Carsten Rose
$ rm *.sql
68 2 Carsten Rose
$ ALL="forkred_preview_db forkred_preview_t3 forkred_prod_db forkred_prod_t3 mysql"
69 9 Carsten Rose
$ for II in $ALL; do mysqldump $II > $II.sql ; done
70 8 Carsten Rose
$ scp *.sql crose@ssh.math.uzh.ch:/scratch/tmp/30/forkred/
71 1 Carsten Rose
72 2 Carsten Rose
# Backup latest files:
73
$ rsync -av --delete /var/www/html/ crose@ssh.math.uzh.ch:/scratch/tmp/30/forkred/html/
74 1 Carsten Rose
75 2 Carsten Rose
# 
76
# OS Migration: 
77
# 
78 1 Carsten Rose
79 2 Carsten Rose
# Ubuntu 20
80
$ do-release-upgrade 
81 1 Carsten Rose
82 2 Carsten Rose
# Login forkred(u20) und Apache direkt wieder anhalten:
83
$ service apache2 stop
84 1 Carsten Rose
85 2 Carsten Rose
# Ubuntu 22
86
$ do-release-upgrade 
87 1 Carsten Rose
88 2 Carsten Rose
# Login forkred(u22) und Apache direkt wieder anhalten:
89 1 Carsten Rose
$ service apache2 stop
90 31 Carsten Rose
91
# Check welche PHP Version installiert. Ggfs. sind noch alte installiert. Am besten vergleichen ob alle PHP Pakete von der alten Version auch in der neuen installiert sind. Bei dieser Migration fehlten nach der Migration @php-xml@, @php-json@.
92
$ dpkg --list | grep php
93 1 Carsten Rose
</pre>
94
95 2 Carsten Rose
h2. Preparation on dev (webwork22)
96 1 Carsten Rose
97
<pre>
98 2 Carsten Rose
# Create dump of typo3 database:
99
$ mysqldump forkred_dev_t3 > /var/tmp/forkred_dev_t3_v11.sql
100
101
# Filestruktur 
102
$ cd /var/www/html
103
$ tar zcf /var/tmp/forkred_dev_v11.tgz forkred
104 1 Carsten Rose
</pre>
105
106
h2. File transfer: Dev to Production
107
108 2 Carsten Rose
Jump host TL
109 1 Carsten Rose
<pre>
110 2 Carsten Rose
[crose@tlX]
111 20 Carsten Rose
$ scp root@webwork22:/var/tmp/forkred_dev_t3_v11.sql /scratch/tmp/30/forkred/dev/
112 2 Carsten Rose
$ scp root@webwork22:/var/tmp/forkred_dev_v11.tgz /scratch/tmp/30/forkred/dev/
113 1 Carsten Rose
114 2 Carsten Rose
$ rsync -av  /scratch/tmp/30/forkred/dev root@forkred.math.uzh.ch:/var/tmp/
115 1 Carsten Rose
</pre>
116
117
h2. Setup Production
118
119
<pre>
120 2 Carsten Rose
[root@forkred]
121 1 Carsten Rose
122 2 Carsten Rose
$ cd /var/www/
123
$ mv html html.v9
124 1 Carsten Rose
125 2 Carsten Rose
# Unpack page instance for prod and preview. Rename them to original name and check the right permissions:
126 1 Carsten Rose
127 2 Carsten Rose
# Prod
128
$ cd /var/www/
129
$ tar -xzf /var/tmp/dev/forkred_dev_v11.tgz
130
$ mv forkred html
131 1 Carsten Rose
132 2 Carsten Rose
# Preview
133
$ tar -xzf /var/tmp/dev/forkred_dev_v11.tgz
134 21 Carsten Rose
$ mv forkred html/preview
135 1 Carsten Rose
136 10 Carsten Rose
# Import T3 DBs (Prod & Peview same)
137 1 Carsten Rose
$ mysql forkred_prod_t3 < /var/tmp/dev/forkred_dev_t3_v11.sql
138
$ mysql forkred_preview_t3 < /var/tmp/dev/forkred_dev_t3_v11.sql
139 10 Carsten Rose
140 16 Carsten Rose
#
141
# ** Sync QFQ Data **
142
# 
143 10 Carsten Rose
[crose@tlX]
144 22 Carsten Rose
$ cd /scratch/share/system/sync/forkred/
145 23 Carsten Rose
$ ./forkredDevPreviewSync.sh -f
146
$ ./forkredDevProdSync.sh -f
147 24 Carsten Rose
148
# 
149
# Restore fileadmin
150
# 
151 28 Carsten Rose
$ mkdir /var/tmp/fileadmin.dev
152 1 Carsten Rose
153 28 Carsten Rose
# Keep dev version temporarily on prod for comparison in case 
154
$ mv /var/www/html/fileadmin/financialrequests /var/tmp/fileadmin.dev/financialrequests
155
$ mv /var/www/html/fileadmin/protected /var/tmp/fileadmin/.dev/protected
156 1 Carsten Rose
157 28 Carsten Rose
# Restore prod: financialrequests & protected
158 1 Carsten Rose
$ mv /var/www/html.v9/fileadmin/financialrequests /var/www/html/fileadmin/
159 24 Carsten Rose
$ mv /var/www/html.v9/fileadmin/protected /var/www/html/fileadmin/
160
161 28 Carsten Rose
# Restore preview: financialrequests & protected
162
$ \rm -R /var/www/html/preview/fileadmin/protected /var/www/html/preview/fileadmin/financialrequests
163
$ mv /var/www/html.v9/preview/fileadmin/financialrequests /var/www/html/preview/fileadmin/
164
$ mv /var/www/html.v9/preview/fileadmin/protected /var/www/html/preview/fileadmin/
165 2 Carsten Rose
</pre>
166 1 Carsten Rose
167 2 Carsten Rose
h2. Configuration: qfq.json and LocalConfiguration.php
168 1 Carsten Rose
169 15 Carsten Rose
* Prepare the final config files in `/var/tmp/dev/prev|prod`
170 3 Carsten Rose
171 2 Carsten Rose
qfq.json:
172
173 1 Carsten Rose
* DB_1_USER
174
* DB_1_PASSWORD
175
* DB_1_NAME
176
177 3 Carsten Rose
LocalConfiguration.php:
178 2 Carsten Rose
179
* db
180
* user
181
* password
182 1 Carsten Rose
* baseUrl
183 2 Carsten Rose
* wkhtmltopdf 
184
* redirect E-Mail
185
* sitename
186 17 Carsten Rose
* installtoolpw
187 2 Carsten Rose
188 29 Carsten Rose
Copy config files:
189
190
<pre>
191
$ cp /var/tmp/dev/prod/LocalConfiguration.php /var/www/html/typo3conf/
192
$ cp /var/tmp/dev/prev/LocalConfiguration.php /var/www/html/preview/typo3conf/
193
</pre>
194
195 26 Carsten Rose
h2. Finalize
196
197
<pre>
198 27 Carsten Rose
# Alle Cronjobs aktvieren:
199 26 Carsten Rose
$ cronjob -e
200
$ cronjob -e -u www-data
201 1 Carsten Rose
</pre>
202
203 32 Carsten Rose
* Check Backup.
204
* Check PDF to SMB.
205
* Remove old forkred dev instance (webwork16).
206 1 Carsten Rose
* Update kpit PWs with webwork16/webwork22 credentials.
207 35 Carsten Rose
* Update "Project Wiki":https://project.math.uzh.ch/projects/forkred/wiki summary with new dev instance (webwork22).
208 33 Carsten Rose
*
209 30 Carsten Rose
210
h2. Probleme bei der Migration
211 1 Carsten Rose
212
* Nach dem @do-release-upgrade@ waren noch viele PHP 7.4 Pakete (Status: rc) installiert. @apt purge php7.4*@
213 31 Carsten Rose
* Es fehlten PHP Pakete: @apt install php-xml php-json@. Nach der Migration konnte Typo3 weder BE noch FE rendern. CR hat dann eine neue T3 Instanz hochgezogen, da wurde php-xml moniert. Damit war der Fehler klar. In den Apache Logs war der Fehler nicht zu erkennen.
214
* T3 Site-Konfiguration: T3 hat in der Site Konfiguration die URL von webwork22 gehabt (dump von webwork22). Das wird aktuell durch die I-MATH Sync Skripte noch nicht automatisch angepasst. @Sites > Site Configuration > Entry Point@
215
* Das FE Login Template sieht schlecht aus. Im @typo3_src@ Vezeichnis hat EN einige Anpassungen gemacht (webwork22) - darum als Quickfix die angepasste Version auf forkred kopiert (geht mit dem naechsten Typo3 Update verloren (@typo3_src-11.5.25/typo3/sysext/felogin/Resources/Private/Templates/Login/Login.html@)