ovn migration: Remove usage of tripleo-ansible-inventory

tripleo-ansible-inventory stopped working in Wallaby. However, TripleO
now stores the needed ansible-inventory on the undercloud filesystem.
This patch switches from dynamic generation of the Ansible inventory to
use of the already existing inventory file. Fortunately, the format of
the file remained the same as the generated one, so no other changes in
parsing are required.

Closes-Bug: #1966099

Change-Id: I3bdf878617fbe962d56ebb66d59ae7edeb9b7c38
Signed-off-by: Jakub Libosvar <libosvar@redhat.com>
This commit is contained in:
Jakub Libosvar 2022-03-23 12:28:45 -04:00
parent 1b68aebaba
commit 5b2fd1f830
2 changed files with 10 additions and 7 deletions
doc/source/ovn
tools/ovn_migration/tripleo_environment

@ -122,6 +122,12 @@ Perform the following steps in the undercloud
undercloud. If that's not possible please configure VALIDATE_MIGRATION
to False.
* OOO_WORKDIR - Name of TripleO working directory
Default: '$HOME/overcloud-deploy'
This directory contains different stacks in TripleO and its files. It
should be configured if TripleO commands were invoked with --work-dir
option.
* IMAGE_NAME - Name/ID of the glance image to us for booting a test server.
Default:'cirros'.
If the image does not exist it will automatically download and use

@ -34,6 +34,7 @@ LANG=C
: ${OPT_WORKDIR:=$PWD}
: ${STACK_NAME:=overcloud}
: ${OOO_WORKDIR:=$HOME/overcloud-deploy}
: ${PUBLIC_NETWORK_NAME:=public}
: ${IMAGE_NAME:=cirros}
: ${FLAVOR_NAME:=ovn-migration}
@ -147,13 +148,11 @@ EOF
# Generate the inventory file for ansible migration playbook.
generate_ansible_inventory_file() {
local dhcp_nodes
local inventory_file="$OOO_WORKDIR/$STACK_NAME/config-download/$STACK_NAME/tripleo-ansible-inventory.yaml"
echo "Generating the inventory file for ansible-playbook"
source $STACKRC_FILE
echo "[ovn-dbs]" > hosts_for_migration
ovn_central=True
inventory_file=$(mktemp --tmpdir ansible-inventory-XXXXXXXX.yaml)
/usr/bin/tripleo-ansible-inventory --stack $STACK_NAME --static-yaml-inventory "$inventory_file"
# We want to run ovn_dbs where neutron_api is running
OVN_DBS=$(get_group_hosts "$inventory_file" neutron_api)
for node_name in $OVN_DBS; do
@ -184,7 +183,6 @@ generate_ansible_inventory_file() {
echo $node_name ansible_host=$node_ip ansible_ssh_user=$UNDERCLOUD_NODE_USER ansible_become=true >> hosts_for_migration
done
rm -f "$inventory_file"
echo "" >> hosts_for_migration
cat >> hosts_for_migration << EOF
@ -228,12 +226,11 @@ EOF
# Check if the stack exists
function check_stack {
source $STACKRC_FILE
openstack stack show $STACK_NAME 1> /dev/null || {
if [ ! -d $OOO_WORKDIR/$STACK_NAME/config-download/$STACK_NAME ]; then
echo "ERROR: STACK_NAME=${STACK_NAME} does not exist. Please provide the stack name or its ID "
echo " via STACK_NAME environment variable."
exit 1
}
fi
}
# Check if the public network exists, and if it has floating ips available