FQDN validation

Adds optional validation to ensure FQDN set by Nova matches /etc/hosts
as created by overcloud heat configuration.

Consistent FQDN requires the nova parameter [Default]/dhcp_domain to
match the CloudDomain tht parameter.

This validation is disabled by default.

Change-Id: Ib5689acae66baf63ecccbc3b1c0b96684781b863
This commit is contained in:
Matthew Flusche 2017-02-14 17:00:02 +00:00
parent 596c1674b7
commit bae2d11393
2 changed files with 24 additions and 0 deletions

View File

@ -10,6 +10,10 @@ parameters:
default: ''
description: A string containing a space separated list of IP addresses used to ping test each available network interface.
type: string
ValidateFqdn:
default: false
description: Optional validation to ensure FQDN as set by Nova matches the name set in /etc/hosts.
type: boolean
resources:
AllNodesValidationsImpl:
@ -19,6 +23,8 @@ resources:
inputs:
- name: ping_test_ips
default: {get_param: PingTestIps}
- name: validate_fqdn
default: {get_param: ValidateFqdn}
config: {get_file: ./validation-scripts/all-nodes.sh}
outputs:

View File

@ -67,5 +67,23 @@ function ping_default_gateways() {
echo "SUCCESS"
}
# Verify the FQDN from the nova/ironic deployment matches
# FQDN in the heat templates.
function fqdn_check() {
HOSTNAME=$(hostname)
SHORT_NAME=$(hostname -s)
FQDN_FROM_HOSTS=$(awk '$3 == "'${SHORT_NAME}'"{print $2}' /etc/hosts)
echo -n "Checking hostname vs /etc/hosts entry..."
if [[ $HOSTNAME != $FQDN_FROM_HOSTS ]]; then
echo "FAILURE"
echo -e "System hostname: ${HOSTNAME}\nEntry from /etc/hosts: ${FQDN_FROM_HOSTS}\n"
exit 1
fi
echo "SUCCESS"
}
ping_controller_ips "$ping_test_ips"
ping_default_gateways
if [[ $validate_fqdn == "True" ]];then
fqdn_check
fi