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

View File

@@ -122,6 +122,12 @@ Perform the following steps in the undercloud
undercloud. If that's not possible please configure VALIDATE_MIGRATION undercloud. If that's not possible please configure VALIDATE_MIGRATION
to False. 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. * IMAGE_NAME - Name/ID of the glance image to us for booting a test server.
Default:'cirros'. Default:'cirros'.
If the image does not exist it will automatically download and use If the image does not exist it will automatically download and use

View File

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