Projekte/Forum/Upgrade: Unterschied zwischen den Versionen

Aus FunkFeuer Wiki
Zur Navigation springen Zur Suche springen
(Dokumentation zum Upgradeverlauf angelegt (MarkDown 1:1 aus Forum ins Wiki kopiert))
 
(Anpassungen für bessere Lesbarkeit im MediaWiki)
Zeile 1: Zeile 1:
== FunkFeuer Forum - Discourse Upgrade ==
1. Unter https://forum.funkfeuer.at/admin/backups ein Discourse-Daten-Backup erstellen und runterladen.
1. Unter https://forum.funkfeuer.at/admin/backups ein Discourse-Daten-Backup erstellen und runterladen.
(Download bricht im aktuellen Firefox Browser manchmal ab, da einfach auf einen anderen ausweichen.)


2. Mit einem Administrator/Moderator (jeder sollte SSH Zugang haben) abklären ob es ein aktuelles Systembackup mit State "Success" gibt: `sudo veeam`
(Download bricht im aktuellen Firefox Browser manchmal ab, da einfach auf einen anderen Browser ausweichen.)
(falls der letzte Job nicht im State "Success" ist, bitte @vchrizz dazu kontaktieren, die Backups werden derzeit per SMB offsite auf seinen Server am Node "mh" abgelegt)
 
```
2. Mit einem Administrator/Moderator (jeder sollte eigentlich SSH Zugang haben) abklären ob es ein aktuelles Systembackup mit State "Success" gibt: <code>sudo veeam</code>
 
(falls der letzte Job nicht im State "Success" ist, bitte @vchrizz dazu kontaktieren, die Backups werden derzeit noch per SMB offsite auf seinen Server am Node "mh" abgelegt, solange keine entsprechende Möglichkeit auf FunkFeuer Infrastruktur ermöglicht wird.)
 
     Latest backup sessions:
     Latest backup sessions:
 
   
       Job name                State          Started at            Finished at
       Job name                State          Started at            Finished at
 
     
       FunkfeuerForum          Success        2018-04-18 06:00:02    2018-04-18 06:01:50
       FunkfeuerForum          Success        2018-04-18 06:00:02    2018-04-18 06:01:50
       FunkfeuerForum          Success        2018-04-17 06:00:01    2018-04-17 06:14:05
       FunkfeuerForum          Success        2018-04-17 06:00:01    2018-04-17 06:14:05
```


3. Ein System-Upgrade durchführen:
3. Ein System-Upgrade durchführen:
`sudo apt update`
 
`apt list --upgradable`
sudo apt update
`sudo apt upgrade`
apt list --upgradable
(ggf. bei kernel-upgrade danach die VM neu starten: `sudo reboot`)
sudo apt upgrade
 
(ggf. bei kernel-upgrade danach die VM neu starten: <code>sudo reboot</code>)


