· Spacewalk Foreman Datenbank PGSQL,Oracle MongoDB + PGSQL ClientOS RPM RPM,DEB24 Konfiguration custom25 Puppet Software Kanal:Repos Repos : Prod-ucts:CVs Aktivierung Manuell,Schlüssel

Post on 12-Jul-2020

16 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

Lifecycle-Management mit Foreman

und KatelloGrundlagen undSpacewalk-Migration

Christian Stankowicwww.stankowic-development.net

Free and Open Source softwareConference19.08.2017

whoami

Christian Stankowic

VMware Global Inc.

Senior PSO Consultant

Blogger & Fachbuchautor

2

AGENDA

Agenda

Überblick

Installation

Content-Management

Puppet

Automatisierung

Spacewalk-Migration

4

ÜBERBLICK

Was ist Foreman?

Quelloffene Lifecycle-Management-Suite

Erstellung, Konfiguration undInventarisierung1 von Systemen

Unterstützt Konfiguration mittels Puppetoder optional2 Chef, Salt und Ansible

1. Facts, system profiling2. per Plugin

6

facter

1 $ facter -p

2 architecture => x86_64

3 domain => stankowic.loc

4 interfaces => docker0,ens192,lo

5 ...

6 memoryfree => 1.14 GB

7 processor0 => Intel(R) Xeon(R) CPU D-1518

@ 2.20GHz

8 virtual => vmware

Listing 1: Ausgabe von facter7

Virtualize _all_ the workloads

Integration in gängige Hypervisor- undCloud-Plattformen:

VMware vSphere3oVirtAmazon EC2Microsoft AzureXENOpenStack, OpenNebula

3. ESXi und vCenter Server

9

Weitere Features

rollenbasierte Konfiguration

Mandantenfähig

Integration in LDAP, FreeIPA und MicrosoftActive Directory Domain Services

Verteilen von Infrastruktur-Diensten inSatelliten-Instanzen

Gut dokumentierte RESTful API zurAutomatisierung

10

Was ist Katello?

Content Management-Plugin für Foreman

Vereint die Software-Projekte Pulp undFiction Candlepin

Synchronisation von OSTree-/RPM-Paketen4

und Docker-/Puppet-Modulen

4. DEB-Unterstützung in Arbeit

11

Weitere Features

Verwaltung von Errata

Verwaltung von Subskriptionen undKanal-Berechtigungen

Snapshots, Einfrieren von Inhaltsbeständen(z.B. Dev, QA, Prod)

12

13

Foreman/Katello vs. Satellite 6

Foreman RHS6Releases 1-2 Monate 11 MonatePuppet-Version

4.x 3.65

Server OS $Linux RHELSupport × ✓6

Orchestration Smart Proxy CapsuleRHN × ✓7

5. Puppet 4.x ab Release 6.36. Verwendung über CLI, WebUI und API, keine Fremd-Plugins; siehe auch Dokumentation7. Über Subscription Manager

14

INSTALLATION

Installation

Foreman ist vorkompiliert erhältlich für:Debian 8Fedora 24Ubuntu 14.04 / 16.04Enterprise Linux (RHEL, CentOS, SL) 7

Katello-Pakete lediglich für EL6 / 7 x86_64!

16

Anforderungen

mindestens 2 Cores

mindestens 8 GB RAM (12 empfohlen)

30 GB Speicherplatz pro Betriebssystemempfohlen

siehe auch: theforeman.org/plugins/katello

17

Vorbereitung

Dedizierte Dateisysteme:/var/spool/squid (Cache, 10 GB)/var/lib/mongodb (Katello, 10 GB, inodes!)/var/lib/pulp (Content, 30 GB)/var/lib/pgsql (Foreman, 10 GB)

Netzwerk-Ports öffnen:http/https

tcp/5647 - Client-Kommunikationtcp/9090 - Smart Proxy / Capsule

18

Software-Installation 1/2

Einbinden von Software-Quellen je nachDistribution (Katello, Foreman, Puppet,...)

Installation des katello Paketsberücksichtigt Abhängigketen

Snapshot anlegen!

foreman-installer konfiguriert benötigteDienste automatisch

19

Software-Installation 2/2

Zusatzoptionen evaluieren:foreman-installer --scenario katello -h

1 # foreman-installer --scenario katello --

foreman-initial-organization ”Stankowic”

--foreman-initial-location ”Homelab”

Listing 2: Installation mit angepasster Organisationund Location

20

21

CONTENT

Spacewalk

Parent- und Child-Channels mit 1+Repositories

Systemen werden Parent- und optionalenChild-Channels zugewiesen

Automatische Zuordnung perAktivierungsschlüssel möglich

23

Foreman/Katello

