diskimage-builder/elements/rhel-common/pre-install.d/00-rhsm
Ryan Brady ac8514c089 Enable RHEL Registration
This patch documents the 00-rhsm script as <= RHEL6 as it doesn't
work with the latest release of Satellite.  The Red Hat Network
(RHN) method of registration is being phased out in favor of Red
Hat Customer Portal and Satellite 6.  The subscription-manager
command line tool is the preferred method of registration.

The registration of RHEL is required to enable repositories for
software installation during image creation time.

This element provides functionality for registering RHEL images
during the image build process with diskimage-builder's
disk-image-create script.  The RHEL image will register itself
with either the hosted Red Hat Customer Portal or Satellite to
enable software installation from official repositories. After
the end of the image creation process, the image will unregister
itself so an entitlement will not be decremented from the account.

Boot-time registration is supported through metadata.  Please see
the configuration in the README for more information.

Change-Id: Ia9ef377cc4ed9595633888bfb248a1224e04b542
2014-10-31 12:36:43 -04:00

63 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# This script is for RHEL6 use only. For RHEL7, please see the readme for
# documentation on which scripts are used for registration and the variables
# needed to enable the registration process.
set -eu
set -o pipefail
export DIB_RHSM_USER=${DIB_RHSM_USER:-}
if [ -n "${DIB_RHSM_USER:-}" ] && [ -n "${DIB_RHSM_PASSWORD:-}" ] ; then
opts="--force"
if [[ -n "${DIB_SAT_KEY:-}" ]]; then
opts="$opts --activationkey ${DIB_SAT_KEY}"
else
opts="$opts --username ${DIB_RHSM_USER} --password ${DIB_RHSM_PASSWORD}"
fi
if [[ -n "${DIB_SAT_URL:-}" ]]; then
if [[ "${DIB_REG_TYPE:-}" == "rhn" ]]; then
opts="$opts --serverUrl ${DIB_SAT_URL}"
else
opts="$opts --serverurl ${DIB_SAT_URL} --sslCACert /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT"
fi
fi
if [[ -n "${DIB_SAT_CERT_RPM_URL:-}" ]]; then
yum install -y ${DIB_SAT_CERT_RPM_URL}
fi
if [[ "${DIB_REG_TYPE:-}" == "rhn" ]]; then
rhnreg_ks $opts --norhnsd
sleep 1
# optional channel required for diskimage-builder dependency
channels="-a -c rhel-x86_64-server-optional-6"
if [[ -n "${DIB_RHN_CHANNELS:-}" ]]; then
for chan in $DIB_RHN_CHANNELS; do
channels="$channels -a -c $chan"
done
fi
rhn-channel --user=$DIB_RHSM_USER --password=$DIB_RHSM_PASSWORD $channels
rhn-channel -l
else
subscription-manager register $opts
# wait a second to ensure consumer certificate is finished writing to disk
sleep 1
if [ -z ${DIB_RHSM_POOL:-} ]; then
subscription-manager attach --auto
else
subscription-manager attach --pool $DIB_RHSM_POOL
fi
# optional repo required for diskimage-builder dependency
if [ "$DISTRO_NAME" == "rhel7" ]; then
repos="--enable rhel-7-server-optional-rpms"
else
repos="--enable rhel-6-server-optional-rpms"
fi
if [[ -n "${DIB_RHSM_REPOS:-}" ]]; then
for repo in $DIB_RHSM_REPOS; do
repos="$repos --enable $repo"
done
fi
subscription-manager repos $repos
subscription-manager repos --list
fi
fi