Uppdatera Sitevision
Förberedelser:
- Ladda ner installationsfilen från kundwebben: https://minasidor.sitevision.se/sjalvservice/hamta-sitevision (det kan även vara bra att ladda ner en installationsfil för den nuvarande versionen av Sitevision - för återställning).
- Läs igenom Release Notes: https://developer.sitevision.se/archives/release-notes - det kan förekomma breaking changes mellan versioner. I vissa fall måste man uppdatera till en specifik version, innan man kan uppdatera till senaste versionen av Sitevision.
- Kontrollera att servern som Sitevision är installerad på har tillräckligt med utrymme för att uppdatera - vi rekommenderar att man har minst det dubbla utrymmet som Sitevision upptar ledigt. T.ex: om Sitevision tar 10gb, vill man ha minst 20gb ledigt.
- Läs igenom kapitlet Fel som vi stött på vid tidigare uppdateringar
Backup
Det enklaste och bästa sättet är att ta en snapshot av servern, ifall möjligheten finns. I så fall kan man skippa övriga steg. Man kommer sannolikt behöva be en av kundens IT-ansvariga om hjälp med snapshots.
Om snapshot inte är möjligt, gör följande:
- Kopiera hela
/sitevision
mappen, eller/sitevision/data/backup
- för återställning. Notera att det brukar ta ganska lång tid att kopiera dessa mappar, och de brukar vara ganska stora (diskutrymme-mässigt). Ett av kraven är att det ska finnas tillräckligt med tillgängligt diskutrymme (se steg 4 i föregående kapitel), detta steget kanske gör att det inte längre finns tillräckligt med diskutrymme. I så fall: be en IT-ansvarig ordna mer diskutrymme, och avvakta med uppdateringen.
Om du kopierar backup mappen behöver du även göra:
- Ta backup på alla .jar och .war filer som finns i mappen
/sitevision/tomcat/webapps
- de kan försvinna vid uppdateringen, i så fall behöver de kopieras in i samma mapp igen. - Kopiera
/sitevision/custom/conf/sitevision.properties
filen, den kan bli överskriven vid uppdateringen. - Kopiera
/sitevision/tomcat/conf/server.xml
filen, det är enklare att återställa om något går fel när man ska lösa konflikter då.
Uppdatera
- Stoppa Sitevision-tjänsten
- Kör installationsprogrammet (detta kan ta upp till en timme, beroende på hårdvara, mängd data, osv - men brukar ta cirka 10 minuter).
- Kontrollera om en konfliktlogg skapas under
/sitevision/sv_install_conflicts.log
, lös i så fall konflikterna (Läs mer i nästa kapitel). - Lägg tillbaka alla .war/.jar filer i mappen
/sitevision/tomcat/webapps
- om de saknas. - Starta Sitevision-tjänsten (det kan ta några minuter innan webbplatsen är igång igen). Navigera till /admin för att se förloppet i webbläsaren.
- Kontrollera att allt ser bra ut på webbplatsen, kontrollera även serverlog -filen.
Konflikter
Den allra vanligast konflikten som förekommer är i /sitevision/tomcat/conf/server.xml
filen. Vid nästan varje uppdatering skapar Sitevision en ny fil: /sitevision/tomcat/conf/server.xml.exenew
.
Filen server.xml innehåller bland annat information om kundens SSL-certifikat. Sitevision kan inte kopiera denna informationen mellan uppdateringar. I stället skapar den filen server.xml.exenew som innehåller default-värden.
Utdrag ur en typisk server.xml.exenew (cirka rader 66-78)
// server.xml.exenew<!-- Connector when SSL is enabled. --><Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" compression="on" compressibleMimeType="text/html,text/xml,text/css,text/javascript,text/plain,application/xml,application/javascript,application/json,image/svg+xml" SSLEnabled="true" scheme="https" secure="true" URIEncoding="UTF-8"> <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" compression="on" compressibleMimeType="text/html,text/xml,text/css,text/javascript,text/plain,application/xml,application/javascript,application/json,image/svg+xml"/> <SSLHostConfig protocols="+TLSv1,+TLSv1.1,+TLSv1.2"> <Certificate certificateKeystoreFile="webapps/ROOT/WEB-INF/keystore/sitevision_default.keystore" certificateKeyAlias="tomcat" certificateKeystorePassword="changeit" /> </SSLHostConfig></Connector>
Värdena för Certificate - certificateKeystoreFile, certificateKeyAlias och certificateKeystorePassword är default-värden. Om man skulle råka mata in dessa värden i server.xml kommer inte kundens SSL-certifikat att fungera. Samtidigt finns det ibland viktiga förändringar i nya versioner som man vill få med i server.xml filen.
Enklaste sättet att jämföra filerna och lösa konflikter är:
- Öppna server.xml och server.xml.exenew i Visual Studio Code.
- Kopiera allt innehåll i server.xml.exenew (ctrl+a, ctrl+c).
- Byt till fliken för server.xml
- Öppna Command Palette (ctrl+shift+p), skriv “compare”, välj “Compare active file with clipboard”. Då öppnas en splitscreen-vy där filen server.xml ligger på ena sidan, och clipboard (server.xml.exenew) ligger på andra sidan - det står i flikens namn vilken sida som är vilken. Denna vy liknar Source Control där man kan se jämförelser mellan filerna.
- Kopiera därefter in de rader med information som skiljer sig mellan filerna - utan att kopiera över viktig information, såsom exemplet ovan med SSL-certifikatet! Gör filerna så lika varandra som möjligt. Det enda som bör skilja dem åt är värdena som är specifika för kunden (exempelvis SSL-certifikatets inställningar).
Notera att server.xml filen ofta är behörighetsstyrd och kan kräva admin-rättigheter för att ändra. Ibland räcker det med att man startar sin textredigerare (notepad / VS Code) genom att högerklicka och välja ‘Kör som Administratör’ - förutsatt att ens inloggade användarkonto har rätt behörigheter. Om man saknar behörigheter får man kontakta en IT-ansvarig och be hen hjälpa till. Ibland kan det räcka att den IT-ansvarige delar skärm, och man guidar hen.
Filen server.xml måste vara sparad innan man startar Sitevision-tjänsten för att ändringarna ska gälla.
Återställa vid fel:
- Om en snapshot togs av servern, be den ansvarige att återgå till hur servern såg ut vid snapshoten
- Om hela /sitevision mappen kopierades, gör följande:
- döp om den nya /sitevision mappen till något i stil med: sitevision-broken
- kopiera in backup-kopian i dess ställe
- Om endast mappen /sitevision/data/backup kopierades:
- -döp om den nya /sitevision mappen till något i stil med: sitevision-broken
- installera den tidigare versionen av Sitevision
- töm mappen /sitevision/data/casandra
- kopiera mappen /sitevision-broken/data/backup till /sitevision/data/restore
- starta Sitevision-tjänsten
För mer information om återställning, se: https://minasidor.sitevision.se/sjalvservice/drift-av-sitevision/backup
Uppdatera kluster
Vid större uppdateringar bör man överväga att byta master/slave noden först. Vid mindre uppdateringar kan man helt enkelt stänga av en nod och uppdatera som vanligt.
Hur vet man om det är ett kluster?
Logga in med systemkontot. Navigera till /admin/cluster och se om det finns flera noder (servrar) i klusterringen (se bild nedan för exempel).
https://help.sitevision.se/12703569.html
Första noden (slave server)
- Stoppa SiteVision-tjänsten.
- Kopiera mappen
sitevision/data/backup
(för återställning). - Kör installationsprogrammet.
- Byt sitevision.cassandra.seeds i filen
sitevision.properties
till sin egen ip-adress. - Lös eventuellta konflikter i
\sv_install_conflicts.log
- Starta Sitevision.
- Navigera runt på webbplatsen och se ifall några uppenbara fel uppstår. Titta även i serverloggen efter fel.
Exempel på hur listen_address och seed address bör se ut på master-noden:
##Cassandra cluster configuration sitevision.cassandra.listen_address=192.168.0.1 sitevision.cassandra.seeds=192.168.0.1 sitevision.cassandra.storage_port=7011
Övriga noder
- Stoppa SiteVision tjänsten.
- Kör installationsprogrammet.
- Byt sitevision.cassandra.seeds i
sitevision.properties
till master-nodens ip-address. - Lös eventuellta konflikter i
\sv_install_conflicts.log
- Döp om mappen cassandra (
/data/cassandra
). - Skapa en ny, tom mapp som heter cassandra.
- Starta Sitevision.
- Efter cirka 30 sekunder, tillåt nya noder i klustret från master-noden (detta görs via /admin gränssnittet).
- Säkerställ så att nya noder bootstrappas korrekt och blir “gröna” i klusterringen.
- Navigera runt på webbplatsen och se ifall några uppenbara fel uppstår. Titta även i serverloggen efter fel.
- Be kunden validera uppdateringen.
Exempel på klusterkonfiguration för en slav-nod:
##Cassandra cluster configuration sitevision.cassandra.listen_address=192.168.0.2 sitevision.cassandra.seeds=192.168.0.1 <--- Master node sitevision.cassandra.storage_port=7011
Fel som vi stött på vid tidigare uppdateringar
Otillräckligt diskutrymme
Server.log varnar för väldigt lite diskutrymme och har det blivit brist på disk under uppgraderingen kan det orsaka stora fel.
2019-09-25 11:53:43 WARN [DiskFreeCassandraEntry] [] files disk space used/total disk free ratio is larger than threshold 2019-09-25 11:53:43 WARN [MonitorTask] [] Column family files size is soon growing larger than available free space in data directory. This might prevent compaction/defragmentation to run normally. files size=3.86 GB data directory free space=4.42 GB, threshold=0.8 2019-09-25 11:53:43 WARN [MonitorTask] [] Running low on free space on E:\Sitevision\data (4.42 GB), E:\Sitevision\data\temp (4.42 GB), E:\Sitevision\data\log (4.42 GB) {.is-warning}
Upgrade to 4.5+
Sitevision la till striktare regler kring åtkomst i version 4.5.5, på grund av detta kan man få upp en inloggningsruta på alla sidor efter att man uppdaterat från version 4.2.1 till 4.5.5.
Inloggningsproblemen beror på att den krypterade uppkopplingen över SSL till katalogtjänsten har slutat fungera efter uppgraderingen. Från och med SV 4.5.5 ändrade vi JRE till Amazon Corretto OpenJDK och i och med det har kontrollen blivit striktare. Lösningen är antingen välja att inte använda kryptering (SSL) av kopplingen till katalogtjänsten eller inkludera den adress man anropar i ett certifikat som svarar på AD servern. Under Egenskaper / Katalogtjänster när man redigerar befintlig katalogtjänst Lessebo AD kan man dels testa anslutningen med och utan SSL samt få fram adressen som anropas, intra.sajt.se. {.is-warning}
Sitevision har även lagt till striktare regler kring säkerhetscertifikat. Sitevision klagade på certifikat som gått ut efter uppdatering från v4.3.2.2 till v4.5
certificateKeyAlias=“tomcat”
I version 4.X/5.X/6.X la Sitevision till följande attribut certificateKeyAlias=“tomcat” i SSLHostConfig-tag, vilket kan orsaka att servern kraschar, när man uppdaterar från version 4.2.1. Detta kan lösas genom att man tar bort attributet.
Flytta in SSLHostConfig-taggen i Connector
I version 4.X/5.X/6.X flyttade Sitevision några attribut från Connector-taggen till SSLHostConfig-taggen (inuti Connector-taggen).
Exempel:
Gammal:
<Connector address="10.250.250.119" port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" compression="on" compressableMimeType="text/html,text/xml,text/css,text/javascript,text/plain,application/javascript,application/json,image/svg+xml" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" URIEncoding="UTF-8" keystoreFile="../data/keystore/pulsen_fi.pfx" keystorePass="{j"2PY8'" keystoreType="PKCS12"/>
Ny:
<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" compression="on" compressableMimeType="text/html,text/xml,text/css,text/javascript,text/plain,application/xml,application/javascript,application/json,image/svg+xml" SSLEnabled="true" scheme="https" secure="true" URIEncoding="UTF-8" sendReasonPhrase="true">
<SSLHostConfig protocols="+TLSv1,+TLSv1.1,+TLSv1.2"> <Certificate certificateKeystoreFile="../data/keystore/sitevision.keystore" certificateKeystorePassword="changeit" /> </SSLHostConfig></Connector>