Project

General

Profile

20230610 Forkred » History » Version 39

Carsten Rose, 10.06.2023 16:34

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