Solaris komfortabel patchen
Sun hat in den vergangenen Jahren immer wieder neue Methoden gezeigt, wie man ein Solaris System patchen kann, da der recommended patch cluster nicht alles Patches beinhalten kann, welche für ein System benötigt werden und seit Solaris 10 hat meine keine andere Wahl mehr, sich mit diesen Tool auseinander zu setzen.
Viele dieser Tools sind, trotz dem guten Ansatz, nicht tauglich für den Alltag. Die monströsen Java Programme, für die man teilweise X benötigt, sind völlig bloat und langsam. Dazu kommt noch, dass Patch Services von Sun alles andere als verfügbar und zuverlässig sind.
Die Proactive Services der Sun Schweiz bietet eine Patch CD/DVD an, auf der man einen speziell anhand der Explorer Daten erstellten Patch Cluster erhält. Das wäre ja eigentlich eine gute Idee, allerdings ist es mir nicht ganz ersichtlich, warum man als Kunde neben dem Sun Vertrag nochmals ein paar tausend Franken für eine Patch CD bezahlen soll, nur weil Sun kein funktionierendes Patch Tool zu verfügung stellen kann.
Auch Martin Paul von der Universität Wien dürfte sich über diese Situation aufgeregt haben, was ihn vermutlich dazu motiviert hat, PCA- Patch Check Advanced zu schreiben. PCA ist ein Perl basierendes Script, welches mit 1500 Zeilen wirklich klein ist. Es benötigt ausser Perl, was ohnehin mit der standart Solaris Installation dabei ist, wget, was ab Solaris 9 ebenfalls zum Lieferumfang gehört.
PCA ist ein Tool zur Patch Analyse und Installation, welches einen Text oder HTML Output erzeugen kann. Ferner kann es auch als Patch Server agieren, was insbesondere in grösseren Umgebungen praktisch ist. Es besticht nicht nur mit seinerGeschwindigkeit, sondern auch mit seiner einfachen Handhabung, was bei den Sun Tools wie smpatch nicht der Fall ist.
Wenn der SunSolve Account ebenfalls aktiv ist, kann man bereits loslegen: Nachdem man das Script auf das System kopiert hat, geht man in ein Verzeichnis, wo man die Patches haben möchte, am besten /var/tmp.
Die Liste mit den fehlenden Patches anzeigen (pca zeigt auch das alter und die Kategorie ([S]ecurity, [B]ad ) an:
root@newponit # pca -l Download xref-file to /var/tmp/patchdiag.xref: done Using /var/tmp/patchdiag.xref from Feb/13/07 Host: newponit (SunOS 5.10/Generic_118833-36/sparc/sun4u)Patch IR CR RSB Age Synopsis ------ -- - -- --- --- ------------------------------------------------------- 117463 03 < 04 --- 8 SunOS 5.10: passwdutil Patch 118666 10 < 11 -S- 5 J2SE 5.0: update 11 patch (5.0u11) 118667 10 < 11 -S- 5 J2SE 5.0: update 11 patch (5.0u11), 64bit 118712 12 < 13 R-- 1 SunOS 5.10: Sun XVR-100 Graphics Accelerator Patch 118815 04 < 05 R-- 8 SunOS 5.10: awk nawk patch 118918 22 < 24 RS- 9 SunOS 5.10: Solaris Crypto Framework patch 119130 31 < 32 R-- 9 SunOS 5.10: Sun Fibre Channel Device Drivers 119580 04 < 05 --- 5 SunOS 5.10: libcpc Patch 119703 07 < 08 --- 1 SunOS 5.10: Patch for localeadm issues 119998 -- < 02 -S- 5 SunOS 5.10: arp, ip, ipsecah drivers patch 120050 04 < 05 --B 7 SunOS 5.10: usermod patch 120068 01 < 02 -S- 1 SunOS 5.10: in.telnetd Patch 120222 14 < 15 --- 8 SunOS 5.10: Emulex-Sun LightPulse Fibre Channel Adapter driver 120473 01 < 02 --- 6 SunOS 5.10: nss_compat patch 120812 14 < 15 --- 5 OpenGL 1.5: OpenGL Patch for Solaris 120845 03 < 04 --- 8 SunOS 5.10: auditd patch 120986 08 < 10 --- 8 SunOS 5.10: mkfs and newfs patch 122130 02 < 03 --- 5 SunOS 5.10: Patch to update SUNWlocaledefsrc files 123186 01 < 02 RS- 9 SunOS 5.10: NIS yp utilities patch 123590 01 < 02 --- 3 SunOS 5.10: PostgresSQL patch 124149 02 < 03 --- 5 SunOS 5.10: Sun XVR-300 Graphics Accelerator Patch 124244 -- < 01 -S- 8 SunOS 5.10: /usr/bin/rm patch 124993 -- < 01 --- 9 SunOS 5.10: in.ndpd patch 124995 -- < 01 --- 9 SunOS 5.10: ehci driver patch 125014 -- < 02 --- 3 SunOS 5.10: IP filter patch 125016 -- < 01 --- 7 SunOS 5.10: audit and init patch 125024 -- < 01 --- 9 SunOS 5.10: basic audit reporting tool patch 125026 -- < 01 --- 9 SunOS 5.10: message queue patch 125040 -- < 01 --- 5 SunOS 5.10: /usr/lib/inet/in.mpathd patch 125073 -- < 01 --- 5 SunOS 5.10: vold patch 125075 -- < 01 --- 9 SunOS 5.10: svc-volfs patch
Danach kann man die Patches downloaden:
root@newponit # pca -d Using /var/tmp/patchdiag.xref from Feb/13/07 Host: newponit (SunOS 5.10/Generic_118833-36/sparc/sun4u)Patch IR CR RSB Age Synopsis ------ -- - -- --- --- ------------------------------------------------------- 117463 03 < 04 --- 8 SunOS 5.10: passwdutil Patch Download 1/31: done 118666 10 < 11 -S- 5 J2SE 5.0: update 11 patch (5.0u11) Download 2/31: done 118667 10 < 11 -S- 5 J2SE 5.0: update 11 patch (5.0u11), 64bit Download 3/31: done 118712 12 < 13 R-- 1 SunOS 5.10: Sun XVR-100 Graphics Accelerator Patch Download 4/31: done 118815 04 < 05 R-- 8 SunOS 5.10: awk nawk patch Download 5/31: done 118918 22 < 24 RS- 9 SunOS 5.10: Solaris Crypto Framework patch Download 6/31: done 119130 31 < 32 R-- 9 SunOS 5.10: Sun Fibre Channel Device Drivers Download 7/31: done [...]
Und installieren:
root@newponit # pca -i Using /var/tmp/patchdiag.xref from Feb/14/07 Host: newponit (SunOS 5.10/Generic_118833-36/sparc/sun4u)Patch IR CR RSB Age Synopsis ------ -- - -- --- --- ------------------------------------------------------- 117463 03 < 04 --- 9 SunOS 5.10: passwdutil Patch Download 1/33: skipped - file exists Install 1/33: done - reboot 118666 10 < 11 -S- 6 J2SE 5.0: update 11 patch (5.0u11) Download 2/33: skipped - file exists Install 2/33: done [...] 118667 10 < 11 -S- 6 J2SE 5.0: update 11 patch (5.0u11), 64bit Download 3/33: skipped - file exists Install 3/33: 125073 -- < 01 --- 6 SunOS 5.10: vold patch Download 32/33: skipped - file exists Install 32/33: done - reboot 125075 -- < 01 --- 10 SunOS 5.10: svc-volfs patch Download 33/33: skipped - file exists Install 33/33: done Download Summary: 33 total, 0 successful, 32 skipped, 1 failed Install Summary : 33 total, 32 successful, 0 skipped, 1 failed Reboot required to complete patch process.
Anmerkung: Falls ein Patch sofort einen Reboot bzw. Reconfigure verlang, verweigert PCA die Installation weiterer Patches. Nach einem Reboot kann man weiter machen.
Nachdem man alle Patches installiert hat, muss man nur noch Rebooten und gut ist. Und das alles ohne Java und X. Meiner Meinung nach besteht bei Sun ein Handlungsbedarf, was die Entwicklung komfortabler und praxis tauglicher Tools angeht.
Unter Windows kannst du Patches mit WSUS ganz einfach auf diverse Maschinen verteilen 😉
Na endlich…
Wieso schafft SUN sowas eigentlich nicht? PPROSVC kann man grösstenteils grün anstreichen und in die Tonne treten. Unübersichtlich, “Fehlermeldungen” für nix und wieder nix – ich bin schon länger auf der Suche nach einem gescheiten Patch-Tool für SUN und bin zwischenzeitlich sogar dazu über gegangen, die Patch Cluster einmal im Monat runter zu laden und so zu installieren.
PCA sind ~1000 Zeilen Perl – und es funktioniert.
Gruss
Tobias