Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze Následující verze Obě strany příští revize | ||
cs:tech:idp:shibboleth:upgrade [2020/03/27 15:40] jan.oppolzer@cesnet.cz |
cs:tech:idp:shibboleth:upgrade [2020/04/03 09:37] jan.oppolzer@cesnet.cz [Aktualizace Shibboleth IdP] |
||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
====== Aktualizace Shibboleth IdP ====== | ====== Aktualizace Shibboleth IdP ====== | ||
- | Na této stránce najdete návod, jak aktualizovat Shibboleth IdP řady 3 na řadu 4. Přestože by se při sledování níže uvedených postupů nemělo přihodit nic špatného, **výrazně doporučuji, abyste před aktualizací provedli zálohy databáze i konfigurace samotného Shibboleth IdP a Jetty a pročetli si poznámky k vydání (ChangeLog)**. | + | <WRAP tip> |
+ | Dne 3. dubna 2020 byl tento návod doplněn o odstranění nadbytečných knihoven //commons-dbcp2.jar// a //commons-pool2.jar//. | ||
+ | </WRAP> | ||
- | ---- | + | <WRAP center alert 100%> |
+ | Na této stránce se nachází návod, jak aktualizovat Shibboleth IdP řady 3 na řadu 4. | ||
- | Předešlý návod pro IdP řady 3 i [[..|aktuální návod]] pro IdP řady 4 počítá se skutečností, že //IdP běží na Debianu 10 (Buster) a používá Jetty 9.4.15 z distribučních balíčků Debianu//. Máte-li staší verzi systému anebo pokud stále nepoužíváte Jetty z balíčků distribuce, měli byste nejprve aktualizovat systém a/nebo Jetty. V takovém případě by se vám mohl hodit návod na tzv. [[migration|online migraci]]. | + | **Důrazně doporučuji před aktualizací zálohovat databázi i konfigurace samotného Shibboleth IdP a Jetty a pročíst poznámky k vydání (ChangeLog)!** |
+ | |||
+ | Předešlý návod pro IdP řady 3 i [[..|aktuální návod]] pro IdP řady 4 počítá se skutečností, že //IdP běží na Debianu 10 (Buster) a používá Jetty 9.4.15 z distribučních balíčků Debianu//. V případě použití staší verze systému anebo nepoužívání Jetty z balíčků distribuce, je vhodné nejprve aktualizovat systém a/nebo Jetty. V takovém případě se může hodit návod na tzv. [[migration|online migraci]]. | ||
+ | |||
+ | Provozování Shibboleth IdP na jiném operačním systému anebo v jiném kontejneru (např. Tomcat) není z naší strany podporováno. | ||
+ | </WRAP> | ||
+ | |||
+ | ===== Shibboleth IdP 3 -> Shibboleth IdP 4 ===== | ||
+ | |||
+ | Pokud provozujeme Shibboleth IdP řady 3 dle návodů na webu [[:|eduID.cz]], pak je aktualizace na novou řadu 4 otázka čtyř kroků: | ||
+ | |||
+ | - Aktualizovat na poslední verzi řady 3. | ||
+ | - Aktualizovat na verzi 4.0.0. | ||
+ | - Změnit JDBC ovladač. | ||
+ | - Smazat nadbytečné knihovny. | ||
+ | |||
+ | ==== Aktualizace na poslední verzi Shibboleth IdP řady 3 ==== | ||
+ | |||
+ | Abychom mohli nejsnazším způsobem [[https://wiki.shibboleth.net/confluence/display/IDP4/Upgrading|aktualizovat na Shibboleth IdP řady 4]], musíme nejprve [[https://wiki.shibboleth.net/confluence/display/IDP30/Upgrading|aktualizovat na poslední verzi řady 3]], kterou je ke dni 30. 3. 2020 verze 3.4.6. | ||
+ | |||
+ | ==== Aktualizace na Shibboleth IdP 4.0.0 ==== | ||
+ | |||
+ | Před [[https://wiki.shibboleth.net/confluence/display/IDP4/Upgrading |aktualizací na řadu 4]] si pečlivě přečteme [[https://wiki.shibboleth.net/confluence/display/IDP4/ReleaseNotes#ReleaseNotes-4.0.0(March11,2020)|poznámky k vydání]]. | ||
+ | |||
+ | Následně [[https://shibboleth.net/downloads/identity-provider/4.0.0/|ze stránky projektu]] stáhneme zdrojové kódy a umístíme je do adresáře ''/opt'' např. pomocí programu //wget// následujícím způsobem. Nezapomeneme ověřit SHA256 otisk a případně i GPG podpis. | ||
+ | |||
+ | <code bash> | ||
+ | # Stažení zdrojového kódu Shibboleth IdP | ||
+ | wget -P /opt \ | ||
+ | https://shibboleth.net/downloads/identity-provider/4.0.0/shibboleth-identity-provider-4.0.0.tar.gz \ | ||
+ | https://shibboleth.net/downloads/identity-provider/4.0.0/shibboleth-identity-provider-4.0.0.tar.gz.asc \ | ||
+ | https://shibboleth.net/downloads/identity-provider/4.0.0/shibboleth-identity-provider-4.0.0.tar.gz.sha256 | ||
+ | </code> | ||
+ | |||
+ | Nyní přistoupíme k samotné instalaci. | ||
+ | |||
+ | <code bash> | ||
+ | # Instalace Shibboleth IdP | ||
+ | cd /opt | ||
+ | tar -xzf shibboleth-identity-provider-4.0.0.tar.gz | ||
+ | cd shibboleth-identity-provider-4.0.0/ | ||
+ | ./bin/install.sh | ||
+ | </code> | ||
+ | |||
+ | Během instalace potvrdíme pouze zdrojový a cílový adresář, průběh vypadá následovně: | ||
+ | |||
+ | <code> | ||
+ | Buildfile: /opt/shibboleth-identity-provider-4.0.0/bin/build.xml | ||
+ | |||
+ | install: | ||
+ | Source (Distribution) Directory (press <enter> to accept default): [/opt/shibboleth-identity-provider-4.0.0] ? | ||
+ | |||
+ | Installation Directory: [/opt/shibboleth-idp] ? | ||
+ | |||
+ | INFO [net.shibboleth.idp.installer.V4Install:155] - Update from version 3 to version 4.0.0 | ||
+ | INFO [net.shibboleth.idp.installer.BuildWar:71] - Rebuilding /opt/shibboleth-idp/war/idp.war, Version 4.0.0 | ||
+ | INFO [net.shibboleth.idp.installer.BuildWar:80] - Initial populate from /opt/shibboleth-idp/dist/webapp to /opt/shibboleth-idp/webpapp.tmp | ||
+ | INFO [net.shibboleth.idp.installer.BuildWar:89] - Overlay from /opt/shibboleth-idp/edit-webapp to /opt/shibboleth-idp/webpapp.tmp | ||
+ | INFO [net.shibboleth.idp.installer.BuildWar:94] - Creating war file /opt/shibboleth-idp/war/idp.war | ||
+ | |||
+ | BUILD SUCCESSFUL | ||
+ | Total time: 6 seconds | ||
+ | </code> | ||
+ | |||
+ | Nyní restartujeme Jetty: | ||
+ | |||
+ | <code bash> | ||
+ | # Restart Jetty | ||
+ | systemctl restart jetty9 | ||
+ | </code> | ||
+ | ==== Změna JDBC ovladače ==== | ||
+ | |||
+ | V návodech pro Shibboleth IdP jsme historicky doporučovali používat //MySQL// pro ukládání persistentních identifikátorů a JDBC ovladač pro MySQL. Debian ale postupně přešel na //MariaDB//, kterou jsme tedy začali doporučovat namísto MySQL, avšak JDBC ovladač zůstal nadále stejný. Nyní je však možné v Debianu 10 (Buster) nainstalovat balíček s JDBC ovladačem pro MariaDB a není tak nutné stahovat zdrojové kódy z //dev.mysql.com// a ručně je hlídat aktuální — o aktualizaci se teď postará správce balíčku v Debianu. | ||
+ | |||
+ | Nejprve nainstalujeme balíček s JDBC ovladačem pro MariaDB: | ||
+ | |||
+ | <code bash> | ||
+ | apt install libmariadb-java | ||
+ | </code> | ||
+ | |||
+ | Nalinkujeme právě nainstalovaný JDBC ovladač do knihoven Jetty: | ||
+ | |||
+ | <code bash> | ||
+ | # Vytvoření symbolického odkazu na nový JDBC ovladač | ||
+ | ln -s /usr/share/java/mariadb-java-client.jar \ | ||
+ | /usr/share/jetty9/lib/ext/mariadb-java-client.jar | ||
+ | </code> | ||
+ | |||
+ | A smažeme starý JDBC ovladač: | ||
+ | |||
+ | <code bash> | ||
+ | # Smazání starého JDBC ovladače | ||
+ | rm /usr/share/jetty9/lib/ext/mysql-connector-java-5*-bin.jar | ||
+ | </code> | ||
+ | |||
+ | Zbývá ještě upravit konfigurační soubor Shibbolethu IdP ''conf/global.xml'', kde musíme změnit atributy ''p:driverClassName'' a ''p:databasePlatform'', vše ostatní zůstává netknuté: | ||
+ | |||
+ | <code bash> | ||
+ | # Úpravy v konfiguračním souboru global.xml | ||
+ | vim /opt/shibboleth-idp/conf/global.xml | ||
+ | </code> | ||
+ | |||
+ | <code xml> | ||
+ | <bean id="shibboleth.MySQLDataSource" | ||
+ | class="org.apache.commons.dbcp2.BasicDataSource" | ||
+ | p:driverClassName="org.mariadb.jdbc.Driver" | ||
+ | p:url="jdbc:mysql://localhost:3306/shibboleth" | ||
+ | p:username="shibboleth" | ||
+ | p:password="___SILNE_HESLO____" /> | ||
+ | |||
+ | <bean id="shibboleth.JPAStorageService.JPAVendorAdapter" | ||
+ | class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" | ||
+ | p:generateDdl="true" | ||
+ | p:database="MYSQL" | ||
+ | p:databasePlatform="org.hibernate.dialect.MariaDBDialect" /> | ||
+ | </code> | ||
+ | |||
+ | ==== Smazání nadbytečných knihoven ==== | ||
+ | |||
+ | Shibboleth IdP 4.0.0 bez viditelných oznámení — podobně jako řada 3 od verze 3.4.0 — obsahuje //commons-dbcp2.jar// a //commons-pool2.jar//, takže není nutné tyto knihovny dodávat do Jetty. Můžeme je proto odstranit. | ||
+ | |||
+ | <code bash> | ||
+ | # Smazání nadbytečných knihoven | ||
+ | rm -i /usr/share/jetty9/lib/ext/commons-dbcp2-*.jar \ | ||
+ | /usr/share/jetty9/lib/ext/commons-pool2-*.jar | ||
+ | </code> | ||
+ | |||
+ | Zbývá restartovat Jetty: | ||
+ | |||
+ | <code bash> | ||
+ | systemctl restart jetty9 | ||
+ | </code> | ||
+ | |||
+ | Aktualizace Shibboleth IdP na verzi 4.0.0 včetně aktualizace JDBC ovladače a odebrání nadbytečných knihoven je hotova. | ||