3345557d7b
If you deploy a stack with mixed-case hostnames things will break because no task that is supposed to run on boostrap nodes will run due to the following code: HOSTNAME=$(/bin/hostname -s) SERVICE_NODEID=$(/bin/hiera -c /etc/puppet/hiera.yaml "${SERVICE_NAME}_short_bootstrap_node_name") if [[ "$HOSTNAME" == "$SERVICE_NODEID" ]]; then ... The hiera key might contain mixed-case letters whereas the hostname won't and the end result is going to be that no bootstrap tasks will run on any nodes and, amongst other things, no database tables will be created, making all services unusable. Since we use bash explicitely we can leverage the ${var,,} expression for this. Change-Id: Ie240b8a4217827dd8ade82479a828817d63143ba Related-Bug: #1773219
20 lines
512 B
Bash
Executable File
20 lines
512 B
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
SERVICE_NAME=$1
|
|
if [ -z "$SERVICE_NAME" ]; then
|
|
echo "Please supply a valid service name."
|
|
exit 1
|
|
fi
|
|
shift
|
|
if [ -z "$*" ]; then
|
|
echo "Please supply a valid 'command' to run as an argument."
|
|
exit 1
|
|
fi
|
|
HOSTNAME=$(/bin/hostname -s)
|
|
SERVICE_NODEID=$(/bin/hiera -c /etc/puppet/hiera.yaml "${SERVICE_NAME}_short_bootstrap_node_name")
|
|
if [[ "${HOSTNAME,,}" == "${SERVICE_NODEID,,}" ]]; then
|
|
eval $*
|
|
else
|
|
echo "Skipping execution since this is not the bootstrap node for this service."
|
|
fi
|