Productmit 1+ Repositories

Versionsstände werden in Content Viewseingefroren

Content View enthält 1+ Repositories8

Content View kann YUM-Filter enthalten

8. YUM-, Datei-, Docker- oder Puppet-Inhalte

24

25

YUM-Filter

Einbeziehen oder Ausschließen von:PaketenPaketgruppenErrata (anhand ID, Datum oder Typ)

Ideal für feste Wartungsfenster (z.BQ1-Updates)

Filter können auch kombiniert werden

26

27

Composite Content View

kombiniert mehrere Content Views in einemView

ideal, wenn OS- und Applikationspaketegetrennt versioniert werden

Filter werden überschrieben

28

29

Lifecycle Environments

Systeme können nach Umgebungenunterteilt werden9, z.B.:

DevQAProd

Content View-Versionen werdenUmgebungen zugeordnet

9. Standardmäßig gehören alle Systeme Library an

30

Patch-Freigabe

Neue Patches importieren, Content Viewaktualisieren10

Freigabe der Patche für Dev (promoten)11

Patche werden getestet

Freigabe der Patche für QA

Freigabe der Patche für Prod

siehe auch katello-cvmanager

10, 11. manuell oder per API (z.B. hammer)

31

32

33

34

35

36

37

38

PUPPET

40

Puppet in a nutshell

Client-/Server-Applikation12

Master konfiguriert und steuert Agenten

Manifeste definieren gewünschteKomponenten-Zustände13

Modulare Manifeste mit Facts

12. Auch ohne zentralen Server nutzbar13. Systemparameter, Dienste, Konfigurationen...

41

Resource Abstraction Language 1/2

Definition von Stati innerhalb Manifest

Unzählige Ressource-Typen: file, service,user,...14

Auflisten von Optionen pro Ressource:puppet describe resourceType

Beschreiben einer vorhandenen Ressource:puppet resource resourceType name

14. Auflisten mit puppet resource --types

42

Resource Abstraction Language 2/2

1 $ puppet describe service

2 $ puppet resource service httpd

3 service { ’httpd’:

4 ensure => ’started’,

5 enable => ’true’,

6 }

Listing 3: Informationen zu Services sowieBeschreibung eines Services

43

Puppet manifests in a nutshell

1 $ cat httpd.pp

2 package { ”httpd” :

3 ensure => ”installed”,

4 }

5 # puppet apply httpd.pp

6 ...

7 Notice: Finished catalog run in 8.03

seconds

Listing 4: Manifest zur Installation von Apache44

Puppet manifests in a nutshell

1 $ cat httpd-file.pp

2 package { ”httpd” :

3 ensure => ”installed”,

4 }

5 file { ’/var/www/html/index.html’’:

6 content => ”Yes this is $hostname”

7 }

8 # puppet apply httpd-file.pp

Listing 5: Apache-Manifest mit Datei und fact45

Foreman -Master of Puppets?

Foreman integriert Puppet Master und CA15

Puppet-Dashboards16

Konfiguration von Klassen, Variablen,...

Gruppierung von Klassen in Config Groups

Environment pro Lifecycle Environment

Overrides pro Host bzw. Hostgroup

15. auf dem Master bzw. den Smart Proxies/Capsules16. Aktivität und Kompliance

46

47

48

49

50

51

52

Drittanbieter-Module

Place to be: Puppetforge

Kopie heruntergeladener Puppet-Module inPuppet-Produkt, Aktualisierung des ContentViews

unbedingt Abhängigkeiten undAnforderungen überprüfen17

17. RHNS6 < 6.3 nutzt noch Puppet v3!

53

54

AUTOMATE

API

Foreman und Katello bieten eine gutdokumentierte REST-API

Schnelle Integration in eigeneAnwendungen

Dokumentation online und auf eigenemServer18

18. http://hostname/apidoc

56

hammer

umfangreiches Tool zur Steuerung vonForeman, Katello, Docker,...

erweiterbar, auto-completion

Verwalten von lokalen oder entfernenSystemen

mehr als 50 Kommandos19

19. für Foreman und Katello

57

Beispiel: Update _all_ the repos

1 $ hammer content-view update --async --

name CentOS_7

2 $ hammer content-view publish --async --

name CentOS_7

3 $ hammer content-view version promote --

organization Stankowic --to-lifecycle-

environment Dev --name CentOS_7

Listing 6: Aktualisieren und Veröffentlichen einesContent Views

58

Maintenance: Status quo

Wartungsarbeiten sind in größerenUmgebungen i.d.R. komplexer:

Erstellen von SnapshotsAusplanen des MonitoringsDokumentieren der ÄnderungenLöschen von Snapshots...

