21. Validate the overcloud deploymentΒΆ

  • Create cleanup env function for heat
function cleanup() {
     heat stack-delete -y pingtest_stack
    if [[ $(tripleo wait_for -w 300 -d 30 -s "Stack not found" -- "heat stack-show pingtest_stack") ]]; then
        echo "Heat stack delete"
    else
        if [[ $(heat stack-list | grep pingtest_stack | grep -i failed) ]]; then
                     heat stack-delete -y pingtest_stack
                fi
    fi
    # Remove images and network
    rm -f /home/stack/cirros_images/cirros.*
    glance image-list | grep pingtest | awk '{print $2}' | while read IMAGEID; do glance image-delete $IMAGEID; done
    #neutron net-delete nova > /dev/null 2>&1 || true
    neutron net-delete nova
}
  • Source tenantrc file
source /home/stack/overcloudrc
  • Check if an environment is already deployed and, in case, cleanup it
[ "x$(heat stack-list | grep pingtest_stack || true)" != "x" ] && cleanup
# get validate image
if [[ ! -d /home/stack/cirros_images ]]; then
    mkdir /home/stack/cirros_images;
fi
IMAGE_PATH=/home/stack/cirros_images/cirros.img
INITRAMFS_PATH=/home/stack/cirros_images/cirros.initramfs
KERNEL_PATH=/home/stack/cirros_images/cirros.kernel
curl -L -o $IMAGE_PATH http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
curl -L -o $INITRAMFS_PATH http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-initramfs
curl -L -o $KERNEL_PATH http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-kernel
  • Upload cirros image into glance
ramdisk_id=$(openstack image create pingtest_initramfs --public --container-format ari --disk-format ari --file $INITRAMFS_PATH | grep ' id ' | awk '{print $4}')
kernel_id=$(openstack image create pingtest_kernel --public --container-format aki --disk-format aki --file $KERNEL_PATH | grep ' id ' | awk '{print $4}')
openstack image create pingtest_image --public --container-format ami --disk-format ami \
    --property kernel_id=$kernel_id --property ramdisk_id=$ramdisk_id --file $IMAGE_PATH
  • Create external network
..note: Liberty comparability:
heat can’t create an external network in liberty)
neutron net-create nova --router:external=True \
    --provider:network_type vlan \
    --provider:physical_network datacentre \
    --provider:segmentation_id 105


neutron subnet-create --name ext-subnet \
    --allocation-pool \
    start=10.8.149.45,end=10.8.149.64 \
    --disable-dhcp \
    --gateway 10.8.149.254 \
    nova 10.8.149.0/24
  • Create test ping stack
heat stack-create pingtest_stack --template-file  tenantvm_floatingip.yaml
  • Get the floating ip
novaid=`nova list|grep Server1 |awk  '{print $2}'`
floating_ip=`nova floating-ip-list | grep $novaid | awk  '{print $4}'`
nova console-log Server1
ping -c 1 $floating_ip
nova show Server1 || :
nova service-list || :
neutron agent-list ||:
nova console-log Server1