Add AIO diagnostics and better gate scripts consistency

Implements extra diagnostic information for gate check failure analysis and
also appends DNS settings instead of replacing them for the AIO bootstrap.

Some extra settings are added to the DNS to try to catch edge cases for DNS
resolution. The DNS `resolv.conf` was being overwritten on every run using
google name servers however we need to add google name servers to the existing
resolver not overwrite the whole conf so a conditional was added.

The gate scripts were attempting to create a symlink to logs on every run.
While this is fine for the gate which is creates a new node on every run
the link will cause failures on recheck when doing more local testing.

The ansible log entry was being appended to the `ansible.cfg` file on every
run which should also be limited to one entry. The conditional added is
helpful when doing local testing with the gate scripts.

Closes-Bug: #1442630
Change-Id: I25aac98d7408ba32f94befea22da4471bd1697b6
This commit is contained in:
Jesse Pretorius 2015-04-09 15:46:30 +01:00 committed by Kevin Carter
parent 9ce885d18d
commit 954f8ff8cb
2 changed files with 12 additions and 4 deletions

View File

@ -51,12 +51,14 @@ info_block "Checking for required libraries." 2> /dev/null || source $(dirname $
mkdir -p /openstack/log mkdir -p /openstack/log
# Implement the log directory link for openstack-infra log publishing # Implement the log directory link for openstack-infra log publishing
ln -s /openstack/log $SYMLINK_DIR ln -sf /openstack/log $SYMLINK_DIR
# Create ansible logging directory and add in a log file entry into ansible.cfg # Create ansible logging directory and add in a log file entry into ansible.cfg
if [ -f "playbooks/ansible.cfg" ];then if [ -f "playbooks/ansible.cfg" ];then
mkdir -p /openstack/log/ansible-logging mkdir -p /openstack/log/ansible-logging
sed -i '/\[defaults\]/a log_path = /openstack/log/ansible-logging/ansible.log' playbooks/ansible.cfg if [ ! "$(grep -e '^log_path\ =\ /openstack/log/ansible-logging/ansible.log' playbooks/ansible.cfg)" ];then
sed -i '/\[defaults\]/a log_path = /openstack/log/ansible-logging/ansible.log' playbooks/ansible.cfg
fi
fi fi
# Check that the link creation was successful # Check that the link creation was successful
@ -80,7 +82,9 @@ fi
info_block "Running AIO Setup" info_block "Running AIO Setup"
# Set base DNS to google, ensuring consistent DNS in different environments # Set base DNS to google, ensuring consistent DNS in different environments
echo -e 'nameserver 8.8.8.8\nnameserver 8.8.4.4' | tee /etc/resolv.conf if [ ! "$(grep -e '^nameserver 8.8.8.8' -e '^nameserver 8.8.4.4' /etc/resolv.conf)" ];then
echo -e '\n# Adding google name servers\nnameserver 8.8.8.8\nnameserver 8.8.4.4' | tee -a /etc/resolv.conf
fi
# Update the package cache and install required packages # Update the package cache and install required packages
apt-get update apt-get update

View File

@ -217,6 +217,8 @@ function log_instance_info() {
# Get instance info # Get instance info
function get_instance_info() { function get_instance_info() {
set +x set +x
info_block 'Current User'
whoami
info_block 'Available Memory' info_block 'Available Memory'
free -mt || true free -mt || true
info_block 'Available Disk Space' info_block 'Available Disk Space'
@ -224,7 +226,7 @@ function get_instance_info() {
info_block 'Mounted Devices' info_block 'Mounted Devices'
mount || true mount || true
info_block 'Block Devices' info_block 'Block Devices'
lsblk || true lsblk -i || true
info_block 'Block Devices Information' info_block 'Block Devices Information'
blkid || true blkid || true
info_block 'Block Device Partitions' info_block 'Block Device Partitions'
@ -253,6 +255,8 @@ function get_instance_info() {
ip a || true ip a || true
info_block 'Network Routes' info_block 'Network Routes'
ip r || true ip r || true
info_block 'DNS Configuration'
cat /etc/resolv.conf
info_block 'Trace Path from google' info_block 'Trace Path from google'
tracepath 8.8.8.8 -m 5 || true tracepath 8.8.8.8 -m 5 || true
info_block 'XEN Server Information' info_block 'XEN Server Information'