Oracle Linux Manager 2.10: Erster Eindruck

Nach der Einstellung des Spacewalk-Projekts durch Red Hat im Mai 2020 entschied sich neben SUSE auch Oracle für einen Fork der quelloffenen System Management-Software.

Übersicht

Oracle bietet aktuell zwei Werkzeuge zur Pflege von Oracle Linux:

  • Oracle Linux Management for Oracle Enterprise Manager
  • Oracle Linux Manager

Oracle Enterprise Manager ist eigentlich ein Management-Tool für Oracle-Datenbanken und damit verbundenen Komponenten. Seit einiger Zeit lassen sich jedoch auch Oracle Linux-Installationen damit verwalten.

Oracle Linux Manager ist der herstellereigene Fork des eingestellten Spacewalk-Projekts. Vorher war das Tool auch unter dem Namen "Spacewalk for Oracle Linux" bzw. "Oracle Spacewalk" bekannt.

Anforderungen

Zum Betrieb von Oracle Linux Manager müssen folgende Anforderungen gegeben sein:

  • Oracle Linux 7 mit Minimal- oder Basic Server-Profil
  • Installierte Oracle Database 12c oder 19c
    • Die Express Edition (XE) wird nicht unterstützt
  • Es darf keine ULN-Registrierung vorgenommen werden
  • Mindestens 10 GB Arbeitsspeicher für die Applikation
    • 8 GB für die Applikation
    • 2 GB für die Datenbank
  • 60 GB Speicherplatz für jedes Oracle Linux-Release
    • +20 GB für kSplice-Updates (optional)
    • +40 GB für Quellcode-Pakete (optional)

Laut Dokumentation soll der Einsatz von PostgreSQL technisch möglich sein, wird aber nicht vom Support abgedeckt. Meine Installation war jedoch nicht zu einer Zusammenarbeit zu motivieren.

Vorbereitung

Nach der Installation von Oracle Linux 7 empfiehlt es sich alle verfügbaren Updates einzuspielen und eine problematische Abhängigkeit zu entfernen:

1# yum update
2# yum remove jta

Wichtig ist auch, dass Hostname und FQDN des Systems auflösbar sind. Entweder per DNS oder Eintrag in der /etc/hosts:

1127.0.0.1   oracle7.shittyrobots.loc oracle7
Note

Dieser Schritt ist wichtig, da ansonsten die Datenbank nicht initialisiert werden kann!

Datenbank-Installation

Oracle Database kann auf der Webseite des Herstellers heruntergeladen werden. Hierzu sind bitte noch die Lizenzbedingungen zu klären bzw. eine korrekte Lizenzierung muss sichergestellt werden. Das ist jedoch ein eigenes Thema für sich und würde den Rahmen dieses Artikels sprengen..

In meinem Fall reichte es die heruntergeladene RPM-Datei mit einigen Abhängigkeiten zu installieren:

1# yum install oracle-database-preinstall-19c
2# yum localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm

Das Pre-Install-Paket bereitet das System für den Betrieb der Datenbank vor - so werden z. B. Benutzer und Gruppen erstellt und Kernelparameter angepasst.

Anschließend wird die Datenbank wie folgt initialisiert:

1# /etc/init.d/oracledb_ORCLCDB-19c configure

Nach einigen Minuten sollte die Datenbank einsatzbereit sein. In der Datei /etc/oratab sollte eine Instanz mit der SID (System ID) ORCLPDB1 zu finden sein:

1...
2ORCLCDB:/opt/oracle/product/19c/dbhome_1:N

Auch sollte der TNS-Listener (Transparent Network Substrate) auf dem TCP-Port 1521 lauschen:

1# ss -tulpen|grep 1521
2tcp LISTEN 0 128 0.0.0.0:1521 0.0.0.0:* users:(("tnslsnr",pid=9028,fd=8)) uid:54321 ino:61311 sk:c <->

Der Oracle Linux Manager-Datenbanknutzer wird mit den folgenden Kommandos erstellt:

 1# su - oracle
 2$ export ORACLE_SID=ORCLCDB
 3$ export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
 4$ cd $ORACLE_HOME
 5$ $ORACLE_HOME/bin/sqlplus / as SYSDBA
 6
 7SQL*Plus: Release 19.0.0.0.0 - Production on Thu Apr 29 09:25:40 2021
 8Version 19.3.0.0.0
 9
10Copyright (c) 1982, 2019, Oracle.  All rights reserved.
11
12Connected to:
13Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
14Version 19.3.0.0.0
15
16SQL> create user c##olm_user identified by olm_passwd;
17SQL> grant connect,resource to c##olm_user;
18SQL> grant alter session, create synonym, create table, create trigger, create view to c##olm_user;
19SQL> grant unlimited tablespace to c##olm_user;
20SQL> quit
Note

olm_passwd ist durch ein entsprechendes Kennwort zu ersetzen

Manager-Installation

Falls die Datenbank auf einem dedizierten System ausgeführt wird, gilt es zuerst den Oracle Instant Client für die Anbindung der Datenbank zu installieren. Diesen gibt es ebenfalls auf der Hersteller-Webseite. Unbedingt die korrekte Version je nach Datenbank verwenden (19.x in diesem Beispiel). Die nachinstallierten Bibliotheken müssen noch in den Zwischenspeicher aufgenommen werden:

