Oracle Linux Manager 2.10: First impressions
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".
Requirements
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.
Preparation
After installing Oracle Linux 7 it is basically a good idea to install all available updates and remove a problematic dependency:
1# yum update
2# 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:
1127.0.0.1 oracle7.shittyrobots.loc oracle7
This step is important because the database can't be initialized otherwise!
Database installation
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:
1# yum install oracle-database-preinstall-19c
2# 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:
1# /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:
1...
2ORCLCDB:/opt/oracle/product/19c/dbhome_1:N
Also the TNS listener (Transparent Network Substrate) should listen on TCP port 1521:
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 <->
The Oracle Linux Manager database user is created using the following commands:
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
olm_passwd
needs to be replaced with a more secure password
Manager installation
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:
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
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:
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.
Afterwards the web interface can be accessed using https - the first step is to create the first organization including an administrator account:
First impressions
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:
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
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
:
1# spacewalk-common-channels -u admin 'oraclelinux7' -a x86_64
2# spacewalk-common-channels -u admin 'oraclelinux7-oraclelinuxmanager210-client' -a x86_64
Finally you can synchronize the packages using the spacewalk-repo-sync
command:
1# spacewalk-repo-sync -c oraclelinux7-x86_64
2# spacewalk-repo-sync -c oraclelinux7-x86_64-oraclelinuxmanager210-client
The particular repository names can be retrieved by running spacewalk-repo-sync -l
Conclusion
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..