Examples

GET /foreman_virt_who_configure/api/configs/31/deploy_script.sh
200
#!/bin/bash
heading() {
  echo -e "\n== $1 =="
}

step() {
  step_count=5
  heading "[$1/$step_count] $2"
}

version_lte() {
  [ "$1" = "`echo -e "$1\n$2" | sort -V | head -n1`" ]
}

version_lt() {
  [ "$1" = "$2" ] && return 1 || version_lte $1 $2
}

verify_minimal_version() {
  minimal_version=0.24.2
  installed_version=`rpm -q --queryformat '%{VERSION}' virt-who`

  if version_lt $installed_version $minimal_version; then
    echo "virt-who $installed_version does not meet minimum requirements, please make sure this host is properly subscribed and has access to katello-host-tools repository, minimal virt-who version is $minimal_version"
    return 1
  else
    return 0
  fi
}

result_code=0

compose_install_command() {
  $1 packages unlock
  $1 advanced procedure run packages-install --packages virt-who --assumeyes || result_code=$(($result_code|32))
  $1 packages lock
}

install_virt_who() {
  if `rpm -q satellite-maintain > /dev/null`; then
    compose_install_command satellite-maintain
  elif `rpm -q rubygem-foreman_maintain > /dev/null`; then
    compose_install_command foreman-maintain
  else
    yum install -y virt-who || result_code=$(($result_code|32))
  fi
}

step 1 "Installing virt-who"
install_virt_who

if verify_minimal_version; then
  step 2 "Encrypting password"
  cr_password=$(virt-who-password --password $(echo Y2hhbmdlbWU=|base64 -d) 2> /dev/null)
  user_password=$(virt-who-password --password 'tsdd7U42PzGD63Ay' 2> /dev/null)

  step 3 "Creating virt-who configuration"
  cat > /etc/virt-who.d/virt-who-config-31.conf << EOF
### This configuration file is managed via the virt-who configure plugin
### manual edits will be deleted.
[virt-who-config-31]
type=esx
hypervisor_id=hostname
owner=org33

server=vmware.example.com
username=root
encrypted_password=$cr_password
rhsm_hostname=foreman.example.com
rhsm_username=virt_who_reporter_31
rhsm_encrypted_password=$user_password
rhsm_prefix=/rhsm
EOF
  if [ $? -ne 0 ]; then result_code=$(($result_code|2)); fi

  step 4 "Creating sysconfig virt-who configuration"
  cat > /etc/virt-who.conf << EOF
### This configuration file is managed via the virt-who configure plugin
### manual edits will be deleted.
[global]
debug=0
interval=7200
oneshot=False

[system_environment]
EOF
  if [ $? -ne 0 ]; then result_code=$(($result_code|4)); fi

  step 5 "Enabling and restarting the virt-who service"
  systemctl enable virt-who || result_code=$(($result_code|8))
  systemctl restart virt-who || result_code=$(($result_code|16))
else
  result_code=$(($result_code|1))
fi

heading "Finished"
if [ $result_code -ne 0 ]; then
  echo "There were some errors during configuration:"
  [ $(($result_code&0)) -ge 1 ] && echo 'Success'
  [ $(($result_code&1)) -ge 1 ] && echo 'Newer version of virt-who is required, minimum version is 0.24.2'
  [ $(($result_code&2)) -ge 1 ] && echo 'Unable to create virt-who config file'
  [ $(($result_code&4)) -ge 1 ] && echo 'Unable to create sysconfig file'
  [ $(($result_code&8)) -ge 1 ] && echo 'Unable to enable virt-who service using systemctl'
  [ $(($result_code&16)) -ge 1 ] && echo 'Unable to start virt-who service, please see virt-who logs for more details'
  [ $(($result_code&32)) -ge 1 ] && echo 'Unable to install virt-who package, make sure the host is properly subscribed and has access to katello-host-tools repository'
else
  echo "Finished successfully"
fi

exit $result_code

Params

Param name Description
location_id
optional

Set the current location context for the request

Validations:

  • Integer

organization_id
optional

Set the current organization context for the request

Validations:

  • Integer

id
required

Validations:

  • string from 2 to 128 characters containing only alphanumeric characters, space, '_', '-' with no leading or trailing space..