DEFREN

Login und Suche



CH Open Sponsoren

metas GmbH -/ch/open-Sponsor
Release und Patch Management mit SUSE Manager 3

Release und Patch Management mit SUSE Manager 3

von Nicolas Christener | 16.03.2016

Das SUSE Manager 3 beta Programm ist Ende Dezember 2015 gestartet worden. Diese Gelegenheit wollten wir nutzen, um uns einen ersten Überblick zu verschaffen, was die kommende Version beinhalten wird.

Vorneweg, die wichtigste Änderung ist die Integration von SaltSack als Remote Execution und Configuration Management Framework.
Für diesen Blog Post haben wir uns folgenden Anwendungsfall ausgesucht und ein kurze Anleitung, wie es in der Praxis umgesetzt würde, verfasst.

 

Szenario

Damit in grösseren IT-Systemlandschaften ein vernünftiges Release und Patch Management durchgeführt werden kann, werden oft identische Systeme in unterschiedlichen Umgebungen (phases oder stages) betrieben. Steht ein neuer Release oder ein Patch zur Verfügung, werden diese zuerst auf den Entwicklungssystemen eingespielt und durchlaufen dann einige Tests und eventuelle Anpassungen, bevor sie auf den produktiven Systemen ausgerollt werden.

Der SUSE Manager liefert für dieses Szenario eine einfache Lösung. Damit einzelne Patches und Pakete von einer Umgebung in die nächste weitergereicht werden können. Zudem ist es möglich einen gesamten Stand oder ein Snapshot eines definierten Zeitpunkts von einer Umgebung in die nächste zu synchronisieren.

 

Voraussetzungen

Die beschriebenen Konfigurationen setzen voraus, dass ein SUSE Manger 3 installiert und mindestens ein Client System mit SLES11 oder SLES12 als Salt Minion angebunden ist.

 

Konfiguration

Damit das komplette Setup in der Shell durchgeführt werden kann, müssen die Pakete spacewalk-utils und spacecmd installiert werden.

 

----------

suma3:~ # zypper in -y spacewalk-utils spacecmd

----------

 

Dann lassen wir uns die bestehenden Software Channels anzeigen.

 

----------

suma3:~ # spacewalk-manage-channel-lifecycle \ -u admin -p $PASSWORD -l

----------

 

Zum jetzigen Zeitpunkt ist nur ein Channel zu sehen. Im sogenannte Vendor Channel liegen alle Pakete und Patches die vom SCC heruntergeladen werden.
Also ein Mirror der aktuellsten Paketen von SUSE.

Nun werden die vier Umgebungen (phases) erstellt.

 

----------

suma3:~ # spacewalk-manage-channel-lifecycle \ -u admin -p $PASSWORD \ --channel sles12-sp1-pool-x86_64 --init \ -P devl,test,inte,prod suma3:~ # for PHASE in devl test inte prod ; do > spacewalk-manage-channel-lifecycle \ > -u admin -p $PASSWORD \ > --channel $PHASE-sles12-sp1-pool-x86_64 \ > --promote -P devl,test,inte,prod > done

----------

 

Werden die Umgebungen (phaese) nicht explizit mit -P angegeben, wird als Standard (dev, test, prod) verwendet. Wird der Channel tree jetzt noch einmal mit dem oben genannten Befehl angezeigt, sind die fünf Base Channels zu sehen. Der Vendor- und die vier erstellten Umgebungs-Channels (devl, test, inte, prod).

Damit wir die Konfiguration testen können, weisen wir ein SUSE Manager Client System einer Umgebung zu, in unserem Beispiel der Test-Umgebung.

 

----------

suma3:~ # spacecmd -u admin -p $PASSWORD -y \ system_setbasechannel suma3-client1.example \ test-sles12-sp1-pool-x86_64

----------

 

Auf dem Client System kann mit folgendem Befehl überprüft werden, ob die Zuweisung funktioniert hat.

 

----------

suma3-client1:~ # zypper lr

----------

 

Es erscheinen nur Repositories der zugeteilten Umgebung.

Ab jetzt ist es möglich, über das WebUI oder das CLI einzelne Pakete oder Patches in eine Umgebung zu importieren, oder eine Umgebung mit einer anderen zu synchronisieren.

 

Hinter den Kulissen

Sobald ein Client System einem Base Channel zugewiesen ist, wird auf dem SUSE Manager, welcher als Salt Master läuft, eine Datei mit den entsprechenden Repositories erstellt.

 

----------