1# yum localinstall oracle-instantclient18.5-basic-18.5.0.0.0-3.x86_64.rpm
2# echo "/usr/lib/oracle/19.11/client64/lib" | sudo tee /etc/ld.so.conf.d/oracle-instantclient18.5.conf
3# ldconfig

Die Initialisierung bzw. eigentliche Installation von Oracle Linux Manager wird im Nachgang mit dem Parameter --external-oracle gestartet - auch wenn die Datenbank auf dem gleichen Host ausgeführt wird:

 1# spacewalk-setup --external-oracle
 2* Setting up SELinux..
 3* Setting up Oracle environment.
 4* Setting up database.
 5** Database: Setting up database connection for Oracle backend.
 6Global Database Name or SID (requires tnsnames.ora)? ORCLCDB
 7Username? olm_user
 8Password?
 9** Database: Testing database connection.
10** Database: Populating database.
11*** Progress: #############################################
12* Configuring tomcat.
13* Setting up users and groups.
14** GPG: Initializing GPG and importing key.
15** GPG: Creating /root/.gnupg directory
16You must enter an email address.
17Admin Email Address? root@localhost
18* Performing initial configuration.
19** Package installation: Locking required rpm versions.
20* Configuring apache SSL virtual host.
21Should setup configure apache's default ssl server for you (saves original ssl.conf) [Y]?  
22** /etc/httpd/conf.d/ssl.conf has been backed up to ssl.conf-swsave
23* Configuring jabberd.
24* Creating SSL certificates.
25CA certificate password?
26Re-enter CA certificate password?
27Cname alias of the machine (comma seperated)? oracle7.shittyrobots.loc,oracle7
28Organization? Homelab
29Organization Unit [oracle7.shittyrobots.loc]?
30Email Address [root@localhost]?
31City? Berlin
32State? Berlin
33Country code (Examples: "US", "JP", "IN", or type "?" to see a list)? DE
34** SSL: Generating CA certificate.
35** SSL: Deploying CA certificate.
36** SSL: Generating server certificate.
37** SSL: Storing SSL certificates.
38* Deploying configuration files.
39* Update configuration in database.
40* Setting up Cobbler..
41Cobbler requires tftp and xinetd services be turned on for PXE provisioning functionality. Enable these services [Y]?
42* Restarting services.
43Installation complete.
44Visit https://oracle7.shittyroboty.loc to create the Spacewalk administrator account.

Anschließend kann die Web-Oberfläche via https eingesehen werden - der erste Schritt besteht darin, die erste Organisation inklusive Administrator-Konto zu erstellen:

Erstellen der ersten Organisation

Erster Eindruck

Das Produkt entspricht im Wesentlichen ziemlich genau Spacewalk in der letzten erschienenen Version 2.10, was auch unschwer am Produktnamen erkennbar ist. Frühere Versionen hießen noch "Spacewalk for Oracle Linux" und unterstützten PostgreSQL und Oracle Database XE.

Durch den Fork liegt die Weiterentwicklung gänzlich in der Verantwortung Oracles, einen Austausch mit dem vor allem durch SUSE unterstützten Spacewalk-Fork Uyuni findet nicht statt.

Einige Screenshots des Tools:

Pflegen von Oracle-Paketen

Prinzipiell gibt es zwei Möglichkeiten Oracle-Updates zu beziehen:

  • ULN (Unbreakable Linux Network) - Oracle-Kundenbreich, erfordert einen gültigen CSI (Customer Support Identifier, nur über Wartungsvertrag)
  • Oracle Yum - Öffentliche Update-Server für Oracle Linux

Für das ULN muss die Konfigurationsdatei /etc/rhn/spacewalk-repo-sync/uln.conf erstellt bzw. angepasst werden:

1# cat /etc/rhn/spacewalk-repo-sync/uln.conf
2[main]
3username=sso_username
4password=sso_password
5
6# chmod 400 /etc/rhn/spacewalk-repo-sync/uln.conf

Anschließend können die einzelnen Repositories über die Web-Oberfläche, spacecmd oder spacewalk-common-channels ausgewählt werden.

Die öffentlichen Repositories können über spacewalk-common-channels geklont werden:

1# spacewalk-common-channels -u admin 'oraclelinux7' -a x86_64
2# spacewalk-common-channels -u admin 'oraclelinux7-oraclelinuxmanager210-client' -a x86_64

Abschließend können die jeweiligen Pakete mit spacewalk-repo-sync synchronisert werden:

1# spacewalk-repo-sync -c oraclelinux7-x86_64
2# spacewalk-repo-sync -c oraclelinux7-x86_64-oraclelinuxmanager210-client
Note

Die genauen Repository-Namen können über spacewalk-repo-sync -l ausgelesen werden

Fazit

Derzeit ist Oracle Linux Manager einfach nur die letzte Spacewalk-Version mit ergänztem AppStream-Support und ausgetauschtem Logo. Es gibt keine ersichtliche Innovation oder Modernisierung, wie beispielsweise bei Uyuni. Insbesondere ein fehlendes modernes Configuration Management lässt das Tool alt aussehen - hier ist die Konkurrenz (Uyuni, Foreman) bedeutend besser.

Ich bin gespannt, ob und wie das Produkt weiterentwickelt wird. Im entsprechenden GitHub-Repository ist derzeit noch nicht viel Aktivität verzeichnet und im Zusammenhang mit Open Source ist Oracle bisher nicht sonderlich offenkundig aufgetreten..

Übersetzungen: