This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ~~META: title = C2021D08: Software updates mei 2021 ~~ {{htmlmetatags> metatag-keywords=(software update) metatag-og:title=(Software updates mei 2021) metatag-og:description=( In de periode van 10--12 mei worden er software updates in de NPO hosting omgeving uitgevoerd. Het betreft: nginx, php, passenger, ruby, python, node.js, java, tomcat, mysql-connector, tomcat-native, grafana, influxdb, mysql, redis, imagemagick, curl, rclone, ffmpeg, openssh, postfix, clamav, spamassassin en bind. Verder zijn er meldingen betreffende software updates in CHP, End of Life van Postgresql-9, Ruby-2.6, PHP-7.3 en Node.js-12 en een aanpassing webproxies appcluster, ) }} ====== C2021D08: Software updates mei 2021 ====== ====== Aankondiging: Software onderhoud hosting omgeving ====== Beste klant/collega, (Is dit bericht niet goed leesbaar? Bekijk dan de [[|online versie]].) Wij vragen aandacht voor het volgende: - Nu ook reguliere software updates voor CHP - End of Life van Postgresql-9, Ruby-2.6, PHP-7.3 en Node.js-12 - Aanpassing webproxies appcluster - Reguliere software updates ==== Nu ook reguliere software updates voor CHP ==== Deze maandelijkse software update aankondigingen waren vooral gefocussed op de klassieke NPO hosting omgeving, "[[:appcluster-hosting|het appcluster]]". In de nieuwe omgeving, het [[:chp|Cummunity Hosting Platform]] draait natuurlijk net zo goed software, alleen daar is het een beetje anders georganiseerd. De software die je daar draait wordt bepaald door het image dat je kiest in je container. Het is daarbij mogelijk om willekeurige images van het internet te downloaden, bijvoorbeeld vanaf [[https://hub.docker.com/|Docker Hub]] en het is mogelijk om bepaalde door NPO team Hosting&Streaming onderhouden images te gebruiken. Helaas hebben we moeten constateren dat het "onderhoud" van H&S op die laatste categorie een beetje een ondergeschoven kindje was. Er was nog geen proces om deze images ook regelmatig te updaten, waardoor er bijvoorbeeld erg lang oude php-fpm en nginx images aangeboden werden. Dat gaat vanaf nu verbeteren. De CHP images worden nu ook meegenomen in de maandelijkse software udates. Het betreft de volgende images: ^image ^versies ^wat is het ^ |registry.npohosting.nl/npohosting/base |3.x |Alpine linux | |registry.npohosting.nl/npohosting/base-jre |3.x |Alpine linux + openjdk8-jre | |registry.npohosting.nl/npohosting/nginx |1.19.x |base + nginx + een stapel nginx modules | |registry.npohosting.nl/npohosting/php-fpm |7.3.x 7.4.x |base + php-fpm + een stapel php extensies | |registry.npohosting.nl/npohosting/ruby |2.6.x |base + ruby | De nieuwe images komen steeds beschikbaar gelijk met de updates in de appcluster testomgeving en kunnen vanaf dat moment gebruikt worden. Anders dan in het appcluster is er in CHP nu nog geen moment waarin er vanuit H&S actief updates gedaan worden. Als je in je container de "latest" tag gebruikt dan worden deze images vanzelf opgepikt als er een nieuwe container gestart wordt. We moeten ons nog beraden wat we doen met oude images. Het ligt in de lijn der verwachting dat we oudere versies ook in CHP actief willen gaan updaten. Het punt is alleen dat containers expliciet kunnen zeggen welke versie ze exact willen, wat betekent dat zo'n container stuk zou gaan op het moment dat die exacte versie verwijderd wordt. In de nabije toekomst willen we containers gaan scannen op eventueel gebruikte verouderde software versies en zorgen dat de gebruikers hier notifies van krijgen. ==== End of Life van Postgresql-9, Ruby-2.6, PHP-7.3 en Node.js-12 ==== In Q3 2021 en Q1 2022 zijn zowel Postgresql-9 als Ruby-2.6 als PHP-7.3 als Node.js-12 [[:eol-kalender#in_de_toekomst_uit_te_faseren|End Of Life]] Het is dus van belang om **voor** die tijd te upgraden naar een nieuwere versie. Omdat dit bijna samenvalt met het EOL moment van het appcluster zelf (31 dec 2021) is het belangrijk om hier even goed rekening mee te houden met een eventuele migratie naar CHP. We houden nog in beraad of er een uitzondering voor postgresql-9 gemaakt gaat worden. Dat is EOL op 11 november 2021, 6 weken voor de EOL date van het appcluster zelf. Omdat databases als postgresql niet direct zelf vanaf het internet benaderbaar zijn, maar alleen maar via de applicatiecode die ertussen zit, is het mogelijk dat het risico aanvardbaar geacht wordt om dit aan te bieden tot 31 december 2021, maar dat is dan minimaal op voorwaarde dat de EOL date van het appcluster niet naar achteren gaat schuiven. In CHP is het overigens theoretisch mogelijk om zelf verouderde software te draaien. Er is niets dat je weerhoudt om zelf bijvoorbeeld een image met een verouderde PHP versie samen te stellen, maar vanuit H&S zullen we onze eigen images **niet** post-EOL aanbieden. We raden natuurlijk ten sterkste **af** om in CHP verouderde, unmaintained software te draaien. Verder wijst de praktijk uit dat het vaak niet verstandig is om zelf afhankelijkheden te creƫren in de vorm van "we bouwen een nieuwe website, op basis van een nieuwe PHP en die draaien we dan ook meteen in een nieuwe omgeving". Op die manier heb je jezelf te pakken als bv het bouwen van de nieuwe website uitloopt, of als de migratie naar de nieuwe omgeving tot lastig bleek te zijn. "Divide and conquer" werkt in dit soort gevallen vaak beter. Bouw vooral die nieuwe website, maar maak dat niet afhankelijk van een migratie naar CHP. In CHP en op het appcluster bieden we dezelfde software versies aan, dus het is heel goed mogelijk om een "laterale" migratie naar CHP te doen, zonder dat daar een nieuwe website oid onder hoeft te hangen. Andersom ook, in het appcluster kunnen alsnog diverse nieuwere software versies aangeboden worden (denk bijvoorbeeld aan php-8 of postgresql-13) waardoor je ook in het applcuster eerst zou kunnen upgraden en //daarna// migreren naar een andere omgeving. ==== Aanpassing webproxies appcluster ==== In het appcluster zitten er om zowel performance als security redenen webproxies tussen aan de ene kant de gebruikers op het internet en aan de andere kant de plek waar de applicatiecode draait. Een gevolg hiervan is dat de applicatie code geen directe TCP connectie met de eindgebruiker op het internet heeft, maar inplaats daarvaneen TCP connectie met de webproxy. En die webproxy onderhoudt de TCP connectie met de eindgebruiker. Deze constructie zorgt ervoor dat als je bijvoorbeeld in PHP het directe IP adres van een connectie opvraagt (''REMOTE_ADDR'' in PHP) je niet het IP adres van de eindgebruiker ziet, maar een ander adres. (het IP adres van de eindgebruiker is overigens wel op te vragen door naar ''X-Forwarded-For'' te kijken, want die wordt door onze proxies toegevoegd). Dat "andere" adres wat je ziet in ''REMOTE_ADDR'' gaat veranderen. Voorheen was dat het IP adres van de server waar de proxy op draait. Dit wordt nu het eigen IP adres van de proxy zelf. De reden voor deze verandering is dat als een proxy heel veel connecties richting een applicatieserver maakt er in bepaalde gevallen een tekort aan TCP connecties kan ontstaan als daarvoor het server adres gebruikt wordt. Door het eigen proxy adres te gebruiken kunnen meerdere proxies die op dezelfde server draaien elkaar in dit opzicht niet meer in de weg zitten en is de kans op een tekort aan TCP connecties veel lager. Zo heel veel verschil zal de applicatiecode naar verwachting overigens niet zien. In de meeste gevallen was dit voorheen al een vrij cryptisch IPv6 adres. Voor apache proxies iets dat eruit zag als ''2a02:458:101:28:100:*'', dat blijft zo, het wordt alleen een //ander// cryptisch adres, dat er dus ook weer uitziet als ''2a02:458:101:28:100:*''. Voor nginx proxies (in geval van php-fpm) zag het IPv6 adres er voorheen uit als ''2a02:458:1fe:1ac:100:*'', dit wordt nu iets als ''2a02:458:1fe:1ac:200:*''. Deze wijziging wordt op maandag 10 mei doorgevoerd en heeft geen impact op de beschikbaarheid van websites. ===== Software update rooster ===== Het software update rooster voor de komende tijd ziet er als volgt uit: ^Actie ^uitrol in test ^gelegenheid tot testen ^uitrol in productie ^ |Aanpassing webproxies appcluster |29--30 april |3--7 mei |10 mei | |software updates Mei |29--30 april |3--7 mei |10--12 mei | |software updates Juni |27--28 mei |31 mei -- 4 juni |7--10 juni | |software updates Juli |24--25 juni |28 juni -- 2 juli |5--8 juli | |software updates Augustus |15--16 juli |19 juli -- 13 augustus((langere periode ivm zomervervakantie)) |16--19 augustus | |software updates September |2--3 september |6--10 september |13--16 september | |software updates Oktober |30 september -- 1 oktober |4--8 oktober |11--14 oktober | |software updates November |28--29 oktober |1--5 november |8--11 november | |software updates December |25--26 november |29 november -- 3 december |6--9 december | ===== Reguliere software updates ===== De updates worden op 30 april op het testcluster doorgevoerd, waarna de week van 3--7 mei gebruikt kan worden om te testen. In de periode van 10--12 mei worden de updates op de productie-omgevingen doorgevoerd volgens onderstaand schema: ==== CHP ==== ^image ^tags ^wat is het ^ |registry.npohosting.nl/npohosting/base |3.13 |Alpine linux | |registry.npohosting.nl/npohosting/base-jre |3.13 |Alpine linux + openjdk8-jre | |registry.npohosting.nl/npohosting/nginx |1.19.10 |base + nginx + een stapel nginx modules | |registry.npohosting.nl/npohosting/php-fpm |7.3.28 7.4.18 |base + php-fpm + een stapel php extensies | |registry.npohosting.nl/npohosting/ruby |2.6.7 |base + ruby | ==== Appcluster ==== /* Dingen die deze ronde niet meedoen zijn uit ge-comment */ ^wat ^impact ^op ^van ^ naar ^ /*|keepalived |0 |W |2.2.2 |[[http://www.keepalived.org/changelog.html|2.2.2]]|*/ /*|icecast |0 |W |2.4.0-kh15 |[[https://github.com/karlheyes/icecast-kh|2.4.0-kh15]] |*/ /*^ ^^^^^*/ /*|dhcp |0 |D1 |4.4.2 |[[https://ftp.isc.org/isc/dhcp/4.4.2/dhcp-4.4.2-RELNOTES|4.4.2]] |*/ /*|freeipmi |0 |D1 |1.6.7 |[[https://www.gnu.org/software/freeipmi/NEWS|1.6.7]] |*/ /*|nrpe |0 |D1 |4.0.3 |[[https://github.com/NagiosEnterprises/nrpe/blob/master/CHANGELOG.md|4.0.3]] |*/ /*|cacti |0 |D1 |1.2.16 |[[https://www.cacti.net/changelog.php|1.2.16]] |*/ /*|cacti-spine |0 |D1 |1.2.16 |[[https://www.cacti.net/spine_changelog.php|1.2.16]] |*/ /*|phpmyadmin |0 |D1 |5.1.0 |[[https://www.phpmyadmin.net/files/5.1.0/|5.1.0]] |*/ |openssh |0 |D1 |8.5p1 |[[https://www.openssh.com/releasenotes.html|8.6p1]] | /*|GeoIP |0 |D1 |1.6.12 |1.6.12 | */ /*|geoipupdate |0 |D1 |3.1.1 |[[https://github.com/maxmind/geoipupdate/blob/master/CHANGELOG.md|3.1.1]] |*/ /*|fcron |0 |D1 |3.2.1 |[[http://fcron.free.fr/doc/en/changes.html|3.2.1]] |*/ /*|chrony |0 |D1 |3.5 |[[https://chrony.tuxfamily.org/news.html|3.5.1]] |*/ /*|openldap |1 |D1 |2.4.58 |[[https://www.openldap.org/software/release/changes.html|2.4.58]] |*/ /*|freeradius 3.x |1 |D1 |3.0.20 |[[https://freeradius.org/release_notes/?br=3.0.x&re=3.0.21|3.0.21]] |*/ /*|dovecot |1 |D1 |2.3.14 |[[https://www.dovecot.org/|2.3.14]] |*/ /*|mailman |1 |D1 |2.1.33 |[[https://launchpad.net/mailman/2.1/2.1.34|2.1.34]] |*/ /*|mongodb |1 |D1 |4.4.0 |[[https://docs.mongodb.com/manual/release-notes/4.4/|4.4.1]] |*/ /*|mongodb-database-tools |0 |D1 |100.1.1 |[[https://docs.mongodb.com/database-tools/release-notes/database-tools-changelog/|100.2.0]] |*/ /*|graylog |1 |D1 |3.3.5 |[[http://docs.graylog.org/en/3.3/pages/changelog.html|3.3.8]] |*/ |influxdb |1 |D1 |1.8.4 |[[https://docs.influxdata.com/influxdb/v1.8/reference/release-notes/influxdb/|1.8.5]] | |grafana |1 |D1 |7.5.1 |[[https://github.com/grafana/grafana/blob/master/CHANGELOG.md|7.5.5]] | /*|postgresql |1 |D1 |9.6.21 |[[https://www.postgresql.org/docs/9.6/static/release.html|9.6.21]]|*/ |redis |1 |D1 |6.2.1 |[[https://raw.githubusercontent.com/antirez/redis/6.2/00-RELEASENOTES|6.2.2]] | /*|alsa-utils |0 |D1 |1.2.4 |[[https://www.alsa-project.org/wiki/Main_Page|1.2.4]] |*/ /*|mp4split |0 |D1 |1.10.28 |[[https://docs.unified-streaming.com/installation/distributions.html|1.10.28]] |*/ /*|mod_smooth_streaming |0 |D1 |1.10.28 |[[https://docs.unified-streaming.com/installation/distributions.html|1.10.28]] |*/ /*|atop |0 |D1 |2.6.0 |[[https://www.atoptool.nl/downloadatop.php|2.6.0]] |*/ /*|sudo |0 |D1 |1.9.6p2 |[[https://www.sudo.ws/changes.html|1.9.6p2]] |*/ ^ ^^^^^ /*|syslog-ng |0 |D2 |3.31.1 |[[https://github.com/balabit/syslog-ng/blob/master/NEWS.md|3.31.1]] |*/ /*|apache |0 |D2 |2.4.43 |[[http://www.apache.org/dist/httpd/CHANGES_2.4.43|2.4.46]] |*/ |nginx |0 |D2 |1.19.9 |[[http://nginx.org/en/CHANGES|1.19.10]]| |php 7.3 |0 |D2 |7.3.27 |[[https://www.php.net/ChangeLog-7.php#7.3.28|7.3.28]] | |php 7.4 |0 |D2 |7.4.16 |[[https://www.php.net/ChangeLog-7.php#7.4.18|7.4.18]] | |passenger |0 |D2 |6.0.7 |[[https://github.com/phusion/passenger/blob/stable-6.0/CHANGELOG|6.0.8]] | |ruby 2.6 |0 |D2 |2.6.6 |[[https://www.ruby-lang.org/en/news/2021/04/05/ruby-2-6-7-released/|2.6.7]] | /*|python |0 |D2 |2.7.17 |[[https://www.python.org/downloads/release/python-2717/|2.7.17]] |*/ |python |0 |D2 |3.8.8 |[[https://docs.python.org/3.8/whatsnew/changelog.html|3.8.9]] | |node 12 |0 |D2 |12.21.0 |[[https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V12.md|12.22.1]] | /*|yarn |0 |D2 |1.22.5 |[[https://github.com/yarnpkg/yarn/blob/master/CHANGELOG.md|1.22.5]]|*/ /*|perl |0 |D2 |5.32.1 |[[https://perldoc.perl.org/index-history.html|5.32.1]] |*/ |tomcat-native |0 |D2 |1.2.26 |[[http://tomcat.apache.org/native-doc/miscellaneous/changelog.html|1.2.28]] | |ImageMagick |0 |D2 |7.0.11-4 |[[https://www.imagemagick.org/script/changelog.php|7.0.11-6]] | |curl |0 |D2 |7.75.0 |[[https://curl.haxx.se/changes.html|7.76.1]] | /*|goaccess |0 |D2 |1.4.6 |[[https://goaccess.io/release-notes|1.4.6]] |*/ /*|gzip |0 |D2 |1.10 |[[https://www.gnu.org/software/gzip/|1.10]] |*/ |rclone |0 |D2 |1.54.1 |[[https://rclone.org/changelog/|1.55.1]] | /*|ts |0 |D2 |0.7.3 |[[http://freshmeat.sourceforge.net/projects/taskspooler|0.7.3]] |*/ |ffmpeg |0 |D2 |4.3.2 |[[https://www.ffmpeg.org/download.html#releases|4.4]] | /*|sox |0 |D2 |14.4.2 |[[http://sox.sourceforge.net/|14.4.2]] |*/ /*|git |0 |D2 |2.31.1 |[[https://git-scm.com/|2.31.1]] |*/ /*|netperf |0 |D2 |2.7.0 |[[https://github.com/HewlettPackard/netperf/blob/master/Release_Notes|2.7.0]] |*/ /*|id3v2 |0 |D2 |0.1.11 |[[https://sourceforge.net/projects/id3v2/|0.1.12]] |*/ /*|httperf |0 |D2 |2020-08-02 |[[https://github.com/httperf/httperf|2020-12-06]] |*/ /*|wkhtmltox |0 |D2 |0.11.0 |[[https://github.com/wkhtmltopdf/wkhtmltopdf/blob/master/CHANGELOG.md|0.12.6]] |*/ |postfix |0 |D2 |3.5.9 |[[http://www.postfix.org/announcements/postfix-3.5.10.html|3.5.10]] | /*|amavisd |0 |D2 |2.11.1 |[[https://www.amavis.org/release-notes.txt|2.11.1]] |*/ |clamav |0 |D2 |0.103.1 |[[https://blog.clamav.net/|0.103.2]] | /*|p0f |0 |D2 |3.09b |[[https://lcamtuf.coredump.cx/p0f3/|3.09b]] |*/ /*|postgrey |0 |D2 |1.37 |[[https://github.com/schweikert/postgrey/blob/master/Changes|1.37]] |*/ |spamassassin |0 |D2 |3.4.5 |[[https://spamassassin.apache.org/news.html|3.4.6]] | /*|unrar |0 |D2 |6.0.4 |[[http://www.linuxfromscratch.org/blfs/view/svn/general/unrar.html|6.0.4]] |*/ |bind |0 |D2 |9.11.29 |[[https://ftp.isc.org/isc/bind9/9.11.31/CHANGES|9.11.31]] | /*|unbound |0 |D2 |1.13.1 |[[http://www.unbound.net/download.html|1.13.1]] |*/ ^ ^^^^^ /*|memcached |1--2 |N3 |1.6.8 |[[https://github.com/memcached/memcached/wiki/ReleaseNotes169|1.6.9]]|*/ |OpenJDK8U-jre |2 |N3 |8u282b08 |[[https://adoptopenjdk.net/release_notes.html|8u292b10]] | |OpenJDK11U-jre |2 |N3 |11.0.10_9 |[[https://adoptopenjdk.net/release_notes.html|11.0.11_9]] | |OpenJDK11U-jdk |2 |N3 |11.0.10_9 |[[https://adoptopenjdk.net/release_notes.html|11.0.11_9]] | |tomcat 8 |2 |N3 |8.5.64 |[[https://tomcat.apache.org/tomcat-8.5-doc/changelog.html|8.5.65]] | |tomcat 9 |2 |N3 |9.0.44 |[[https://tomcat.apache.org/tomcat-9.0-doc/RELEASE-NOTES.txt|9.0.45]] | |mysql-connector-java |2 |N3 |8.0.23 |[[https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/|8.0.24]] | /*|mysql-connector-java5 |2 |N3 |5.1.49 |[[https://dev.mysql.com/doc/relnotes/connector-j/5.1/en/|5.1.49]] |*/ /*|newrelic-java |2 |N3 |6.4.2 |[[https://docs.newrelic.com/docs/agents/java-agent|6.4.2]] |*/ /*|ActiveMQ |2 |N3 |5.16.1 |[[http://activemq.apache.org/activemq-51513-release.html|5.16.1]] |*/ /*|keycloak |2 |N3 |12.0.4 |[[https://www.keycloak.org/docs/latest/release_notes/index.html|12.0.4]] |*/ /*|mariadb |1 |N3 |10.2.37 |[[https://mariadb.com/kb/en/library/mariadb-10237-release-notes/|10.2.37]] |*/ |mysql |1 |N3 |5.7.33 |[[https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-34.html|5.7.34]] |*/ /*^ ^^^^^*/ /*|Elastic Search 7.x |0 |D3 |7.12.0 |[[https://www.elastic.co/guide/en/elasticsearch/reference/7.12/es-release-notes.html|7.12.0]] |*/ ^ ^^^^^ ==== Legenda ==== Veel software kan zonder, of met heel weinig impact ge-update worden. Voor deze zaken kiezen we ervoor om zo'n update overdag uit te voeren. Bij een aantal andere componenten is er iets meer impact merkbaar. Die voeren we uit in een nachtelijks change window. Hieronder is de impact genummerd van 0 (geen impact) via 1 (korte onderbreking van enkele seconden) tot 2 (onderbreking van enkele minuten op de dienstverlening). De tijdstippen zijn als volgt: ^code ^tijdstip ^ |D1 |maandag 10 mei 8:00--17:00 | |D2 |dinsdag 11 mei 8:00--12:00 | |N3 |woensdag 12 mei 1:00--6:00 AM | |D3 |woensdag 12 mei 8:00--17:00 | |W |10--12 mei 8:00--17:00 | /*|tbd |te bepalen in overleg met de gebruikers |*/ ==== Bereikbaarheid ==== Team Hosting&Streaming is gedurende al het onderhoud via de normale kanalen bereikbaar. Zie de [[:contact|contact pagina]]. aankondigingen/2021/c2021d08-software-updates-202105.txt Last modified: 2025/03/21 11:39by 127.0.0.1 Log In