Spacewalk verwaltet Softwareinhaltsaktualisierungen für von Red Hat abgeleitete Distributionen wie Fedora, CentOS und Scientific Linux hinter Ihrer Firewall. Dies ist die Open-Source-Version von RedHat Satellite 5. Wir haben RedHat Satellite 6 und die Open-Source-Version ist Katello. Ich werde Ihnen in meinem nächsten Tutorial ausführlich zeigen, wie Sie das im Detail konfigurieren können. Spacewalk ist ein sehr leistungsfähiges Tool, wenn es um die Verwaltung der Infrastruktur geht, und es ist wirklich stabil und gut aufgebaut.
Ich werde die Installation von Spacewalk durchgehen und Ihnen im Detail zeigen, wie Sie es so konfigurieren, dass es produktionsbereit ist, zusammen mit allen Funktionen, die wir damit verwenden können. Ich gehe mit eingebetteter Postgres-Installation.
In diesem Tutorial werde ich 3 Server verwenden:
- 192.168.1.20 – Spacewalk-Server – Centos 7
- 192.168.1.21 – Weltraumspaziergang-Client – Centos 6
- 192.168.1.22 - Weltraumspaziergang-Client - Centos 7
Anforderungen
CentOS 7 mit Mindestinstallation:
cat /etc/redhat-release
Ergebnis:
CentOS Linux-Version 7.3.1611 (Core)
SELinux im erzwungenen Modus:
Status
SELinux-Status:aktiviert
SELinuxfs-Mount:/sys/fs/selinux
SELinux-Stammverzeichnis:/etc/selinux
Name der geladenen Richtlinie:Zielgerichtet
Aktueller Modus:Erzwingen
Modus aus Konfigurationsdatei:Erzwingung
Richtlinie MLS-Status:aktiviert
Richtlinienverweigerung_unbekannter Status:zulässig
Maximale Kernel-Richtlinienversion:28
[[email protected] ~]#Fügen Sie den Hosteintrag /etc/hosts
hinzu192.168.1.20 spacewalk.sunil.cc WeltraumspaziergangInstallation des Spacewalk-Servers
Installieren des Spacewalk CentOS-Repos.
rpm -Uvh http://yum.spacewalkproject.org/2.6/RHEL/7/x86_64/spacewalk-repo-2.6-0.el7.noarch.rpmcat> /etc/yum.repos.d/jpackage-generic.repo <[jpackage-generic]
name=JPackage generic
baseurl=http://vesta .informatik.rwth-aachen.de/ftp/pub/comp/Linux/jpackage/5.0/generic/free/
#mirrorlist=http://www.jpackage.org/mirrorlist.php?dist=generic&type=free&release=5.0
enabled=1
gpgcheck=1
gpgkey=http://www.jpackage.org/jpackage.asc
EOFrpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmInstallation von PostgreSQL für den Weltraumspaziergang:
yum install -y spacewalk-setup-postgresql spacewalk-postgresqlHinzufügen von Firewall-Regeln.
firewall-cmd --add-service=http --permanent; Firewall-cmd --add-service=https --permanent; Firewall-cmd --add-port=5222/tcp --permanent;firewall-cmd --add-port=5269/tcp --permanent;firewall-cmd --add-port=69 â??permanent; Firewall-cmd --add-port=5222/udp --permanent;firewall-cmd --add-port=5269/udp --permanentUnd die Firewall neu laden.
firewall-cmd --reloadFirewalld aktivieren.
systemctl aktiviert firewalldsystemctl Firewalld neu startenPostgreSQL-Server konfigurieren.
Hier habe ich den Namen der Datenbank spacewalk, den Benutzernamen spacewalkuser und das Passwort spacewalkuser.
gegebenspacewalk-setup-postgresql create --db spacewalk --user spacewalkuser --password spacewalkuser/usr/bin/spacewalk-setup-postgresql:Zeile 87:isSUSE:Befehl nicht gefunden/usr/bin/spacewalk-setup-postgresql:Zeile 100:isSUSE:Befehl nicht gefunden service'.Symlink von /etc/systemd/system/multi-user.target.wants/postgresql.service nach /usr/lib/systemd/system/postgresql.service erstellt.Hinweis:Der bevorzugte Weg, dies zu tun, ist jetzt "postgresql -setup initdb"Initializing database ... OK/usr/bin/spacewalk-setup-postgresql:line 154:[:018446744073692774399:integer expression erwartetRedirecting to /bin/systemctl start postgresql.serviceRedirecting to /bin/systemctl reload postgresql.serviceEinrichtung des Spacewalk-Servers.
spacewalk-setup --skip-db-install* Einrichten von SELinux..** Datenbank:Einrichten der Datenbankverbindung für das PostgreSQL-Backend.** Datenbank:Installation der eingebetteten Datenbank ÜBERSPRUNG. Verbindung zur Datenbank nicht möglich. Ihre Verbindungsinformationen sind möglicherweise falsch. Error:DBI connect('dbname=rhnschema','rhnuser',...) failed:FATAL:no pg_hba.conf entry for host "[local]", user "rhnuser", database "rhnschema", SSL off at / usr/share/perl5/vendor_perl/Spacewalk/Setup.pm Zeile 1686.Hostname (leer lassen für lokal)?Datenbank? spacewalkBenutzername? spacewalkuserPassword?** Datenbank:Datenbank wird gefüllt.*** Fortschritt:###########################* Tomcat konfigurieren.* Benutzer einrichten und Gruppen.** GPG:GPG initialisieren und Schlüssel importieren.** GPG:/root/.gnupg-Verzeichnis erstellenSie müssen eine E-Mail-Adresse eingeben.E-Mail-Adresse des Administrators? [email protected]* Durchführen der Erstkonfiguration.* Konfigurieren des virtuellen Apache-SSL-Hosts.Soll Setup den standardmäßigen SSL-Server von Apache für Sie konfigurieren (speichert die ursprüngliche ssl.conf) [Y]?** /etc/httpd/conf.d/ssl.conf wurde in ssl.conf-swsave gesichert* Jabberd konfigurieren.* SSL-Zertifikate erstellen.Passwort für CA-Zertifikat?Sie müssen ein Passwort eingeben.Passwort für CA-Zertifikat?Passwort für CA-Zertifikat erneut eingeben?Organisation? IT-Organisationseinheit [spacewalk.sunil.cc]?E-Mail-Adresse [[email protected]]?Stadt? Den HaagStaat?Staat? Zuid-HollandLändercode (Beispiele:„US“, „JP“, „IN“ oder „?“ eingeben, um eine Liste anzuzeigen)? NL** SSL:Generieren des CA-Zertifikats.** SSL:Bereitstellen des CA-Zertifikats.** SSL:Generieren des Serverzertifikats.** SSL:Speichern von SSL-Zertifikaten.* Bereitstellen von Konfigurationsdateien.* Aktualisieren der Konfiguration in der Datenbank.* Einrichten von Cobbler.. Cobbler erfordert, dass die tftp- und xinetd-Dienste für die PXE-Bereitstellungsfunktionalität aktiviert sind. Diese Dienste aktivieren [Y]? Y* Dienste werden neu gestartet.Installation abgeschlossen.Besuchen Sie https://spacewalk.sunil.cc, um das Spacewalk-Administratorkonto zu erstellen.[[email protected] ~]#Spacewalk neu starten.
spacewalk-service NeustartSpacewalk-Dienste herunterfahren...Umleitung zu /bin/systemctl stop taskomatic.serviceCobblerd stoppen (über systemctl):[ OK ]Umleitung zu /bin/systemctl stop rhn-search.serviceUmleitung zu /bin/systemctl stop osa-dispatcher .serviceUmleitung zu /bin/systemctl stop httpd.serviceUmleitung zu /bin/systemctl stop tomcat.serviceUmleitung zu /bin/systemctl stop jabberd.serviceUmleitung zu /bin/systemctl stop postgresql.serviceDone.Spacewalk-Dienste werden gestartet...Umleitung zu /bin/ systemctl start postgresql.service Umleitung nach /bin/systemctl start jabberd.service Umleitung nach /bin/systemctl start tomcat.service Warten auf die Bereitschaft von Tomcat ... Umleitung nach /bin/systemctl start httpd.service Umleitung nach /bin/systemctl start osa-dispatcher .serviceUmleitung nach /bin/systemctl start rhn-search.serviceCobblerd starten (über systemctl):[ OK ]Umleitung nach /bin/systemctl start taskomatic.serviceDone.[[ema il protected] ~]#User Spacewalk konfigurieren
Greifen Sie über den Browser http://192.168.1.20
auf die URL zuGeben Sie die Organisationsdetails ein.
Spacewalk wurde erfolgreich installiert.
Erstellung eines Spacewalk-Kanals
Klicken Sie auf Kanäle -> Softwarekanäle verwalten -> Kanal erstellen
Erstellen Sie einen übergeordneten Kanal -> centos6.8-parent
Jetzt müssen wir untergeordnete Kanäle erstellen
Kanäle -> Kanäle verwalten -> Kanal erstellen
Wählen Sie den übergeordneten Kanal als centos-6.8-parent aus
Jetzt erstellen wir das Repo für Centos 6.8
Verknüpfen des Repos mit dem untergeordneten Kanal, den wir zuvor erstellt haben
Sie müssen die gleichen Schritte für die Kanalerstellung in Centos 7 wiederholen.
Jetzt müssen wir die Pakete aus dem Repo herunterladen. Wir können dies über die Befehlszeile oder über das Dashboard tun.
Befehlszeile
[[email protected] ~]# spacewalk-repo-sync --list00:01:23 ======================================00:01:23 | Kanalbezeichnung | Repository |00:01:23 ====================================00:01:23 Centos-7-Kind | http://mirror.centos.org/centos/7.3.1611/os/x86_64/00:01:23 centos-6.8 | http://mirror.centos.org/centos/6.8/os/x86_64/00:01:23 centos-7 | Kein Repository festgelegt00:01:23 centos-6.8-parent | Kein Repository festgelegt[[email protected] ~]#[[email protected] ~]# spacewalk-repo-sync -c centos-6.800:02:18 ======================================00:02:18 | Kanal:centos-6.800:02:18 ====================================00:02 :18 Synchronisierung des Kanals gestartet.00:02:18 Repo-URL:http://mirror.centos.org/centos/6.8/os/x86_64/00:02:30 Pakete im Repo:669600:02:40 Pakete bereits synchronisiert :000:02:40 Zu synchronisierende Pakete:669600:02:40 1/6696 :389-ds-base-1.2.11.15-74.el6-0.x86_6400:02:43 2/6696 :389-ds-base- devel-1.2.11.15-74.el6-0.i68600:02:43 3/6696 :389-ds-base-devel-1.2.11.15-74.el6-0.x86_6400:02:44 4/6696 :389- ds-base-libs-1.2.11.15-74.el6-0.i68600:02:45 5/6696 :389-ds-base-libs-1.2.11.15-74.el6-0.x86_6400:02:46 6/ 6696 :ConsoleKit-0.4.1-6.el6-0.x86_6400:02:47 7/6696 :ConsoleKit-devel-0.4.1-6.el6-0.x86_64Sobald es fertig ist, sieht es so aus
[[email protected] ~]# spacewalk-repo-sync -c centos-6.808:44:57 ======================================08:44:57 | Kanal:centos-6.808:44:57 ====================================08:44 :57 Synchronisierung des Kanals gestartet.08:44:57 Repo-URL:http://mirror.centos.org/centos/6.8/os/x86_64/08:44:58 Pakete im Repo:669608:45:47 Keine neuen Pakete zu sync.08:45:47 Repo http://mirror.centos.org/centos/6.8/os/x86_64/ hat Comps-Datei comps.xml.08:45:47 Repo http://mirror.centos.org/ centos/6.8/os/x86_64/ hat 0 Errata.08:45:47 Synchronisierung des Kanals abgeschlossen in 0:00:49.08:45:47 Gesamtzeit:0:00:49[[email protected] ~]#Vom Webbrowser
Sie können auf dieser Seite auch die tägliche oder wöchentliche automatische Synchronisierung planen und auch nur die neuesten Pakete synchronisieren auswählen
Aktivierungsschlüssel für Centos 6- und Centos 7-Hosts zur Authentifizierung mit dem Spacewalk-Server erstellen
Gehen Sie zu Systeme -> Aktivierungsschlüssel -> Schlüssel erstellen
Jetzt müssen wir den Schlüssel für centos 6 erstellen, hier verwende ich den Schlüssel als centos-6 und wähle den übergeordneten Kanal, den ich zuvor erstellt habe, centos-6.8-parent
Machen Sie dasselbe für Centos 7
Sie sollten zwei Schlüssel sehen, einen für Centos 6 und einen für Centos 7
Client-Konfiguration
In diesem Kapitel zeige ich Ihnen, wie Sie Clients mit Spacewalk-Servern installieren und konfigurieren.
Cento6 - 192.168.1.21
Cento7 - 192.168.1.22
Konfigurieren Sie das Yum-Client-Repository
Cento 6
[[email protected] ~]# rpm -Uvh http://yum.spacewalkproject.org/2.6-client/RHEL/6/x86_64/spacewalk-client-repo-2.6-0.el6.noarch.rpmCento 7
[[email protected] ~]# rpm -Uvh http://yum.spacewalkproject.org/2.6-client/RHEL/7/x86_64/spacewalk-client-repo-2.6-0.el7.noarch.rpmBenötigte Pakete installieren.
Cento 6
Installieren Sie sowohl das Epel-Repo als auch die folgenden Pakete auf den Knoten centos6 und centos7.
Epel-Repo aktivieren
[[email protected] ~]# yum install epel-release -y[[email protected] ~]# yum install rhn-client-tools rhn-check rhn-setup rhnsd m2crypto yum-rhn-plugin osad rhncfg-actions rhncfg-management -yRegistrieren Sie sich bei Spacewalk Server
Bevor wir uns mit dem Spacewalk-Server verbinden, müssen wir das SSL-Zertifikat vom Spacewalk-Server herunterladen.
[[email protected] ~]# wget -O /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT http://spacewalk.sunil.cc/pub/RHN-ORG-TRUSTED-SSL- CERT--2017-03-04 21:54:16-- http://spacewalk.sunil.cc/pub/RHN-ORG-TRUSTED-SSL-CERTResolving spacewalk.sunil.cc... 192.168.1.20Connecting to spacewalk .sunil.cc|192.168.1.20|:80... verbunden.HTTP-Anfrage gesendet, wartet auf Antwort... 200 OKLänge:5291 (5,2K)Speichern unter:/usr/share/rhn/RHN-ORG-TRUSTED-SSL -CERT100%[=============================================================================================================>] 5.291 --.-K/s in 0s2017-03-04 21:54:17 (630 MB/s) - /usr/ share/rhn/RHN-ORG-TRUSTED-SSL-CERT gespeichert [5291/5291][[email protected] ~]#Jetzt müssen wir uns mit dem zuvor erstellten Aktivierungsschlüssel registrieren, wir haben 1-centos6 für centos6 und 1-centos7 für centos7 erstellt.
Cento 6
[[email protected] ~]# rhnreg_ks --force --activationkey="1-centos6" --serverUrl=http://spacewalk.sunil.cc/XMLRPC --sslCACert=/usr/share/rhn/ RHN-ORG-TRUSTED-SSL-CERT --profilename=$HOSTNAMECento 7
[[email protected] ~]# rhnreg_ks --force --activationkey="1-centos7" --serverUrl=http://spacewalk.sunil.cc/XMLRPC --sslCACert=/usr/share/rhn/ RHN-ORG-TRUSTED-SSL-CERT --profilename=$HOSTNAMESynchronisieren Sie das Profil mit Spacewalk und führen Sie es sowohl auf dem Centos6- als auch auf dem Centos7-Knoten aus.
[[email protected] ~]# rhn-profile-syncDies kann verwendet werden, um Remote-Befehle und Dateiübertragungen von Spacewalk auszuführen und eine der coolen Funktionen bei der Verwendung des Spacewalk-Servers.
[[email protected] ~]# chkconfig osad on[[email protected] ~]# service osad restartShutdown osad:[ OK ]Starting osad:[ OK ][[email protected] ~]# rhn-actions-control --enable-all[[email protected] ~]#[[email protected] ~]# systemctl enable osadSymlink von /etc/systemd/system/multi-user.target.wants/osad.service nach /usr/lib/systemd/system/osad.service erstellt.[[ email protected] ~]# systemctl restart osad[[email protected] ~]# rhn-actions-control --enable-all[[email protected] ~]#Jetzt können wir eine Profilsynchronisierung durchführen.
[[email protected] ~]# rhn-profile-syncUpdating package profile...Updated hardware profile...[[email protected] ~]# [[email protected] ~]# rhn-profile-syncUpdating package profile ... Hardwareprofil wird aktualisiert...[[email protected] ~]#Jetzt können Sie dasselbe auf dem Spacewalk-Dashboard überprüfen.
Ausführen von Remote-Befehlen und Verwalten von Dateien über Spacewalk.
In diesem Kapitel werden wir sehen, wie leistungsfähig Spacewalk ist, wenn es darum geht, Fernbefehle auszuführen und Konfigurationsdateien zu verwalten.
Um Remote-Befehle auszuführen, melden Sie sich beim Spacewalk-Dashboard an und suchen Sie nach dem Host, auf dem wir den Remote-Befehl ausführen müssen.
Klicken Sie auf Remote-Befehl und geben Sie die Befehle ein, die Sie ausführen müssen.
Nach der Planung können Sie zur Registerkarte "Geplant" gehen und den Status überprüfen.
Klicken Sie auf den Host, um die Ergebnisse anzuzeigen.
Ausführen von Remote-Befehlen von Spacewalk.
Wir müssen spacecmd installieren, um Remote-Befehle auszuführen.
[[email protected] ~]# yum install spacecmd -yWir werden das System zuerst mit ssm hinzufügen und bevor Sie sich anmelden können, können Sie die gleichen Anmeldeinformationen wie das Frontend verwenden.
[[email protected] ~]# spacecmdWillkommen bei spacecmd, einer Befehlszeilenschnittstelle für Spacewalk. Geben Sie Folgendes ein:'help' für eine Liste von Befehlen 'help ' für befehlsspezifische Hilfe 'quit' zum Beenden von Spacewalk Benutzername:administratorSpacewalk-Passwort :INFO:Verbunden mit https://spacewalk.sunil.cc/rpc/api als administratorspacecmd {SSM:0}> system_listcentos6.sunil.cccentos7.sunil.cccentos7test.sunil.ccspacecmd {SSM:0}> ssm_add centos6.sunil. ccspacecmd {SSM:1}> ssm_listcentos6.sunil.ccspacecmd {SSM:1}> beendenErstellen Sie ein Skript mit einem beliebigen Namen, hier habe ich es ff.sh genannt.
[[email protected] ~]# cat ff.sh#!/bin/bashcat /etc/redhat-release[[email protected] ~]#Führen Sie nun den Remote-Befehl aus.
[[email protected] ~]# spacecmd -y system_runscript "ssm -f ff.sh"INFO:Verbunden mit https://spacewalk.sunil.cc/rpc/api als AdministratorBenutzer:rootGroup:rootTimeout:600 SekundenStartzeit :20170305T12:16:17pSkriptinhalt---------------#!/bin/bashcat /etc/redhat-releaseSystems-------centos6.sunil.ccINFO:Aktions-ID:33INFO:Geplant:1 System(e)[[email protected] ~]#Um die Ausgabe zu überprüfen, können Sie den folgenden Befehl ausführen.
[[email protected] ~]# spacecmd schedule_getoutput 33INFO:Verbunden mit https://spacewalk.sunil.cc/rpc/api als AdministratorSystem:centos6.sunil.ccStartzeit:20170305T12:16:19Endzeit:20170305T12:16 :19Rückgabecode:0Ausgabe------CentOS Version 6.8 (endgültig)[[email protected] ~]#Fehlerbehebung
Falls Sie sehen, dass sich die Befehle für längere Zeit im Status „Ausstehend“ befinden, können Sie die folgenden Schritte ausführen, um dieses Problem zu beheben.
Stellen Sie sicher, dass osa-dispatcher auf dem Spacewalk-Server läuft.
[[email protected] ~]# systemctl status osa-dispatcher? osa-dispatcher.service - OSA-Dispatcher-Daemon Geladen:geladen (/usr/lib/systemd/system/osa-dispatcher.service; aktiviert; Herstellervoreinstellung:deaktiviert) Aktiv:aktiv (läuft) seit Sun 2017-03-05 09:59:55 MEZ; vor 2h 21min Prozess:3470 ExecStart=/usr/sbin/osa-dispatcher --pid-file /var/run/osa-dispatcher.pid (code=exited, status=0/SUCCESS) Prozess:3469 ExecStartPre=/bin/ rm -f /var/run/osa-dispatcher.pid (code=exited, status=0/SUCCESS) Haupt-PID:3474 (osa-dispatcher) CGroup:/system.slice/osa-dispatcher.service ??3474 /usr /bin/python -s /usr/sbin/osa-dispatcher --pid-file /var/run/osa-dispatcher.pidMär 05 09:59:55 spacewalk.sunil.cc systemd[1]:Starten des OSA-Dispatcher-Daemons. ..Mär 05 09:59:55 spacewalk.sunil.cc systemd[1]:PID-Datei /var/run/osa-dispatcher.pid nach dem Start (noch?) nicht lesbar.Mär 05 09:59:55 spacewalk.sunil .cc systemd[1]:OSA Dispatcher-Daemon gestartet.[[email protected] ~]#Falls er nicht läuft, starten Sie bitte den Spacewalk-Dienst neu.
[[email protected] ~]# spacewalk-service restartStellen Sie sicher, dass der Firewall-Port für 5222 geöffnet ist.
Bitte führen Sie die folgenden Schritte auf der Client-Seite durch.
[[email protected] ~]# systemctl stop osad [[email protected] ~]# rm -rf /etc/sysconfig/rhn/osad-auth.conf [[email protected] ~]# rhn_check -vvv[[ email protected] ~]# systemctl start osad[[email protected] ~]# systemctl status osad? osad.service - OSAD-Daemon Geladen:geladen (/usr/lib/systemd/system/osad.service; aktiviert; Herstellervoreinstellung:deaktiviert) Aktiv:aktiv (läuft) seit Sun 2017-03-05 13:54:46 CET; Vor 26 Sekunden Prozess:18696 ExecStart=/usr/sbin/osad --pid-file /var/run/osad.pid (code=exited, status=0/SUCCESS) Haupt-PID:18697 (osad) CGroup:/system.slice /osad.service ??18697 /usr/bin/python -s /usr/sbin/osad --pid-file /var/run/osad.pidMar 05 13:54:46 centos7test.sunil.cc systemd[1]:Starten des OSAD-Dämons...Mär 05 13:54:46 centos7test.sunil.cc systemd[1]:PID-Datei /var/run/osad.pid nach dem Start (noch?) nicht lesbar.Mär 05 13:54:46 centos7test .sunil.cc systemd[1]:OSAD-Daemon gestartet.[[email protected] ~]# netstat -aunltp|grep 5222tcp 1698 0 192.168.1.23:48127 192.168.1.20:5222 ESTABLISHED 18697/python[[email protected] ~] #Datei über Spacewalk bereitstellen.
In diesem Beispiel werde ich das motd des Centos 6-Servers ändern.
Ich werde zuerst einen Konfigurationskanal erstellen.
Erstellen einer Datei mit dem folgenden Inhalt.
Jetzt müssen wir den Channel abonnieren, auf welchem Server er bereitgestellt werden soll.
Die Datei kann vom Client gezogen werden.
[[email protected] ~]# rhncfg-client channelsUsing server name spacewalk.sunil.ccConfig channels:Label Name----- ----motd-change motd[[email protected] ~]#[[email protected] ~]# rhncfg-client getUsing server name spacewalk.sunil.ccDeploying /etc/motd[[email protected] ~]#[[email protected] ~]# ls -l /etc/motd-rw-r--r -- 1 root root 760 5. März 14:29 /etc/motd[[email protected] ~]# cat /etc/motd*********************** *********************************************** ** Das System ist nur für die Verwendung durch autorisierte Benutzer bestimmt. Die Nutzung ** dieses Systems kann von Systempersonal überwacht und aufgezeichnet werden. ** ** Jeder, der dieses System verwendet, stimmt einer solchen Überwachung ausdrücklich zu ** und wird darauf hingewiesen, dass, wenn eine solche Überwachung mögliche ** Beweise für kriminelle Aktivitäten aufdeckt, das Systempersonal die ** Beweise aus einer solchen Überwachung den Strafverfolgungsbeamten zur Verfügung stellen kann. ****************************************************** *********************[[E-Mail geschützt] ~]#