Add Satellite 5 support
authorJames Slagle <jslagle@redhat.com>
Tue, 12 Jan 2016 22:34:22 +0000 (17:34 -0500)
committerJames Slagle <jslagle@redhat.com>
Mon, 29 Feb 2016 19:23:36 +0000 (14:23 -0500)
Add Satellite 5 support to the RHEL registration environment and
resources. The registration script is updated to support both satellite
versions in place given the similarity of the options for both
scenarios.

The satellite version is detected based on $REG_SAT_URL, and that
determines whether subscription-manager or rhnreg_ks is used.

Change-Id: Ic261c8a16a7d6d3978f8bfc6e53f75dbe1b716db

extraconfig/pre_deploy/rhel-registration/scripts/rhel-registration
extraconfig/pre_deploy/rhel-registration/scripts/rhel-unregistration

index cbbd6a1..76fa63b 100644 (file)
@@ -13,6 +13,7 @@ fi
 
 opts=
 attach_opts=
+sat5_opts=
 repos="repos --enable rhel-7-server-rpms"
 satellite_repo="rhel-7-server-rh-common-rpms"
 if [ -n "${REG_AUTO_ATTACH:-}" ]; then
@@ -49,6 +50,7 @@ fi
 
 if [ -n "${REG_FORCE:-}" ]; then
     opts="$opts --force"
+    sat5_opts="$sat5_opts --force"
 fi
 
 if [ -n "${REG_SERVER_URL:-}" ]; then
@@ -57,6 +59,7 @@ fi
 
 if [ -n "${REG_ACTIVATION_KEY:-}" ]; then
     opts="$opts --activationkey=$REG_ACTIVATION_KEY"
+    sat5_opts="$sat5_opts --activationkey=$REG_ACTIVATION_KEY"
 
     if [ -z "${REG_ORG:-}" ]; then
         echo "WARNING: REG_ACTIVATION_KEY set without REG_ORG."
@@ -75,10 +78,12 @@ fi
 
 if [ -n "${REG_MACHINE_NAME:-}" ]; then
     opts="$opts --name $REG_MACHINE_NAME"
+    sat5_opts="$sat5_opts --profilename=$REG_MACHINE_NAME"
 fi
 
 if [ -n "${REG_ORG:-}" ]; then
     opts="$opts --org=$REG_ORG"
+    sat5_opts="$sat5_opts --systemorgid=$REG_ORG"
 fi
 
 if [ -n "${REG_REPOS:-}" ]; then
@@ -91,6 +96,20 @@ if [ -n "${REG_TYPE:-}" ]; then
     opts="$opts --type=$REG_TYPE"
 fi
 
+function detect_satellite_version {
+    ping_api=$REG_SAT_URL/katello/api/ping
+    if curl -k -s -D - -o /dev/null $ping_api | grep "200 OK"; then
+        echo Satellite 6 detected at $REG_SAT_URL
+        satellite_version=6
+    elif curl -k -s -D - -o /dev/null $REG_SAT_URL/rhn/Login.do | grep "200 OK"; then
+        echo Satellite 5 detected at $REG_SAT_URL
+        satellite_version=5
+    else
+        echo No Satellite detected at $REG_SAT_URL
+        exit 1
+    fi
+}
+
 case "${REG_METHOD:-}" in
     portal)
         subscription-manager register $opts
@@ -100,13 +119,21 @@ case "${REG_METHOD:-}" in
         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}
+        detect_satellite_version
+        if [ "satellite_version" = "6" ]; then
+            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}
+        else
+            pushd /usr/share/rhn/
+            curl -k -O $REG_SAT_URL/pub/RHN-ORG-TRUSTED-SSL-CERT
+            popd
+            rhnreg_ks --serverUrl=$REG_SAT_URL/XMLRPC $sat5_opts
+        fi
         ;;
     disable)
         echo "Disabling RHEL registration"
index 1e72e0a..916f97e 100644 (file)
@@ -7,6 +7,8 @@ case "${REG_METHOD:-}" in
     portal|satellite)
         # Allow unregistration to fail.
         # We don't want to fail stack deletes if unregistration fails.
+        # Note that this will be a no-op on satellite 5, which doesn't support
+        # unregistering from the cli.
         subscription-manager unregister || true
         subscription-manager clean || true
         ;;