diff options
author | Steven Hardy <shardy@redhat.com> | 2015-04-09 15:01:08 +0100 |
---|---|---|
committer | James Slagle <jslagle@redhat.com> | 2015-05-07 16:55:36 -0400 |
commit | c799b2e04ea7e2fb0266484fd435782b5f6d3fbf (patch) | |
tree | 4b37f77873c104e1048bd8037d665e737d956ad8 /extraconfig/post_deploy/rhel-registration/scripts | |
parent | ad0f3a3e44adad1bd8aaaa580197e3c68f327388 (diff) |
post-deploy hook for rhel registration
Adds a potential usage of the post-deploy hooks to register a server
with RHN or a satellite.
Note this requires some additional parameters, which can be specified in
environment_rhel_reg.yaml, and this must be passed into the call to heat
via another -e parameter. An alternative may be to have a global
extraconfig_env.yaml at the top level, which the scripts always pass, or
to use the global environment (/etc/heat/environment.d/default.yaml) on
the seed.
Co-Authored-By: James Slagle <jslagle@redhat.com>
Change-Id: Ia6fd270122cbc2e51beb672654e5e1ebd3bd2966
Diffstat (limited to 'extraconfig/post_deploy/rhel-registration/scripts')
-rw-r--r-- | extraconfig/post_deploy/rhel-registration/scripts/rhel-registration | 120 | ||||
-rw-r--r-- | extraconfig/post_deploy/rhel-registration/scripts/rhel-unregistration | 19 |
2 files changed, 139 insertions, 0 deletions
diff --git a/extraconfig/post_deploy/rhel-registration/scripts/rhel-registration b/extraconfig/post_deploy/rhel-registration/scripts/rhel-registration new file mode 100644 index 00000000..c2bf1894 --- /dev/null +++ b/extraconfig/post_deploy/rhel-registration/scripts/rhel-registration @@ -0,0 +1,120 @@ +#!/bin/bash + +# dib-lint: disable=setu sete setpipefail dibdebugtrace + +set -eu +set -o pipefail + +OK=/mnt/state/var/lib/rhsm/rhsm.ok + +if [ -e $OK ] ; then + exit 0 +fi + +opts= +attach_opts= +repos="repos --enable rhel-7-server-rpms" +satellite_repo="rhel-7-server-rh-common-rpms" +if [ -n "${REG_AUTO_ATTACH:-}" ]; then + opts="$opts --auto-attach" + + if [ -n "${REG_SERVICE_LEVEL:-}" ]; then + opts="$opts --servicelevel $REG_SERVICE_LEVEL" + fi + + if [ -n "${REG_RELEASE:-}" ]; then + opts="$opts --release=$REG_RELEASE" + fi +else + if [ -n "${REG_SERVICE_LEVEL:-}" ]; then + echo "WARNING: REG_SERVICE_LEVEL set without REG_AUTO_ATTACH." + fi + + if [ -n "${REG_RELEASE:-}" ]; then + echo "WARNING: REG_RELEASE set without REG_AUTO_ATTACH." + fi + + if [ -n "${REG_POOL_ID:-}" ]; then + attach_opts="$attach_opts --pool=$REG_POOL_ID" + fi +fi + +if [ -n "${REG_BASE_URL:-}" ]; then + opts="$opts --baseurl=$REG_BASE_URL" +fi + +if [ -n "${REG_ENVIRONMENT:-}" ]; then + opts="$opts --env=$REG_ENVIRONMENT" +fi + +if [ -n "${REG_FORCE:-}" ]; then + opts="$opts --force" +fi + +if [ -n "${REG_SERVER_URL:-}" ]; then + opts="$opts --serverurl=$REG_SERVER_URL" +fi + +if [ -n "${REG_ACTIVATION_KEY:-}" ]; then + opts="$opts --activationkey=$REG_ACTIVATION_KEY" + + if [ -z "${REG_ORG:-}" ]; then + echo "WARNING: REG_ACTIVATION_KEY set without REG_ORG." + fi +else + echo "WARNING: Support for registering with a username and password is deprecated." + echo "Please use activation keys instead. See the README for more information." + if [ -n "${REG_PASSWORD:-}" ]; then + opts="$opts --password $REG_PASSWORD" + fi + + if [ -n "${REG_USER:-}" ]; then + opts="$opts --username $REG_USER" + fi +fi + +if [ -n "${REG_MACHINE_NAME:-}" ]; then + opts="$opts --name $REG_MACHINE_NAME" +fi + +if [ -n "${REG_ORG:-}" ]; then + opts="$opts --org=$REG_ORG" +fi + +if [ -n "${REG_REPOS:-}" ]; then + for repo in $(echo $REG_REPOS | tr ',' '\n'); do + repos="$repos --enable $repo" + done +fi + +if [ -n "${REG_TYPE:-}" ]; then + opts="$opts --type=$REG_TYPE" +fi + +case "${REG_METHOD:-}" in + portal) + subscription-manager register $opts + if [ -z "${REG_AUTO_ATTACH:-}" ]; then + subscription-manager attach $attach_opts + fi + subscription-manager $repos + ;; + satellite) + repos="$repos --enable ${satellite_repo}" + rpm -Uvh "$REG_SAT_URL/pub/katello-ca-consumer-latest.noarch.rpm" || true + subscription-manager register $opts + subscription-manager $repos + yum install -y katello-agent || true # needed for errata reporting to satellite6 + katello-package-upload + subscription-manager repos --disable ${satellite_repo} + ;; + disable) + echo "Disabling RHEL registration" + ;; + *) + echo "WARNING: only 'portal', 'satellite', and 'disable' are valid values for REG_METHOD." + exit 0 +esac + +mkdir -p $(dirname $OK) +touch $OK diff --git a/extraconfig/post_deploy/rhel-registration/scripts/rhel-unregistration b/extraconfig/post_deploy/rhel-registration/scripts/rhel-unregistration new file mode 100644 index 00000000..1e72e0a6 --- /dev/null +++ b/extraconfig/post_deploy/rhel-registration/scripts/rhel-unregistration @@ -0,0 +1,19 @@ +#!/bin/bash + +set -eux +set -o pipefail + +case "${REG_METHOD:-}" in + portal|satellite) + # Allow unregistration to fail. + # We don't want to fail stack deletes if unregistration fails. + subscription-manager unregister || true + subscription-manager clean || true + ;; + disable) + echo "Disabling RHEL unregistration" + ;; + *) + echo "WARNING: only 'portal', 'satellite', and 'disable' are valid values for REG_METHOD." + exit 0 +esac |