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.
Oracle currently offers two tools for managing Oracle Linux:
- Oracle Linux Management for Oracle Enterprise Manager
- Oracle Linux Manager
Oracle Enterprise Manager is mainly a tool for managing Oracle databases and components relevant to it. For some time this tool also support managing Oracle Linux installations.
Oracle Linux Manager is the manufacturer’s own fork of the orphaned Spacewalk fork. Previously the tool was also known as “Spacewalk for Oracle Linux” or “Oracle Spacewalk“.
In order to run Oracle Linux Manager the following requirements need to be met:
- Oracle Linux 7 with Minimal oder Basic Server profile
- Installed Oracle Database 12c or 19c
- The Express Edition (XE) is not supported
- You must not register the system via ULN werden
- At least 10 GB memory
- 8 GB for the application
- 2 GB for the database
- 60 GB storage for every Oracle Linux release
- +20 GB for kSplice updates (optional)
- +40 GB for source code packages (optional)
In accordance with the documentation, using PostgreSQL should be possible as well even though it is not supported. Anyhow, I was not able to get it running in my installation.
After installing Oracle Linux 7 it is basically a good idea to install all available updates and remove a problematic dependency:
# yum update # yum remove jta
It is also important that both the system hostname and FQDN can be resolved – e.g. using DNS or managing the /etc/hosts file:
127.0.0.1 oracle7.shittyrobots.loc oracle7
Oracle Database can be downloaded from the manufacturer website. Keep in mind that you will need to check license agreements and ensure correct licensing. But that’s a different topic that would go way beyond the focus of this article..
In my case it was sufficient to install the downloaded RPM file with some dependencies:
# yum install oracle-database-preinstall-19c # yum localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
The pre-install package prepares the system for running the database – e.g. it creates users and groups and sets kernel parameters.
Afterwards the database is initialized as following:
# /etc/init.d/oracledb_ORCLCDB-19c configure
After a couple of minutes the database should be ready. You should be able to see an instance with the SID (System ID) ORCLPDB1 in the file /etc/oratab:
Also the TNS listener (Transparent Network Substrate) should listen on TCP port 1521:
# ss -tulpen|grep 1521 tcp LISTEN 0 128 0.0.0.0:1521 0.0.0.0:* users:(("tnslsnr",pid=9028,fd=8)) uid:54321 ino:61311 sk:c <->
The Oracle Linux Manager database user is created using the following commands:
# su - oracle $ export ORACLE_SID=ORCLCDB $ export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 $ cd $ORACLE_HOME $ $ORACLE_HOME/bin/sqlplus / as SYSDBA SQL*Plus: Release 126.96.36.199.0 - Production on Thu Apr 29 09:25:40 2021 Version 188.8.131.52.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 184.108.40.206.0 - Production Version 220.127.116.11.0 SQL> create user c##olm_user identified by olm_passwd; SQL> grant connect,resource to c##olm_user; SQL> grant alter session, create synonym, create table, create trigger, create view to c##olm_user; SQL> grant unlimited tablespace to c##olm_user; SQL> quit
If the database is running on a dedicated system, make sure to install Oracle Instant Client for connecting to the database. This package can also be downloaded from the manufacturer website. Ensure to install the correct database version (19.x in this example). The clients also installs some libraries that need to be added to the cache:
# yum localinstall oracle-instantclient19.11-basic-18.104.22.168.0-1.x86_64.rpm # echo "/usr/lib/oracle/19.11/client64/lib" | sudo tee /etc/ld.so.conf.d/oracle-instantclient18.5.conf # ldconfig
Initalizing Oracle Linux Manager afterwards is done by starting the installation with the –external-oracle parameter – even though the database is running on the same host:
# spacewalk-setup --external-oracle * Setting up SELinux.. * Setting up Oracle environment. * Setting up database. ** Database: Setting up database connection for Oracle backend. Global Database Name or SID (requires tnsnames.ora)? ORCLCDB Username? olm_user Password? ** Database: Testing database connection. ** Database: Populating database. *** Progress: ############################################# * Configuring tomcat. * Setting up users and groups. ** GPG: Initializing GPG and importing key. ** GPG: Creating /root/.gnupg directory You must enter an email address. Admin Email Address? root@localhost * Performing initial configuration. ** Package installation: Locking required rpm versions. * Configuring apache SSL virtual host. Should setup configure apache's default ssl server for you (saves original ssl.conf) [Y]? ** /etc/httpd/conf.d/ssl.conf has been backed up to ssl.conf-swsave * Configuring jabberd. * Creating SSL certificates. CA certificate password? Re-enter CA certificate password? Cname alias of the machine (comma seperated)? oracle7.shittyrobots.loc,oracle7 Organization? Homelab Organization Unit [oracle7.shittyrobots.loc]? Email Address [root@localhost]? City? Berlin State? Berlin Country code (Examples: "US", "JP", "IN", or type "?" to see a list)? DE ** SSL: Generating CA certificate. ** SSL: Deploying CA certificate. ** SSL: Generating server certificate. ** SSL: Storing SSL certificates. * Deploying configuration files. * Update configuration in database. * Setting up Cobbler.. Cobbler requires tftp and xinetd services be turned on for PXE provisioning functionality. Enable these services [Y]? * Restarting services. Installation complete. Visit https://oracle7.shittyroboty.loc to create the Spacewalk administrator account.
Afterwards the web interface can be accessed using https – the first step is to create the first organization including an administrator account:
Currently, the product looks exactly like the Spacewalk in the last version 2.10 as you can see from the product name. Earlier versions were named “Spacewalk for Oracle Linux” and supported PostgreSQL and Oracle Database XE.
By forking Spacewalk, development is completely driven by Oracle – there is no exchange with SUSE’s Spacewalk fork Uyuni.
Some screenshots of the tool:
Managing Oracle packages
Basically there are two options to obtain Oracle updates:
- ULN (Unbreakable Linux Network) – Oracle customer area, requires a valid CSI (Customer Support Identifier, requires a maintenance agreement)
- Oracle Yum – public Update servers for Oracle Linux
For ULN you will need to create or adjust the file /etc/rhn/spacewalk-repo-sync/uln.conf:
# cat /etc/rhn/spacewalk-repo-sync/uln.conf [main] username=sso_username password=sso_password # chmod 400 /etc/rhn/spacewalk-repo-sync/uln.conf
Afterwards, the particular repositories can be selected using the web interface, spacecmd or spacewalk-common-channels.
Public repositories can be cloned using spacewalk-common-channels:
# spacewalk-common-channels -u admin 'oraclelinux7' -a x86_64 # spacewalk-common-channels -u admin 'oraclelinux7-oraclelinuxmanager210-client' -a x86_64
Finally you can synchronize the packages using the spacewalk-repo-sync command:
# spacewalk-repo-sync -c oraclelinux7-x86_64 # spacewalk-repo-sync -c oraclelinux7-x86_64-oraclelinuxmanager210-client
Currently, Oracle Linux Manager is just the latest Spacewalk version with added AppStream support and replaced logo. There is no visible innovation or modernization like for Uyuni. Especially a missing modern Configuration Management makes the tool look outdated – competitors (Uyuni, Foreman) are performing way better here.
I’m curious how the product will transform in the future. The appropriate GitHub repository does not show much activity right know – also, Oracle is not very famous for investing heavily in open-source..