tripleo-quickstart-extras/roles/external_data_plane_management/templates/validate_edpm.sh.j2

87 lines
2.9 KiB
Django/Jinja

#!/bin/bash
# {{ target_host }}
set -eux
# Discover new compute nodes
sudo podman exec -it nova_api nova-manage cell_v2 discover_hosts --verbose
# Export standalone cloud
export OS_CLOUD=standalone
# Export some needed variables
export GATEWAY='{{ tempest_cidr|nthhost(1) }}'
export PUBLIC_NETWORK_CIDR='{{ tempest_cidr }}'
export PRIVATE_NETWORK_CIDR=192.168.74.0/28
export PUBLIC_NET_START='{{ tempest_cidr|nthhost(150) }}'
export PUBLIC_NET_END='{{ tempest_cidr|nthhost(200) }}'
export DNS_SERVER=1.1.1.1
export HYPER='{{ hostvars[target_host].ansible_fqdn }}'
export INSTANCE_NAME=myserver-$HYPER
# List Available Zones
openstack availability zone list
# List hosts
openstack host list
# List Hypervisors
openstack hypervisor list
# List Compute Services
openstack compute service list
# List network agents
openstack network agent list
# Steps to validate host
# copied from https://github.com/fultonj/zed/blob/main/standalone/verify.sh
openstack keypair create --private-key ~/test_key default
openstack keypair list
# create basic security group to allow ssh/ping/dns
openstack security group create basic
# allow ssh
openstack security group rule create basic --protocol tcp --dst-port 22:22 --remote-ip 0.0.0.0/0
# allow ping
openstack security group rule create --protocol icmp basic
# allow DNS
openstack security group rule create --protocol udp --dst-port 53:53 basic
openstack network create --external --provider-physical-network datacentre --provider-network-type flat public
openstack network create --internal private
openstack subnet create public-net \
--subnet-range $PUBLIC_NETWORK_CIDR \
--no-dhcp \
--gateway $GATEWAY \
--allocation-pool start=$PUBLIC_NET_START,end=$PUBLIC_NET_END \
--network public
openstack subnet create private-net \
--subnet-range $PRIVATE_NETWORK_CIDR \
--network private
openstack floating ip create public
openstack router create vrouter
openstack router set vrouter --external-gateway public
openstack router add subnet vrouter private-net
openstack flavor create --ram 512 --disk 1 --ephemeral 0 --vcpus 1 --public m1.tiny
curl https://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img -o /home/zuul/cirros-0.4.0-x86_64-disk.img
openstack image create cirros --container-format bare --disk-format qcow2 --public --file /home/zuul/cirros-0.4.0-x86_64-disk.img
openstack image list
openstack server create \
--nic none \
--os-compute-api-version 2.74 --hypervisor-hostname $HYPER \
--flavor m1.tiny --image cirros --key-name default \
$INSTANCE_NAME
while true; do
INSTANCE_STATUS=$(openstack server show ${INSTANCE_NAME} -f json | jq -r '.status')
case "${INSTANCE_STATUS}" in
"ACTIVE")
echo "${INSTANCE_NAME} reached 'ACTIVE' status"
break
;;
"ERROR")
echo "${INSTANCE_NAME} failed"
exit 1
esac
done