From 78dbbe68fe7721918eb6b3430878c690612fd954 Mon Sep 17 00:00:00 2001 From: aweiteka Date: Tue, 21 Jan 2014 13:48:16 -0500 Subject: [PATCH] Add support Red Hat Network (RHN) This provides basic support to register to the Red Hat Network (RHN Classic) for packages. The image is unregistered from RHN before completing image build. The rhnsd service is prevented from starting since it is not needed for packagage install. Change-Id: I2dc124cdc6ae59a63fd94d82d77108acccc3f668 --- elements/rhel/README.md | 24 ++++++++++++------ elements/rhel/finalise.d/60-rhsm-unregister | 4 +++ elements/rhel/pre-install.d/00-rhsm | 27 +++++++++++++++------ 3 files changed, 40 insertions(+), 15 deletions(-) diff --git a/elements/rhel/README.md b/elements/rhel/README.md index ee817888..efa9a254 100644 --- a/elements/rhel/README.md +++ b/elements/rhel/README.md @@ -1,10 +1,18 @@ -Overrides: +# Overrides: + +## General * Set DIB_CLOUD_IMAGES to a URL for downloading base Red Hat Enterprise Linux cloud image. * Set DIB_CLOUD_RELEASE to a use a non-default name for the Red Hat Enterprise Linux cloud image. -* Set DIB_RHSM_USER and DIB_RHSM_PASSOWRD for the RHN user to be used for a subscription registration. - If these are set, the image building process will register the system with RHN - and apply the associated Red Hat Enterprise Linux Server subscription so the - latest package updates can be applied. At the end of the image building - process, the system will be unregistered from RHN. -* Set DIB_RHSM_POOL to a subscription pool if you want the system to not use - the auto attach feature of subscription-manager + +## Red Hat Subscription Manager (RHSM) + +Certificate-based Red Hat Subscription Managment (RHSM) is the default registration type. + +* Set DIB_RHSM_USER and DIB_RHSM_PASSWORD to register the system with RHSM during the image building process. This will apply the associated Red Hat Enterprise Linux Server subscription so the latest package updates can be applied. At the end of the image building process, the system will be unregistered from RHSM. +* Set DIB_RHSM_POOL to a subscription pool if you do not want the system to use the `--auto-attach` feature of `subscription-manager`. + +## Red Hat Network (RHN) + +Set `DIB_REG_TYPE=rhn` for Red Hat Network (RHN classic) registration. The image building process will register the system to RHN and apply the associated Red Hat Enterprise Linux Server subscription so the latest package updates can be applied. At the end of the image building process, the system will be unregistered from RHN. + +* For RHN username/password authentication set DIB_RHSM_USER and DIB_RHSM_PASSWORD. diff --git a/elements/rhel/finalise.d/60-rhsm-unregister b/elements/rhel/finalise.d/60-rhsm-unregister index 42b7f027..e00da853 100755 --- a/elements/rhel/finalise.d/60-rhsm-unregister +++ b/elements/rhel/finalise.d/60-rhsm-unregister @@ -3,5 +3,9 @@ set -e if [ -n "$DIB_RHSM_USER" ] && [ -n "$DIB_RHSM_PASSWORD" ]; then + if [[ "$DIB_REG_TYPE" == "rhn" ]]; then + rm -rf /etc/sysconfig/rhn/systemid + else subscription-manager unregister + fi fi diff --git a/elements/rhel/pre-install.d/00-rhsm b/elements/rhel/pre-install.d/00-rhsm index eb6f26d2..75f928a2 100755 --- a/elements/rhel/pre-install.d/00-rhsm +++ b/elements/rhel/pre-install.d/00-rhsm @@ -4,13 +4,26 @@ set -e if [ -n "$DIB_RHSM_USER" ] && [ -n "$DIB_RHSM_PASSWORD" ] then - subscription-manager register --user $DIB_RHSM_USER --password $DIB_RHSM_PASSWORD - # wait a second to ensure consumer certificate is finished writing to disk - sleep 1 - if [ -z $DIB_RHSM_POOL ]; then - subscription-manager attach --auto + opts="--force --username ${DIB_RHSM_USER} --password ${DIB_RHSM_PASSWORD}" + 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" + rhn-channel --user=$DIB_RHSM_USER --password=$DIB_RHSM_PASSWORD $channels + rhn-channel -l else - subscription-manager attach --pool $DIB_RHSM_POOL + 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 + repos="--enable rhel-6-server-optional-rpms" + subscription-manager repos $repos + subscription-manager repos --list fi - subscription-manager repos --enable rhel-6-server-optional-rpms fi