4. https://forum.funkfeuer.at/admin/upgrade aufrufen und upgrade durchklicken.
4. https://forum.funkfeuer.at/admin/upgrade aufrufen und upgrade durchklicken.
4.1. Falls das Forum nicht geladen wird, kann das Problem am Theme liegen. Versuche den [Safe-Mode](https://forum.funkfeuer.at/safe-mode).
4.1. Falls das Forum nicht geladen wird, kann das Problem am Theme liegen. Versuche den [Safe-Mode](https://forum.funkfeuer.at/safe-mode).
4.2. Mittels Safe-Mode dann in der [Administration / Anpassen](https://forum.funkfeuer.at/admin/customize/themes/2) beim Default-Theme die beiden Theme-Komponenten Slick und Tiles entfernen.
4.2. Mittels Safe-Mode dann in der [Administration / Anpassen](https://forum.funkfeuer.at/admin/customize/themes/2) beim Default-Theme die beiden Theme-Komponenten Slick und Tiles entfernen.
4.3. Es könnte auch sein, dass eine Meldung kommt, dass das Upgrade per CLI gemacht werden muss:
4.3. Es könnte auch sein, dass eine Meldung kommt, dass das Upgrade per CLI gemacht werden muss:
`sudo su`
sudo su
`cd /var/discourse`
cd /var/discourse
`git pull`
git pull
`./launcher rebuild app`
./launcher rebuild app


5. Versuche am Forum mit LDAP einzuloggen, falls das fehlschlägt, obwohl Login-Details sicher korrekt eingegeben wurden, müssen folgende zwei Anpassungen angewendet werden:<br>
5. Versuche am Forum mit LDAP einzuloggen, falls das fehlschlägt, obwohl Login-Details sicher korrekt eingegeben wurden, müssen folgende zwei Anpassungen angewendet werden:<br>
5.1. LDAP fix 1 einspielen, damit das Plugin den OpenLDAP von Funkfeuer versteht:
5.1. LDAP fix 1 einspielen, damit das Plugin den OpenLDAP von Funkfeuer versteht:
https://github.com/vchrizz/omniauth-ldap/commit/346d5c27e1dacb0fa6aeedf1f65e29bd9f1bb524
https://github.com/vchrizz/omniauth-ldap/commit/346d5c27e1dacb0fa6aeedf1f65e29bd9f1bb524
Dazu per ssh einloggen, und mittels folgendem Befehl in die Discourse Docker Instanz wechseln:
 
`root@forum:/var/discourse# ./launcher enter app`
Dazu per ssh einloggen, und mittels folgenden Befehlen in die Discourse Docker Instanz wechseln:
sudo su
cd /var/discourse
./launcher enter app
 
Dort den oben verlinkten Git-Commit die zwei grün markierten Zeilen in diese Datei einpflegen:
Dort den oben verlinkten Git-Commit die zwei grün markierten Zeilen in diese Datei einpflegen:
`/var/www/discourse/plugins/discourse-ldap-auth/gems/2.6.5/gems/omniauth-ldap-1.0.5/lib/omniauth/strategies/ldap.rb`<br>
 
/var/www/discourse/plugins/discourse-ldap-auth/gems/2.6.5/gems/omniauth-ldap-1.0.5/lib/omniauth/strategies/ldap.rb
 
5.2. LDAP fix 2 einspielen, damit über LDAP authentifizierte User automatisch der Gruppe zugeordnet werden, die auf Funkfeuer-intern und Sub-Kategorien zugreifen kann:
5.2. LDAP fix 2 einspielen, damit über LDAP authentifizierte User automatisch der Gruppe zugeordnet werden, die auf Funkfeuer-intern und Sub-Kategorien zugreifen kann:
https://github.com/kaefert/discourse-ldap-auth/commit/b112b83640e7769daeb25043c9d12db8b011b29b
https://github.com/kaefert/discourse-ldap-auth/commit/b112b83640e7769daeb25043c9d12db8b011b29b
Auf dem selben weg wie 5.1. diesmal in die Datei einfplegen:
Auf dem selben weg wie 5.1. diesmal in die Datei einfplegen:
`/var/www/discourse/plugins/discourse-ldap-auth/plugin.rb`<br>
 
/var/www/discourse/plugins/discourse-ldap-auth/plugin.rb
 
5.3. LDAP Anpassungen aktiv bringen durch Restart von Discourse:
5.3. LDAP Anpassungen aktiv bringen durch Restart von Discourse:
(evtl. mit `logout` zuerst aus dem container wieder ausloggen)
`docker restart app`


8. Prüfen ob beide (Discourse und mailserver) Docker Container wieder laufen:
(evtl. mit <code>logout</code> zuerst aus dem container wieder ausloggen)
`docker ps`
 
docker restart app
 
6. Prüfen ob beide (Discourse und mailserver) Docker Container wieder laufen:
 
docker ps
 
sollte in etwa so aussehen:
sollte in etwa so aussehen:
(sonst im Zweifelsfall die VM neu starten, dauert nur wenige Minuten, die Container starten dann beide)
(sonst im Zweifelsfall die VM neu starten, dauert nur wenige Minuten, die Container starten dann beide)
```
 
<pre>
vchrizz@forum:~$ docker ps
vchrizz@forum:~$ docker ps
CONTAINER ID        IMAGE                            COMMAND                  CREATED            STATUS              PORTS                                                                                                                                    NAMES
CONTAINER ID        IMAGE                            COMMAND                  CREATED            STATUS              PORTS                                                                                                                                    NAMES
72670824e10a        local_discourse/app              "/sbin/boot"            3 weeks ago        Up 8 minutes                                                                                                                                                app
72670824e10a        local_discourse/app              "/sbin/boot"            3 weeks ago        Up 8 minutes                                                                                                                                                app
5b64315e0a1e        tvial/docker-mailserver:latest  "/bin/sh -c 'supervi…"  6 weeks ago        Up 8 minutes        0.0.0.0:25->25/tcp, 110/tcp, 0.0.0.0:143->143/tcp, 0.0.0.0:587->587/tcp, 0.0.0.0:993->993/tcp, 465/tcp, 0.0.0.0:995->995/tcp, 4190/tcp  mail
5b64315e0a1e        tvial/docker-mailserver:latest  "/bin/sh -c 'supervi…"  6 weeks ago        Up 8 minutes        0.0.0.0:25->25/tcp, 110/tcp, 0.0.0.0:143->143/tcp, 0.0.0.0:587->587/tcp, 0.0.0.0:993->993/tcp, 465/tcp, 0.0.0.0:995->995/tcp, 4190/tcp  mail
```
</pre>


Sollte es dennoch Probleme mit SSL geben: https://meta.discourse.org/t/setting-up-https-support-with-lets-encrypt/40709
Sollte es dennoch Probleme mit SSL geben: https://meta.discourse.org/t/setting-up-https-support-with-lets-encrypt/40709
#### Manually reissue the cert
#### Manually reissue the cert
```
./launcher enter app
./launcher enter app
sv stop nginx
sv stop nginx
/usr/sbin/nginx -c /etc/nginx/letsencrypt.conf
/usr/sbin/nginx -c /etc/nginx/letsencrypt.conf
LE_WORKING_DIR=/shared/letsencrypt DEBUG=1 /shared/letsencrypt/acme.sh --issue -d example.com -k 4096 -w /var/www/discourse/public
LE_WORKING_DIR=/shared/letsencrypt DEBUG=1 /shared/letsencrypt/acme.sh --issue -d example.com -k 4096 -w /var/www/discourse/public
LE_WORKING_DIR=/shared/letsencrypt /shared/letsencrypt/acme.sh --installcert -d example.com --fullchainpath /shared/ssl/example.com.cer --keypath /shared/ssl/example.com.key --reloadcmd "sv reload nginx"
LE_WORKING_DIR=/shared/letsencrypt /shared/letsencrypt/acme.sh --installcert -d example.com --fullchainpath /shared/ssl/example.com.cer --keypath /shared/ssl/example.com.key --reloadcmd "sv reload nginx"
/usr/sbin/nginx -c /etc/nginx/letsencrypt.conf -s stop
/usr/sbin/nginx -c /etc/nginx/letsencrypt.conf -s stop
```

Version vom 17. Mai 2020, 02:18 Uhr

FunkFeuer Forum - Discourse Upgrade

1. Unter https://forum.funkfeuer.at/admin/backups ein Discourse-Daten-Backup erstellen und runterladen.

(Download bricht im aktuellen Firefox Browser manchmal ab, da einfach auf einen anderen Browser ausweichen.)

2. Mit einem Administrator/Moderator (jeder sollte eigentlich SSH Zugang haben) abklären ob es ein aktuelles Systembackup mit State "Success" gibt: sudo veeam

(falls der letzte Job nicht im State "Success" ist, bitte @vchrizz dazu kontaktieren, die Backups werden derzeit noch per SMB offsite auf seinen Server am Node "mh" abgelegt, solange keine entsprechende Möglichkeit auf FunkFeuer Infrastruktur ermöglicht wird.)

    Latest backup sessions:
    
     Job name                State          Started at             Finished at
     
     FunkfeuerForum          Success        2018-04-18 06:00:02    2018-04-18 06:01:50
     FunkfeuerForum          Success        2018-04-17 06:00:01    2018-04-17 06:14:05

3. Ein System-Upgrade durchführen:

sudo apt update
apt list --upgradable
sudo apt upgrade

(ggf. bei kernel-upgrade danach die VM neu starten: sudo reboot)

4. https://forum.funkfeuer.at/admin/upgrade aufrufen und upgrade durchklicken.

4.1. Falls das Forum nicht geladen wird, kann das Problem am Theme liegen. Versuche den [Safe-Mode](https://forum.funkfeuer.at/safe-mode).

4.2. Mittels Safe-Mode dann in der [Administration / Anpassen](https://forum.funkfeuer.at/admin/customize/themes/2) beim Default-Theme die beiden Theme-Komponenten Slick und Tiles entfernen.

4.3. Es könnte auch sein, dass eine Meldung kommt, dass das Upgrade per CLI gemacht werden muss:

sudo su
cd /var/discourse
git pull
./launcher rebuild app

5. Versuche am Forum mit LDAP einzuloggen, falls das fehlschlägt, obwohl Login-Details sicher korrekt eingegeben wurden, müssen folgende zwei Anpassungen angewendet werden:

5.1. LDAP fix 1 einspielen, damit das Plugin den OpenLDAP von Funkfeuer versteht:

https://github.com/vchrizz/omniauth-ldap/commit/346d5c27e1dacb0fa6aeedf1f65e29bd9f1bb524

Dazu per ssh einloggen, und mittels folgenden Befehlen in die Discourse Docker Instanz wechseln:

sudo su
cd /var/discourse
./launcher enter app

Dort den oben verlinkten Git-Commit die zwei grün markierten Zeilen in diese Datei einpflegen:

/var/www/discourse/plugins/discourse-ldap-auth/gems/2.6.5/gems/omniauth-ldap-1.0.5/lib/omniauth/strategies/ldap.rb

5.2. LDAP fix 2 einspielen, damit über LDAP authentifizierte User automatisch der Gruppe zugeordnet werden, die auf Funkfeuer-intern und Sub-Kategorien zugreifen kann:

https://github.com/kaefert/discourse-ldap-auth/commit/b112b83640e7769daeb25043c9d12db8b011b29b

Auf dem selben weg wie 5.1. diesmal in die Datei einfplegen:

/var/www/discourse/plugins/discourse-ldap-auth/plugin.rb

5.3. LDAP Anpassungen aktiv bringen durch Restart von Discourse:

(evtl. mit logout zuerst aus dem container wieder ausloggen)

docker restart app

6. Prüfen ob beide (Discourse und mailserver) Docker Container wieder laufen:

docker ps

sollte in etwa so aussehen: (sonst im Zweifelsfall die VM neu starten, dauert nur wenige Minuten, die Container starten dann beide)

vchrizz@forum:~$ docker ps
CONTAINER ID        IMAGE                            COMMAND                  CREATED             STATUS              PORTS                                                                                                                                    NAMES
72670824e10a        local_discourse/app              "/sbin/boot"             3 weeks ago         Up 8 minutes                                                                                                                                                 app
5b64315e0a1e        tvial/docker-mailserver:latest   "/bin/sh -c 'supervi…"   6 weeks ago         Up 8 minutes        0.0.0.0:25->25/tcp, 110/tcp, 0.0.0.0:143->143/tcp, 0.0.0.0:587->587/tcp, 0.0.0.0:993->993/tcp, 465/tcp, 0.0.0.0:995->995/tcp, 4190/tcp   mail

Sollte es dennoch Probleme mit SSL geben: https://meta.discourse.org/t/setting-up-https-support-with-lets-encrypt/40709

#### Manually reissue the cert
./launcher enter app
sv stop nginx
/usr/sbin/nginx -c /etc/nginx/letsencrypt.conf
LE_WORKING_DIR=/shared/letsencrypt DEBUG=1 /shared/letsencrypt/acme.sh --issue -d example.com -k 4096 -w /var/www/discourse/public
LE_WORKING_DIR=/shared/letsencrypt /shared/letsencrypt/acme.sh --installcert -d example.com --fullchainpath /shared/ssl/example.com.cer --keypath /shared/ssl/example.com.key --reloadcmd "sv reload nginx"
/usr/sbin/nginx -c /etc/nginx/letsencrypt.conf -s stop