suma3:~ # cd /srv/susemanager/salt/channels ; \ > cat channels.repo.044625baad3d49889f067f14d7cae86f [susemanager:test-sles12-sp1-pool-x86_64] name=test-sles12-sp1-pool-x86_64 enabled=1 autorefresh=1 baseurl=https://suma3.example/rhn/manager/download/test-sles12-sp1-pool-x86_64?eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE0ODc4MzU1NDgsImlhdCI6MTQ1NjI5OTU0OCwibmJmIjoxNDU2Mjk5NDI4LCJvcmciOjEsImp0aSI6IlRrYldFQWUwaHZGdzNZUklQQk1aWmcifQ.cmGZyuMU_SJT_fHRmj9X0zP7vM1A2KwWgNRp6m4BDcI [...]

----------

 

Das Suffix des Dateinamens entspricht der Salt Minion ID des jeweiligen Client, in unserem Falle der ID von [suma3-client1.example].

 

Anschliessend führt der SUSE Manager den folgenden Befehl aus, welcher die Datei [/etc/zypp/repos.d/susemanager:channels.repo] auf dem Zielsystem [suma3-client1.example] neu schreibt, falls es Abweichungen zur lokalen Version gibt.

 

----------

suma3:~ # salt 'suma3-client1.example' state.apply

----------

 

Interaktion Spacewalk / SaltStack

Spacewalk übergibt dem Salt Master seine Befehle über dessen Rest API, und als Client Library wird die von SUSE entwickelte salt-netapi-client verwendet.

 

Fazit

Dieses Setup liess sich dank dem Configuration Management von SaltStack sehr einfach durchführen. Im Vergleich zu Vorgängerversionen des SUSE Manager, die als Client Stack rhns verwendeten, war die Konfiguration um einiges schlanker und die Repository-Quellen wurden schneller den Clients zugeteilt.
Die Integration von SaltStack ist eine Bereicherung für den SUSE Manager, welche nicht nur im beschriebenen Anwendungsfall erhebliche Vorteile mit sich bringt.



Weiterführende Informationen aus dem OSS Directory


Adfinis SyGroup AG

adfinis-sygroup.ch | 50 Mitarbeitende | 12 Referenzen | 87 Produkte


Im Jahr 2000 wurden die beiden Unternehmen Adfinis und SyGroup ins Leben gerufen. Mit der Fusion im 2012 zur heutigen Adfinis SyGroup haben wir uns über die Schweizer Grenzen hinaus zu einem ...

» Mehr
Letzte Aktualisierung: 20.12.2018  -  Anzahl Ansichten seit dem 01. April 2013: 1556
Erstellt: 13.10.2012

Mitgliedschaft bei /ch/open

Der Vorstand der /ch/open wird jährlich an der Mitgliederversammlung gewählt und arbeitet vorwiegend ehrenamtlich. Werden Sie Mitglied des Vereins /ch/open und unterstützen Sie die Förderung von Open Source Software in der Schweiz.

Einzelmitgliedschaft
Für alle, die persönlich die Anliegen und Aktivitäten von /ch/open unterstützen und kostenlos an Abendveranstaltungen und am Open Business Lunch teilnehmen möchten.
CHF 100.– pro Jahr

Einzelmitgliedschaft für Personen in Ausbildung
Personen in Ausbildung erhalten eine Ermässigung des Mitgliederbeitrags.
CHF 20.– pro Jahr

Kollektivmitgliedschaft
Für Unternehmen, öffentliche Verwaltung, Schulen und andere juristische Personen: Alle Mitarbeiter solcher Organisationen geniessen die gleichen Möglichkeiten und Vergünstigungen wie Einzelmitglieder. Eine definierte Kontaktperson erhält alle Korrespondenz.
CHF 450.– pro Jahr

Sponsormitgliedschaft
Für Mitglieder, welche die Anliegen der /ch/open besonders unterstützen möchten: Sponsormitglieder können Anfang Jahr am /ch/open Sponsoren-Dinner teilnehmen, werden auf der /ch/open Website und dem Portal www.opensource.ch mit Logo aufgeführt, in allen Mailings namentlich mit Link erwähnt und können beliebig viele Projekte und Referenzen im OSS Directory verlinken.
CHF 1000.– pro Jahr

Die Anmeldung für die Mitgliedschaft, die Vereinsstatuten sowie viele weitere Informationen sind auf der Website zu finden:
http://www.ch-open.ch/anmeldeformular_mitgliedschaft/

Twitter Feed







Links

Über unsNewsletterKontaktNutzungsbedingungenCH Open Initiativen