rut-prod-ops/scripts/make_ansible_inventory.sh

40 lines
1.1 KiB
Bash
Executable file

#!/bin/bash
SERVER_LIST=$(openstack server list -f json | jq -r '.[] | .Name')
INVENTORY_FILE="ansible_inventory.ini"
rm -f $INVENTORY_FILE
echo "[all]" > $INVENTORY_FILE
WORKER_NODES_SECTION=""
CONTROL_NODES_SECTION=""
SATOSA_SECTION=""
MONITOR_SECTION=""
while read -r name; do
echo "$name" >> $INVENTORY_FILE
if [[ $name == *k8sw* ]]; then
WORKER_NODES_SECTION+="$name\n"
elif [[ $name == *k8sc* ]]; then
CONTROL_NODES_SECTION+="$name\n"
elif [[ $name == *satosa* ]]; then
SATOSA_SECTION+="$name\n"
elif [[ $name == *monitor* ]]; then
MONITOR_SECTION+="$name\n"
fi
done <<< "$SERVER_LIST"
# Append each section to the inventory file
echo -e "\n[worker_nodes]" >> $INVENTORY_FILE
echo -e "$WORKER_NODES_SECTION" >> $INVENTORY_FILE
echo -e "\n[control_nodes]" >> $INVENTORY_FILE
echo -e "$CONTROL_NODES_SECTION" >> $INVENTORY_FILE
echo -e "\n[satosa]" >> $INVENTORY_FILE
echo -e "$SATOSA_SECTION" >> $INVENTORY_FILE
echo -e "\n[monitor]" >> $INVENTORY_FILE
echo -e "$MONITOR_SECTION" >> $INVENTORY_FILE
echo "Ansible inventory file created at $INVENTORY_FILE"