tripleo-heat-templates/extraconfig/pre_deploy/rhel-registration/rhel-registration.yaml
Cyril Lopez d80a956d72 Fix usage of satellite in organization mode
When satellite is used in organization mode, deployments were failing
due to a change on code return on subscription manager. This last will
generate an error any way so this is a bypass.

Tested on queen.

Closes-Bug: #1822725

Change-Id: I0dd65cc752a6bd94bec59f695e55aa85ef8f0192
Signed-off-by: Cyril Lopez <cylopez@redhat.com>
2019-04-08 09:20:41 +02:00

217 lines
6.5 KiB
YAML

heat_template_version: rocky
description: >
RHEL Registration and unregistration software deployments.
# Note extra parameters can be defined, then passed data via the
# environment parameter_defaults, without modifying the parent template
parameters:
server:
type: string
# To be defined via a local or global environment in parameter_defaults
rhel_reg_activation_key:
type: string
rhel_reg_auto_attach:
type: string
rhel_reg_base_url:
type: string
rhel_reg_environment:
type: string
rhel_reg_force:
type: string
rhel_reg_machine_name:
type: string
rhel_reg_org:
type: string
rhel_reg_password:
type: string
rhel_reg_pool_id:
type: string
rhel_reg_release:
type: string
rhel_reg_repos:
type: string
rhel_reg_sat_url:
type: string
rhel_reg_server_url:
type: string
rhel_reg_service_level:
type: string
rhel_reg_user:
type: string
rhel_reg_type:
type: string
rhel_reg_method:
type: string
rhel_reg_sat_repo:
type: string
rhel_reg_http_proxy_host:
type: string
rhel_reg_http_proxy_port:
type: string
rhel_reg_http_proxy_username:
type: string
rhel_reg_http_proxy_password:
type: string
UpdateOnRHELRegistration:
type: boolean
default: false
description: |
When enabled, the system will perform a yum update after performing the
RHEL Registration process.
DeleteOnRHELUnregistration:
type: boolean
default: false
description: |
When true, the system profile will be deleted from the registration
service when the rhel-registration.yaml nested stack is deleted.
RHELRegistrationActions:
type: comma_delimited_list
default:
- CREATE
description: Actions when the system profile will be registered, by default we only do this on CREATE of a new server, not for existing nodes.
UseSatelliteOrgMode:
type: boolean
default: false
description: When satellite is used in Organisation mode, this option must be enabled.
conditions:
unregister_on_delete:
equals:
- {get_param: DeleteOnRHELUnregistration}
- true
update_requested:
equals:
- {get_param: UpdateOnRHELRegistration}
- true
resources:
RHELRegistration:
type: OS::Heat::SoftwareConfig
properties:
group: script
inputs:
- name: REG_ACTIVATION_KEY
- name: REG_AUTO_ATTACH
- name: REG_BASE_URL
- name: REG_ENVIRONMENT
- name: REG_FORCE
- name: REG_MACHINE_NAME
- name: REG_ORG
- name: REG_PASSWORD
- name: REG_POOL_ID
- name: REG_RELEASE
- name: REG_REPOS
- name: REG_SAT_URL
- name: REG_SERVER_URL
- name: REG_SERVICE_LEVEL
- name: REG_USER
- name: REG_TYPE
- name: REG_METHOD
- name: REG_SAT_REPO
- name: REG_HTTP_PROXY_HOST
- name: REG_HTTP_PROXY_PORT
- name: REG_HTTP_PROXY_USERNAME
- name: REG_HTTP_PROXY_PASSWORD
- name: REG_SAT_ORGMODE
config: {get_file: scripts/rhel-registration}
RHELRegistrationDeployment:
type: OS::Heat::SoftwareDeployment
properties:
name: RHELRegistrationDeployment
server: {get_param: server}
config: {get_resource: RHELRegistration}
actions: {get_param: RHELRegistrationActions}
input_values:
REG_ACTIVATION_KEY: {get_param: rhel_reg_activation_key}
REG_AUTO_ATTACH: {get_param: rhel_reg_auto_attach}
REG_BASE_URL: {get_param: rhel_reg_base_url}
REG_ENVIRONMENT: {get_param: rhel_reg_environment}
REG_FORCE: {get_param: rhel_reg_force}
REG_MACHINE_NAME: {get_param: rhel_reg_machine_name}
REG_ORG: {get_param: rhel_reg_org}
REG_PASSWORD: {get_param: rhel_reg_password}
REG_POOL_ID: {get_param: rhel_reg_pool_id}
REG_RELEASE: {get_param: rhel_reg_release}
REG_REPOS: {get_param: rhel_reg_repos}
REG_SAT_URL: {get_param: rhel_reg_sat_url}
REG_SERVER_URL: {get_param: rhel_reg_server_url}
REG_SERVICE_LEVEL: {get_param: rhel_reg_service_level}
REG_USER: {get_param: rhel_reg_user}
REG_TYPE: {get_param: rhel_reg_type}
REG_METHOD: {get_param: rhel_reg_method}
REG_SAT_REPO: {get_param: rhel_reg_sat_repo}
REG_HTTP_PROXY_HOST: {get_param: rhel_reg_http_proxy_host}
REG_HTTP_PROXY_PORT: {get_param: rhel_reg_http_proxy_port}
REG_HTTP_PROXY_USERNAME: {get_param: rhel_reg_http_proxy_username}
REG_HTTP_PROXY_PASSWORD: {get_param: rhel_reg_http_proxy_password}
REG_SAT_ORGMODE: {get_param: UseSatelliteOrgMode}
RHELUnregistration:
type: OS::Heat::SoftwareConfig
properties:
group: script
config: {get_file: scripts/rhel-unregistration}
inputs:
- name: REG_METHOD
RHELUnregistrationDeployment:
type: OS::Heat::SoftwareDeployment
properties:
name: RHELUnregistrationDeployment
server: {get_param: server}
config: {get_resource: RHELUnregistration}
actions:
if:
- unregister_on_delete
- ['DELETE']
- []
input_values:
REG_METHOD: {get_param: rhel_reg_method}
YumUpdateConfigurationAfterRHELRegistration:
type: OS::Heat::SoftwareConfig
properties:
group: script
config: |
#!/bin/bash
set -x
# yum check-update exits 100 if updates are available
set +e
check_update=$(yum check-update 2>&1)
check_update_exit=$?
set -e
if [[ "$check_update_exit" == "100" ]]; then
full_command="yum -q -y update"
echo "Running: $full_command"
result=$($full_command)
return_code=$?
echo "$result"
echo "yum return code: $return_code"
exit $return_code
elif [[ "$check_update_exit" == "1" ]]; then
echo "Failed to check for package updates"
echo "$check_update"
else
echo "No packages require updating"
exit 0
fi
UpdateDeploymentAfterRHELRegistration:
type: OS::Heat::SoftwareDeployment
depends_on: RHELRegistrationDeployment
condition: update_requested
properties:
name: UpdateDeploymentAfterRHELRegistration
config: {get_resource: YumUpdateConfigurationAfterRHELRegistration}
server: {get_param: server}
actions: {get_param: RHELRegistrationActions}
outputs:
deploy_stdout:
description: Deployment reference, used to trigger puppet apply on changes
value: {get_attr: [RHELRegistrationDeployment, deploy_stdout]}