Project

General

Profile

20230610 Forkred » History » Version 44

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