In the following sections find information about Red Hat, CentOS, and Ubuntu clients.
The following sections provide guidance on managing Red Hat Expanded Support clients, this includes Salt minions and traditional systems.
This section provides guidance on server configuration for Red Hat Enterprise Linux Channels provided by SUSE.
Minimum of 8 GB RAM and at least two physical or virtual CPUs. Taskomatic will use one of these CPUs.
Taskomatic requires of minimum of 3072 MB RAM. This should be set in /etc/rhn/rhn.conf
:
taskomatic.java.maxmemory=3072
Provision enough disk space. /var/spacewalk
contains all mirrored RPMs. For example, Red Hat Enterprise Linux 6 x86_64 channels require 90 GB and more.
LVM or an NFS mount is recommended.
Access to RHEL 5/6/7 Subscription Media.
Access to Red Hat base media repositories and RHEL installation media is the responsibility of the user. Ensure that all your RHEL systems obtain support from RHEL or all your RHEL systems obtain support from SUSE. If you do not follow these practices you may violate terms with Red Hat.
This section provides tips on Red Hat Enterprise Linux channel management.
The base parent distribution Red Hat Enterprise Linux channel per architecture contains zero packages. No base media is provided by SUSE. The RHEL media or installation ISOs should be added as child channels of the Red Hat Enterprise Linux parent channel.
The Red Hat Enterprise Linux and tools channels are provided by SUSE Customer Center (SCC) using mgr-sync
.
It can take up to 24 hours for an initial channel synchronization to complete.
When you have completed the initial synchronization process of any Red Hat Enterprise Linux channel it is recommended to clone the channel before working with it. This provides you with a backup of the original synchronization.
The following procedure guides you through setup of the RHEL media as a SUSE Manager channel. All packages on the RHEL media will be mirrored into a child channel located under RES 5/6/7 distribution per architecture.
Create a new Channel by log in to the Web UI and selecting
› › .Fill in basic channel details and add the channel as a child to the corresponding RES 5/6/7 distribution channel per architecture from SCC. The base parent channel should contain zero packages.
Modify the RES 5/6/7 activation key to include this new child channel.
As root on the SUSE Manager command line copy the ISO to the /tmp
directory.
Create a directory to contain the media content:
{prompt.root}mkdir -p /srv/www/htdocs/pub/rhel
Mount the ISO:
{prompt.root}mount -o loop /tmp/name_of_iso /srv/www/htdocs/pub/rhel
Start spacewalk-repo-sync
to synchronize Red Hat Enterprise Linux 7 packages:
{prompt.root}spacewalk-repo-sync -c channel_name -u https://127.0.0.1/pub/rhel/ Repo URL: https://127.0.0.1/pub/rhel/ Packages in repo: [...] Packages already synced: [...] Packages to sync: [...] [...]
To synchronize RES 5/6 packages:
{prompt.root}spacewalk-repo-sync -c channel_name -u https://127.0.0.1/pub/rhel/Server/ Repo URL: https://127.0.0.1/pub/rhel/Server/ Packages in repo: [...] Packages already synced: [...] Packages to sync: [...] [...]
When the channel has completed the synchronization process you can use the channel as any normal SUSE Manager channel.
Attempting to synchronize the repository will sometimes fail with this error:
[Errno 256] No more mirrors to try.
To troubleshoot this error, look at the HTTP protocol to determine if spacewalk-repo-sync
is running:
Start debugging mode with export URLGRABBER_DEBUG=DEBUG
Check the output of /usr/bin/spacewalk-repo-sync --channel <channel-label> --type yum
If you want to disable debug mode, use unset URLGRABBER_DEBUG
This section will guide you through registering RHEL minions with SUSE Manager.
This section assumes you have updated your server to the latest patch level.
Ensure you have the corresponding Red Hat Enterprise Linux product enabled and required channels have been fully synchronized:
Product: Red Hat Enterprise Linux 7
Mandatory channels: rhel-x86_64-server-7
, res7-suse-manager-tools-x86_64
, res7-x86_64
systemitem>
Product: Red Hat Enterprise Linux 6
Mandatory channels: rhel-x86_64-server-6
, res6-suse-manager-tools-x86_64
, res6-x86_64
To check if a channel has finished synchronizing you can do one of the following:
From the SUSE ManagerWeb UI browse to
› and select the tab. Here you will find a percent completion bar for each product.Alternatively, you may check the synchronization log file located under /var/log/rhn/reposync/channel-label.log
using cat or the tailf command. Keep in mind that base channels can contain multiple child channels. Each of these child channels will generate its own log during the synchronization progress. Do not assume a channel has finished synchronizing until you have checked all relevant log files including base and child channels.
Create an activation key associated with the Red Hat Enterprise Linux channel.
The following procedure demonstrate creating a bootstrap repository for RHEL:
On the server command line as root, create a bootstrap repo for RHEL with the following command:
mgr-create-bootstrap-repo RHEL_activation_channel_key
If you use a dedicated channel per RHEL version, specify it with the --with-custom-channel
option.
Rename bootstrap.sh
to resversion-boostrap.sh
:
{prompt.root}cp bootstrap.sh res7-bootstrap.sh
The following procedure will guide you through registering a Salt minion using the bootstrap script.
For your new minion download the bootstrap script from the SUSE Manager server:
wget --no-check-certificate https://`server`/pub/bootstrap/res7-bootstrap.sh
Add the appropriate res-gpg-pubkey--.key to the ORG_GPG_KEY
key parameter, comma delimited in your res7-bootstrap.sh
script. These are located on your SUSE Manager server at:
http://`server`/pub/
Make the res7-bootstrap.sh
script executable and run it. This will install necessary Salt packages from the bootstrap repository and start the Salt minion service:
{prompt.root}chmod +x res7-bootstrap.sh{prompt.root}./res7-boostrap.sh
From the SUSE Manager Web UI select
› and accept the new minion’s key.If bootstrapping a minion fails it is usually caused by missing packages. These missing packages are contained on the RHEL installation media. The RHEL installation media should be loop mounted and added as a child channel to the Red Hat Enterprise Linux channel. See the warning in Section 3.1, “Managing Red Hat Enterprise Linux Clients” on access to RHEL Media.
The following procedure will guide you through the registration of a Salt minion manually.
Add the bootstrap repository:
yum-config-manager --add-repo https://`server`/pub/repositories/res/7/bootstrap
Install the salt-minion package:
{prompt.root}yum install salt-minion
Edit the Salt minion configuration file to point to the SUSE Manager server:
{prompt.root}mkdir /etc/salt/minion.d{prompt.root}echo "master:`server_fqdn`" > /etc/salt/minion.d/susemanager.conf
Start the minion service:
{prompt.root}systemctl start salt-minion
From the SUSE Manager Web UI select the
› and accept the new minion’s key.This following section provides an example procedure for configuring CentOS channels and repositories and finally registering a CentOS client with SUSE Manager.
These steps will be identical for Scientific Linux and Fedora.
As root install spacewalk-utils on your SUSE Manager server:
zypper in spacewalk-utils
The spacewalk-utils package contains a collection of upstream command line tools which provide assistance with spacewalk administrative operations.
You will be using the spacewalk-common-channels
tool.
Keep in mind SUSE only provides support for spacewalk-clone-by-date
and spacewalk-manage-channel-lifecycle
tools.
Run the spacewalk-common-channels
script to add the CentOS7 base, updates, and Spacewalk client channels.
{prompt.root}spacewalk-common-channels -u admin -p`secret`-a x86_64 'centos7'{prompt.root}spacewalk-common-channels -u admin -p`secret`-a x86_64 'centos7-updates'{prompt.root}spacewalk-common-channels -u admin -p`secret`-a x86_64 'spacewalk26-client-centos7'
The /etc/rhn/spacewalk-common-channels.ini
must contain the channel references to be added.
If a channel is not listed, check the latest version here for updates: https://github.com/spacewalkproject/spacewalk/tree/master/utils
From the Web UI select CentOS7 (x86_64)
. Select › . Check the channels you want to synchronize and then click the button or, optionally, schedule a regular synchronization time.
Copy all relevant GPG keys to /srv/www/htdocs/pub
. Depending on what distribution you are interested in managing these could include an EPEL key, SUSE keys, Red Hat keys, and CentOS keys. After copying these you can reference them in a comma-delimited list within your bootstrap script (see Procedure: Preparing the Bootstrap Script).
CentOS7 key files: http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7
EPEL key file: http://mirrors.kernel.org/fedora-epel/RPM-GPG-KEY-EPEL-7
Spacewalk key: http://spacewalk.redhat.com/yum/RPM-GPG-KEY-spacewalk-2015
Red Hat keys: http://www.redhat.com/contact/security-response-team/gpg-keys.html
Install and setup a CentOS 7 client with the default installation packages.
Ensure the client machine can resolve itself and your SUSE Manager server via DNS. Validate that there is an entry in /etc/hosts
for the real IP address of the client.
Create an activation key (centos7
) on the SUSE Manager server that points to the correct parent/child channels, including the CentOS base repo, updates, and Spacewalk client.
Now prepare the bootstrap script.
Create/edit your bootstrap script to correctly reflect the following:
# can be edited, but probably correct (unless created during initial install): # NOTE: ACTIVATION_KEYS *must* be used to bootstrap a client machine. ACTIVATION_KEYS=1-centos7 ORG_GPG_KEY=res.key,RPM-GPG-KEY-CentOS-7,suse-307E3D54.key,suse-9C800ACA.key,RPM-GPG-KEY-spacewalk-2015 FULLY_UPDATE_THIS_BOX=0 yum clean all # Install the prerequisites yum -y install yum-rhn-plugin rhn-setup
Add the following lines to the bottom of your script, (just before echo “-bootstrap complete -”
):
# This section is for commands to be executed after registration mv /etc/yum.repos.d/Cent* /root/ yum clean all chkconfig rhnsd on chkconfig osad on service rhnsd restart service osad restart
Continue by following normal bootstrap procedures to bootstrap the new client.
The following procedure will guide you through registering a CentOS Minion.
CentOS uses patches originating from CentOS is not officially supported by SUSE . See the matrix of SUSE Manager clients on the main page of the SUSE Manager wiki, linked from the Quick Links section: https://wiki.microfocus.com/index.php?title=SUSE_Manager
Add the Open Build Service repo for Salt:
{prompt.root}yum-config-manager --add-repo http://download.opensuse.org/repositories/systemsmanagement:/saltstack:/products/RHEL_7/
Import the repo key:
{prompt.root}rpm --import http://download.opensuse.org/repositories/systemsmanagement:/saltstack:/products/RHEL_7/repodata/repomd.xml.key
Check if there is a different repository that contains Salt. If there is more than one repository listed disable the repository that contains Salt apart from the OBS one.
{prompt.root}yum list --showduplicates salt
Install the Salt minion:
{prompt.root}yum install salt salt-minion
Change the Salt configuration to point to the SUSE Manager server:
{prompt.root}mkdir -p /etc/salt/minion.d{prompt.root}echo "master:`server_fqdn`" > /etc/salt/minion.d/susemanager.conf
Restart the minion
{prompt.root}systemctl restart salt-minion
Proceed to
› › from the Web UI and accept the minion’s key.Support for Ubuntu Clients was added in SUSE Manager 3.2. Currently, Salt minions running Ubuntu 16.04 LTS and 18.04 LTS are supported.
Ubuntu clients must be Salt minions. Traditional clients are not supported.
Bootstrapping is supported for starting Ubuntu clients and performing initial state runs such as setting repositories and performing profile updates.
However, the root user on Ubuntu is disabled by default, so in order to use bootstrapping, you will require an existing user with sudo
privileges for Python.
Other supported features:
Synchronizing .deb
channels
Assigning .deb
channels to minions
GPG signing .deb
repositories
Information displayed in System details pages
Package install, update, and remove
Package install using Package States
Configuration and state channels
Some actions are not yet supported:
Patch and errata support
Bare metal installations, PXE booting, and virtual host provisioning
Live patching
CVE Audit
If you use are using a repository from storage media (server.susemanager.fromdir = …
option in rhn.conf), Ubuntu Client Tools will not work.
Some preparation is required before you can register Ubuntu clients to SUSE Manager Server.
Before you begin, ensure you have the Ubuntu product enabled, and have synchronized the Ubuntu channels:
For Ubuntu 18.04:
Product: Ubuntu Client 18.04
Mandatory channels: ubuntu-18.04-pool-amd64
For Ubuntu 16.04:
Product: Ubuntu Client 16.04
Mandatory channels: ubuntu-16.04-pool-amd64
The mandatory channels do not contain Ubuntu upstream packages. The repositories and channels for synchronizing upstream content must be configured manually.
Ensure that you have the appropriate software channels available on your system. In the SUSE Manager Web UI, navigate to
› › . You should see a base channel and a child channel for your architecture, for example:ubuntu-18.04-pool for amd64 | +- Ubuntu-18.04-SUSE-Manager-Tools for amd64
Create custom repositories to mirror the Ubuntu packages. For example:
For main
:
Repository Label: ubuntu-bionic-main
Repository URL: http://ubuntumirror.example.com/ubuntu/dists/bionic/main/binary-amd64/
Repository Type: deb
For main-updates
:
Repository Label: ubuntu-bionic-main-updates
Repository URL: http://ubuntumirror.example.com/ubuntu/dists/bionic-updates/main/binary-amd64/
Repository Type: deb
Create custom channels under the pool
channel, mirroring the vendor channels.
Ensure the custom channels you create have AMD64 Debian
architecture.
For example:
ubuntu-18.04-pool for amd64 (vendor channel) | +- Ubuntu-18.04-SUSE-Manager-Tools for amd64 (vendor channel) | +- ubuntu-18.04-amd64-main (custom channel) | +- ubuntu-18.04-amd64-main-updates (custom channel)
Associate the custom channels with the appropriate custom repositories.
Synchronize the new custom channels. You can check the progress of your synchronization from the command line with this command:
tail -f /var/log/rhn/reposync.log /var/log/rhn/reposync/*
To use bootstrap with Ubuntu, you will need to create a bootstrap repository.
You can do this from the command line with mgr-create-bootstrap-repo
:
mgr-create-bootstrap-repo --with-custom-channels
The root user on Ubuntu is disabled by default.
You can enable it by editing the sudoers
file.
On the client, edit the sudoers
file:
sudo visudo
Grant sudo
access to the user by adding this line to the sudoers
file. Replace <user>
with the name of the user that will be used to bootsrap the client in the Web UI:
<user> ALL=NOPASSWD: /usr/bin/python, /usr/bin/python2, /usr/bin/python3