Project

General

Profile

20230610 Forkred » History » Version 32

Carsten Rose, 10.06.2023 15:53

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 7 Carsten Rose
11 32 Carsten Rose
12 1 Carsten Rose
h2. VMWare Konsole
13
14 2 Carsten Rose
* Check das CR sich einloggen kann: https://wikiit.math.uzh.ch/it/bestpractice/vmware-console
15 1 Carsten Rose
16 2 Carsten Rose
  * Wird der IE genommen, funktioniert der Aufruf der vsphere Seite nciht.
17
  * Edge hat mehrere Minuten gebraucht um zu starten.
18
  * Firefox konnte sich anmelden, dann hat CR aber abgebrochen weil mittlerweile Edge gestartet ist.
19
20
* Edge hat die Konsole gut dargestellt.
21
22 1 Carsten Rose
h2. Preparation on production
23
24
<pre>
25
# Check das der neueste Kernel aktiv ist, falls nicht reboot
26
$ uname -a
27
$ dpkg --list | grep linux
28
29
#
30
# Alle alten Kernel entfernen! Das ist wichtig damit der do-release-upgrade Process nicht unnoetig alte Kernel Module aktualisiert.
31
#
32
$ CURRENT=`uname -a | cut -f 3 -d ' '`
33
$ ALL=`dpkg --list | grep -e linux-modules -e linux-image | grep -v $CURRENT | awk '{ print $2 }'`
34
$ for II in $ALL; do apt purge -y $II; done
35
36 2 Carsten Rose
# Backup Dir anlegen:
37
[user@tlX] mkdir /scratch/tmp/30/forkred
38
# Latest T3 nach Production kopieren
39
[user@tlX] scp /scratch/software/typo3/typo3_src-11.5.25.tgz root@forkred.uzh.ch:/var/tmp/
40 1 Carsten Rose
41 2 Carsten Rose
# T3 schonmal auspacken
42
[root@forkred] cd /var/html; tar zxf typo3_src-11.5.25.tgz
43 1 Carsten Rose
44 2 Carsten Rose
# ** Am Tag vor der Migration **
45
# Backup anlegen. Zuerst auf TL: `mkdir /scratch/tmp/30/forkred`
46
# 
47 14 Carsten Rose
[root@forkred]
48 2 Carsten Rose
$ cd /
49 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
50
$ scp /tmp/forkred.tgz crose@ssh.math.uzh.ch:/scratch/tmp/30/forkred/
51 2 Carsten Rose
$ rsync -av /var/www/html crose@ssh.math.uzh.ch:/scratch/tmp/30/forkred/
52 1 Carsten Rose
53 2 Carsten Rose
# 
54
# ** Am Tag der Migration **
55
#
56 1 Carsten Rose
57 2 Carsten Rose
# Apache anhalten
58
$ service apache2 stop
59 1 Carsten Rose
60 25 Carsten Rose
# Alle Cronjobs anhalten:
61
$ cronjob -e
62
$ cronjob -e -u www-data
63
64 9 Carsten Rose
# DBs - einmal lokal ablegen und dann nochmal remote sichern
65 19 Carsten Rose
$ mkdir /var/tmp/prod; cd /var/tmp/prod
66 8 Carsten Rose
$ rm *.sql
67 2 Carsten Rose
$ ALL="forkred_preview_db forkred_preview_t3 forkred_prod_db forkred_prod_t3 mysql"
68 9 Carsten Rose
$ for II in $ALL; do mysqldump $II > $II.sql ; done
69 8 Carsten Rose
$ scp *.sql crose@ssh.math.uzh.ch:/scratch/tmp/30/forkred/
70 1 Carsten Rose
71 2 Carsten Rose
# Backup latest files:
72
$ rsync -av --delete /var/www/html/ crose@ssh.math.uzh.ch:/scratch/tmp/30/forkred/html/
73 1 Carsten Rose
74 2 Carsten Rose
# 
75
# OS Migration: 
76
# 
77 1 Carsten Rose
78 2 Carsten Rose
# Ubuntu 20
79
$ do-release-upgrade 
80 1 Carsten Rose
81 2 Carsten Rose
# Login forkred(u20) und Apache direkt wieder anhalten:
82
$ service apache2 stop
83 1 Carsten Rose
84 2 Carsten Rose
# Ubuntu 22
85
$ do-release-upgrade 
86 1 Carsten Rose
87 2 Carsten Rose
# Login forkred(u22) und Apache direkt wieder anhalten:
88 1 Carsten Rose
$ service apache2 stop
89 31 Carsten Rose
90
# 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@.
91
$ dpkg --list | grep php
92 1 Carsten Rose
</pre>
93
94 2 Carsten Rose
h2. Preparation on dev (webwork22)
95 1 Carsten Rose
96
<pre>
97 2 Carsten Rose
# Create dump of typo3 database:
98
$ mysqldump forkred_dev_t3 > /var/tmp/forkred_dev_t3_v11.sql
99
100
# Filestruktur 
101
$ cd /var/www/html
102
$ tar zcf /var/tmp/forkred_dev_v11.tgz forkred
103 1 Carsten Rose
</pre>
104
105
h2. File transfer: Dev to Production
106
107 2 Carsten Rose
Jump host TL
108 1 Carsten Rose
<pre>
109 2 Carsten Rose
[crose@tlX]
110 20 Carsten Rose
$ scp root@webwork22:/var/tmp/forkred_dev_t3_v11.sql /scratch/tmp/30/forkred/dev/
111 2 Carsten Rose
$ scp root@webwork22:/var/tmp/forkred_dev_v11.tgz /scratch/tmp/30/forkred/dev/
112 1 Carsten Rose
113 2 Carsten Rose
$ rsync -av  /scratch/tmp/30/forkred/dev root@forkred.math.uzh.ch:/var/tmp/
114 1 Carsten Rose
</pre>
115
116
h2. Setup Production
117
118
<pre>
119 2 Carsten Rose
[root@forkred]
120 1 Carsten Rose
121 2 Carsten Rose
$ cd /var/www/
122
$ mv html html.v9
123 1 Carsten Rose
124 2 Carsten Rose
# Unpack page instance for prod and preview. Rename them to original name and check the right permissions:
125 1 Carsten Rose
126 2 Carsten Rose
# Prod
127
$ cd /var/www/
128
$ tar -xzf /var/tmp/dev/forkred_dev_v11.tgz
129
$ mv forkred html
130 1 Carsten Rose
131 2 Carsten Rose
# Preview
132
$ tar -xzf /var/tmp/dev/forkred_dev_v11.tgz
133 21 Carsten Rose
$ mv forkred html/preview
134 1 Carsten Rose
135 10 Carsten Rose
# Import T3 DBs (Prod & Peview same)
136 1 Carsten Rose
$ mysql forkred_prod_t3 < /var/tmp/dev/forkred_dev_t3_v11.sql
137
$ mysql forkred_preview_t3 < /var/tmp/dev/forkred_dev_t3_v11.sql
138 10 Carsten Rose
139 16 Carsten Rose
#
140
# ** Sync QFQ Data **
141
# 
142 10 Carsten Rose
[crose@tlX]
143 22 Carsten Rose
$ cd /scratch/share/system/sync/forkred/
144 23 Carsten Rose
$ ./forkredDevPreviewSync.sh -f
145
$ ./forkredDevProdSync.sh -f
146 24 Carsten Rose
147
# 
148
# Restore fileadmin
149
# 
150 28 Carsten Rose
$ mkdir /var/tmp/fileadmin.dev
151 1 Carsten Rose
152 28 Carsten Rose
# Keep dev version temporarily on prod for comparison in case 
153
$ mv /var/www/html/fileadmin/financialrequests /var/tmp/fileadmin.dev/financialrequests
154
$ mv /var/www/html/fileadmin/protected /var/tmp/fileadmin/.dev/protected
155 1 Carsten Rose
156 28 Carsten Rose
# Restore prod: financialrequests & protected
157 1 Carsten Rose
$ mv /var/www/html.v9/fileadmin/financialrequests /var/www/html/fileadmin/
158 24 Carsten Rose
$ mv /var/www/html.v9/fileadmin/protected /var/www/html/fileadmin/
159
160 28 Carsten Rose
# Restore preview: financialrequests & protected
161
$ \rm -R /var/www/html/preview/fileadmin/protected /var/www/html/preview/fileadmin/financialrequests
162
$ mv /var/www/html.v9/preview/fileadmin/financialrequests /var/www/html/preview/fileadmin/
163
$ mv /var/www/html.v9/preview/fileadmin/protected /var/www/html/preview/fileadmin/
164 2 Carsten Rose
</pre>
165 1 Carsten Rose
166 2 Carsten Rose
h2. Configuration: qfq.json and LocalConfiguration.php
167 1 Carsten Rose
168 15 Carsten Rose
* Prepare the final config files in `/var/tmp/dev/prev|prod`
169 3 Carsten Rose
170 2 Carsten Rose
qfq.json:
171
172 1 Carsten Rose
* DB_1_USER
173
* DB_1_PASSWORD
174
* DB_1_NAME
175
176 3 Carsten Rose
LocalConfiguration.php:
177 2 Carsten Rose
178
* db
179
* user
180
* password
181 1 Carsten Rose
* baseUrl
182 2 Carsten Rose
* wkhtmltopdf 
183
* redirect E-Mail
184
* sitename
185 17 Carsten Rose
* installtoolpw
186 2 Carsten Rose
187 29 Carsten Rose
Copy config files:
188
189
<pre>
190
$ cp /var/tmp/dev/prod/LocalConfiguration.php /var/www/html/typo3conf/
191
$ cp /var/tmp/dev/prev/LocalConfiguration.php /var/www/html/preview/typo3conf/
192
</pre>
193
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
* Update kpit PWs with webwork16/webwork22 credentials.
207
* Update Project Wiki with new dev instance (webwork22).
208
* 
209 1 Carsten Rose
210
h2. Others
211
212
Sometimes T3 Cache could make problems while upgrading. Deleting the typo3temp folder helps.
213 2 Carsten Rose
214 1 Carsten Rose
Hint:
215
216 30 Carsten Rose
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.
217
218
h2. Probleme bei der Migration
219 1 Carsten Rose
220
* Nach dem @do-release-upgrade@ waren noch viele PHP 7.4 Pakete (Status: rc) installiert. @apt purge php7.4*@
221 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.
222
* 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@
223
* 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@)