Vorarbeiten und Dokumentationumfangreicher als Wartung

59

60

katprep

Python-Toolkit, automatisiert Wartungen

Vorbereiten, Warten und Bereinigen vonSystemen mit einzelnen Befehlen

Changelogs mit Pandoc20

integriert sich in gängige Hypervisor undMonitoring-Systeme:

KVM, XEN, Hyper-V,... (libvirt)VMware vSphere (pyVmomi)Nagios/Icinga 1.x und Icinga2

20. derzeit Vorlagen für Markdown und HTML

61

katprep

unterstützt verschiedene Filter21

startet Systeme automatisch neu, falls einUpdate dies erfordert

Konfiguration über System-Parameter22

automatischer Abgleich mitVM-/Monitoring-Systemen möglich(auto-discovery)

Join the development: GitHub21. Organisation, Location, Hostgruppe, Environment22. Snapshots, Monitoring,...

62

Installation

Toolkit herunterladen und installieren

Zugangsdaten eintragen

Informationen automatisch erkennenlassen oder gestapelt eintragen

Wartung (simulieren)

63

Kommandos

Zugangsdaten pflegen: katprep_authconfig

Parameter erkennen/setzen:katprep_populate / katprep_parameters

System-Bestandsaufnahme:katprep_snapshot

Wartungen steuern: katprep_maintenance

Reports erstellen: katprep_report

64

Vorgehensweise

Bestandsaufnahme durchführen

Wartung vorbereiten, durchführen undüberprüfen

Erneute Bestandsaufnahme durchführen

Reports erstellen

Über gesparte Zeit freuen :-)

65

katprep_maintenance

Mit -n / --dry-run arbeiten!

Wartung vorbereiten: prepare

Installation durchführen: execute

Status überprüfen: verify

Snapshots, etc. entfernen: cleanup

Verwerfen: rollback23

23. noch nicht implementiert

66

67

MIGRATION

Unterschiede zu Spacewalk

Spacewalk ForemanDatenbank PGSQL, Oracle MongoDB +

PGSQLClient OS RPM RPM, DEB24

Konfiguration custom25 PuppetSoftware Kanal : Repos Repos : Prod-

ucts : CVsAktivierung Manuell, SchlüsselOrchestration Proxy Capsule

24. Foreman-only, experimenteller Pulp-Support25. SUSE Manager implementiert Salt

69

Passive Vorgehensweise

Installation eines neuen Systems

Abbilden der Software-Quellen und-Zustände

Erstellen der Konfigurationen anhandTest-Systeme

Sukzessive Migration der Systemesiehe auch Transitioning from Red Hat Satellite 5 to 6

70

Registrieren neuer Clients

Ausführen des Bootstrap-Skripts26

Installation von Puppet und katello-agent27

Zuweisen/Überprüfen von Subskriptionen

Aktualisieren von weiteren Informationen28

26. http://server/pub/bootstrap.py27. Zur Überprüfung installierter Errata28. Besitzer, Hostgruppen, katprep,...

71

Bootstrap

Registriert neue Systeme

Entfernen von RHN-Altlasten(yum-rhn-plugin, rhnsd, osad,...)

Migriert Systeme von Spacewalk und RedHat Satellite 5

Optional Angabe von Aktivierungsschlüssel,Hostgruppe, Organization,...

72

Dr. virt-who 1/2

RHEL-Systeme erhalten lediglich einetemporäre wibbly-wobbly Subskription29,wenn die Lizenz nicht validiert werden kann

bei virtualisierten Systemen werdenHypervisor30 als Content-Hosts geführt

Überprüfung der Subskription mittelssubscription-manager31

29. maximal 24 Stunden30. VMware vSphere, Red Hat Enterprise Virtualization und Microsoft Hyper-V31. siehe auch Dokumentation

73

Dr. virt-who 2/2

virt-who32 überprüft Host-VM-Zuordnungenmit verknüpften Manifest

Dienst ist über Lizenzen und Installationeninformiert

Wirkt Unterlizensierung entgegen

Zuweisung einzelner Lizenzverträge imBackend möglich

32. RE-GIS-TRATE!

74

Temporäre Subskription

1 # subscription-manager status

2 ...

3 Overall Status: Insufficient

4 ...

5 - Guest has not been reported on any host

and is using a temporary unmapped

6 guest subscription.

Listing 7: Temporäre Zuordnnung aufgrund fehlenderLizenz-Validierung

75

FRAGEN?

Links

Foreman-Webseite

Katello-Plugin

Red Hat Satellite 6-Dokumentation

Puppetforge

katprep-Framework

Foreman-/Katello-Artikelserie

77

Vielen Dank für die Aufmerksamkeit!

http://www.stankowic-development.net

78

top related