Installing Spacewalk to manage Oracle Linux
By Avi Miller-Oracle on Apr 29, 2013
Spacewalk is a popular Linux management tool that can be used to manage several operating systems, including the Red Hat Enterprise Linux derivatives like CentOS and Scientific Linux, Debian and even Solaris.
While the Spacewalk installation instructions are very thorough, here is a brief guide to installing Spacewalk on Oracle Linux 6. It is possible to install on Oracle Linux 5, but it requires a lot more manual intervention as the Unbreakable Linux Network packages installed on Oracle Linux 5 conflict with some Spacewalk packages. You should use both the Spacewalk installation instructions in combination with this guide to install Spacewalk.
This guide assumes that you are familiar with the Oracle Linux 6 installation process, as well as basic system administration tasks, including registering with the Unbreakable Linux Network (ULN) or configuring YUM to use public-yum.oracle.com. The Oracle Linux 6 Administrator's Solutions Guide provides more information on these tasks.
Oracle Linux 6 Installation
This guide uses Oracle Linux 6.4 (x86_64). Download Oracle Linux 6.4 from the Oracle Software Delivery Cloud or one of the mirrors. You can choose either to do a "Basic Server" install, or a "Minimal" install. I recommend performing a "Basic Server" install as this provides basic system administration tools. If you are using a previous version of Oracle Linux 6, please ensure it is either registered with the Unbreakable Linux Network or is configured to use public-yum.oracle.com for updates.
You should assign both a fixed hostname as well as a fixed IP address for your Spacewalk server. The hostname should be resolvable via DNS on your network.
Binary packages of Spacewalk are available through YUM repositories at http://yum.spacewalkproject.org/. To use this repository, install the spacewalk-repo package with commands below:
# rpm -Uvh http://yum.spacewalkproject.org/1.9/RHEL/6/x86_64/spacewalk-repo-1.9-1.el6.noarch.rpm
Additional repositories and packages
For Spacewalk on Oracle Linux 6, additional dependencies are needed from JPackage. Please configure the following yum repository before beginning your Spacewalk installation:
cat > /etc/yum.repos.d/jpackage-generic.repo << EOF [jpackage-generic] name=JPackage generic #baseurl=http://mirrors.dotsrc.org/pub/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 EOF
We specifically want the 5.0 generic directory in the above URL.
Spacewalk requires additional dependencies from the Enterprise Packages for Enterprise Linux (EPEL) repository. To enable this repository run the following command:
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
Spacewalk supports either Oracle Database 10g or higher or PostgreSQL 8.4 or higher to store its primary data. While Oracle Database XE is supported by Spacewalk, it is not supported by Oracle. Therefore, we recommend either using an existing Oracle Database Standard or Enterprise Edition server or using PostgreSQL.
Oracle Database Setup
Installation of an Oracle Database server is outside the scope of this walk-through. We assume you have an existing Oracle Database server installed and available. The spacewalk user needs to have the CONNECT and RESOURCE roles as well as the ALTER SESSION, CREATE SYNONYM,CREATE TABLE and CREATE VIEW system privileges.
You will also need to make the following code change on your Spacewalk server, after you have installed the Spacewalk software:
# diff -u /etc/sysconfig/rhn/oracle/main.sql-20110504 /etc/sysconfig/rhn/oracle/main.sql --- main.sql-20110504 2011-04-08 21:40:53.000000000 +0200 +++ main.sql 2011-05-04 14:20:24.000000000 +0200 @@ -38940,6 +38940,12 @@ -- Source: data/common/rhnPackageSyncBlacklist.sql + +select lookup_package_name('gpg-pubkey') from dual; + +select lookup_package_name('rhns-ca-cert') from dual; + +select lookup_package_name('rhn-org-trusted-ssl-cert') from dual; insert into rhnPackageSyncBlacklist (package_name_id) values (lookup_package_name('gpg-pubkey'));
Without this change, the Spacewalk installation fails with the following error in /var/log/rhn/populate_db.log:
ORA-02291: integrity constraint (SPACEWALK.RHN_PACKAGESYNCBL_PNID_FK) violated - parent key not found
The Oracle Instant Client packages can be installed from ULN by subscribing to the Oracle Software channel and running the following command:
# yum install oracle-instantclient11.2-basic oracle-instantclient11.2-sqlplus
If you are not subscribed to ULN, you can download the Oracle Instant Client RPMs from the Oracle Technology Network and install them manually.
Once the Oracle Instant Client has been installed, you need to add the library path to ldconfig:
# echo /usr/lib/oracle/11.2/client64/lib > /etc/ld.so.conf.d/oracle-instantclient11.2-basic.conf # ldconfig
If you want to use the PostgreSQL embedded backend on the same server as Spacewalk:
# yum install spacewalk-setup-embedded-postgresql # yum install spacewalk-postgresql
If you want to use an Oracle Database backend:
# yum install spacewalk-oracle
The rest of this guide uses an Oracle Database backend. Don't forget to make the code change listed under Oracle Database Setup before continuing!
The Spacewalk binary packages are missing a dependency on the geronimo-jta-1.1-api RPM, so install it manually:
# yum install geronimo-jta-1.1-api
Your Spacewalk server should have a resolvable FQDN such as 'hostname.domain.com'. If the installer complains that the hostname is not the FQDN, do not use the --skip-fqdn-test flag to skip.
If you installed spacewalk-setup-embedded-postgresql above, run
# spacewalk-setup --disconnected
If you set up the database server manually (either on the same or on a different machine), run
# spacewalk-setup --disconnected --external-db
A sample interactive install:
# spacewalk-setup --disconnected --external-db * Setting up Oracle environment. * Setting up database. ** Database: Setting up database connection for Oracle backend. Database service name (SID)? orcl.domain.com Database hostname [localhost]? spacewalk-db.domain.com Username? spacewalk Password? ** Database: Testing database connection. ** Database: Populating database. *** Progress: ############################################################ * 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? firstname.lastname@example.org * Performing initial configuration. * Activating Spacewalk. ** Loading Spacewalk Certificate. ** Verifying certificate locally. ** Activating Spacewalk. * Enabling Monitoring. * 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 tomcat. ** /etc/sysconfig//tomcat6 has been backed up to tomcat6-swsave ** /etc/tomcat6//server.xml has been backed up to server.xml-swsave ** /etc/tomcat6//web.xml has been backed up to web.xml-swsave * Configuring jabberd. * Creating SSL certificates. CA certificate password? Re-enter CA certificate password? Organization? Oracle Demo Organization Unit [spacewalk.domain.com]? Email Address [email@example.com]? City? Redwood Shores State? CA Country code (Examples: "US", "JP", "IN", or type "?" to see a list)? US ** 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.. Processing /etc/cobbler/modules.conf `/etc/cobbler/modules.conf' -> `/etc/cobbler/modules.conf-swsave' Processing /etc/cobbler/settings `/etc/cobbler/settings' -> `/etc/cobbler/settings-swsave' cobblerd does not appear to be running/accessible Cobbler requires tftp and xinetd services be turned on for PXE provisioning functionality. Enable these services [Y]? cobblerd does not appear to be running/accessible * Restarting services. Installation complete. Visit https://spacewalk.domain.com to create the Spacewalk administrator account.
Oracle Linux YUM Repositories
The following channels on public-yum.oracle.com contain errata information that can be ingested by Spacewalk:
Each repository stores ALL packages released since the first Generally Available (GA) release of each version. This means the storage requirements for each of these repositories is between 20GB-30GB each. Care should be taken to ensure you have enough disk space to mirror each repository.
Adding the Oracle Linux 6 (x86_64) Latest channel
Goto Channels -> Manage Software Channels -> Manage Repositories. Click "create new repository" and provide the following configuration:
- Repository Label: External yum repo - Oracle Linux 6 (x86_64)
- Repository URL: http://public-yum.oracle.com/repo/OracleLinux/OL6/latest/x86_64/
Then click "create repository".
After creating the repository, you need to link it to one or more Software Channels. Goto: Channels -> Manage Software Channels. Click "create new channel" and provide the following configuration:
- Channel Name: Oracle Linux 6 (x86_64)
- Channel Label: oraclelinux6-x86_64
- Architecture: x86_64
- Yum Repository Checksum Type: sha256
- Channel Summary: Oracle Linux 6 (x86_64)