Skip to content

Commit

Permalink
Addapt workflows to new inventory, add step to print inventory
Browse files Browse the repository at this point in the history
  • Loading branch information
fcaffieri committed Feb 21, 2025
1 parent 6b63684 commit f30f277
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 19 deletions.
10 changes: 7 additions & 3 deletions .github/workflows/Test_installation_assistant.yml
Original file line number Diff line number Diff line change
Expand Up @@ -159,15 +159,19 @@ jobs:
--track-output $ALLOCATOR_PATH/track.yml --inventory-output $ALLOCATOR_PATH/inventory.yml --instance-name gha_${{ github.run_id }}_assistant_test \
--label-team devops --label-termination-date 1d
INSTANCE_ID=$(yq e '.all.hosts | keys | .[0]' $ALLOCATOR_PATH/inventory.yml)
yq e ".all.hosts.$INSTANCE_ID | to_entries | .[] | .key + \"=\" + .value" $ALLOCATOR_PATH/inventory.yml > $ALLOCATOR_PATH/inventory_mod.yml
sed -n '/ansible_/p' $ALLOCATOR_PATH/inventory.yml | sed 's/^[ ]*//g' | sed 's/: */=/g' > $ALLOCATOR_PATH/inventory_mod.yml
INSTANCE_ID=$(grep -A1 "hosts:" $ALLOCATOR_PATH/inventory.yml | tail -n1 | sed 's/^ *//g' | sed 's/:.*//g')
echo "ansible_host=$INSTANCE_ID" >> $ALLOCATOR_PATH/inventory_mod.yml
sed -i 's/-o StrictHostKeyChecking=no/\"-o StrictHostKeyChecking=no\"/g' $ALLOCATOR_PATH/inventory_mod.yml
source $ALLOCATOR_PATH/inventory_mod.yml
echo "[gha_instance]" > $ALLOCATOR_PATH/inventory
echo "$INSTANCE_ID ansible_port=$ansible_port ansible_user=$ansible_user ansible_ssh_private_key_file=$ansible_ssh_private_key_file ansible_ssh_common_args='$ansible_ssh_common_args'" >> $ALLOCATOR_PATH/inventory
echo "$ansible_host ansible_port=$ansible_port ansible_user=$ansible_user ansible_ssh_private_key_file=$ansible_ssh_private_key_file ansible_ssh_common_args='$ansible_ssh_common_args'" >> $ALLOCATOR_PATH/inventory
- name: inventory
run: cat $ALLOCATOR_PATH/inventory

- name: Execute provision playbook
run: |
Expand Down
19 changes: 13 additions & 6 deletions .github/workflows/Test_installation_assistant_distributed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -191,12 +191,16 @@ jobs:
--query 'Reservations[*].Instances[*].PrivateIpAddress' \
--output text)
# Extract variables from the new YAML format
ansible_host=$(yq e ".all.hosts.\"$instance_id\".ansible_host" $ALLOCATOR_PATH/inventory_${instance_name}.yml)
ansible_user=$(yq e ".all.hosts.\"$instance_id\".ansible_user" $ALLOCATOR_PATH/inventory_${instance_name}.yml)
ansible_port=$(yq e ".all.hosts.\"$instance_id\".ansible_port" $ALLOCATOR_PATH/inventory_${instance_name}.yml)
ansible_ssh_private_key_file=$(yq e ".all.hosts.\"$instance_id\".ansible_ssh_private_key_file" $ALLOCATOR_PATH/inventory_${instance_name}.yml)
ansible_ssh_common_args=$(yq e ".all.hosts.\"$instance_id\".ansible_ssh_common_args" $ALLOCATOR_PATH/inventory_${instance_name}.yml)
# Extract variables and convert to key=value format, skipping the all/hosts hierarchy
sed -n "/^all:/,/^[^ ]/p" $ALLOCATOR_PATH/inventory_${instance_name}.yml | \
sed -n "/hosts:/,/^[^ ]/p" | \
sed -n "/$instance_id:/,/^[^ ]/p" | \
grep -v "^all:\|^ hosts:\|^ $instance_id:" | \
sed 's/^ //g' | \
sed 's/: */=/g' > $ALLOCATOR_PATH/inventory_mod_${instance_name}.yml
sed -i 's/-o StrictHostKeyChecking=no/\"-o StrictHostKeyChecking=no\"/g' $ALLOCATOR_PATH/inventory_mod_${instance_name}.yml
source $ALLOCATOR_PATH/inventory_mod_${instance_name}.yml
# Add instance to corresponding group
if [[ $i -eq 0 ]]; then
Expand Down Expand Up @@ -226,6 +230,9 @@ jobs:
cat $inventory_dashboards >> $inventory_file
cat $inventory_common >> $inventory_file
- name: inventory
run: cat $ALLOCATOR_PATH/inventory

- name: Execute provision playbook
run: |
INSTALL_DEPS=true
Expand Down
14 changes: 4 additions & 10 deletions .github/workflows/offline-installation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -149,18 +149,12 @@ jobs:
--track-output $ALLOCATOR_PATH/track.yml --inventory-output $ALLOCATOR_PATH/inventory.yml --instance-name gha_${{ env.COMPOSITE_NAME }}_${{ github.run_id }}_assistant_test \
--label-team devops --label-termination-date 1d
# Extraer el ID de la instancia (primera clave bajo hosts)
INSTANCE_ID=$(grep -A 1 "hosts:" $ALLOCATOR_PATH/inventory.yml | tail -n 1 | cut -d ":" -f 1 | tr -d ' ')
sed -n '/hosts:/,/^[^ ]/p' $ALLOCATOR_PATH/inventory.yml | grep "ansible_" | sed 's/^[ ]*//g' > $ALLOCATOR_PATH/inventory_mod.yml
# Crear archivo temporal con las variables relevantes
grep -A 6 "$INSTANCE_ID:" $ALLOCATOR_PATH/inventory.yml | grep "ansible_" > $ALLOCATOR_PATH/inventory_vars.yml
sed 's/: */=/g' $ALLOCATOR_PATH/inventory_mod.yml > $ALLOCATOR_PATH/inventory_vars.yml
sed -i 's/-o StrictHostKeyChecking=no/\"-o StrictHostKeyChecking=no\"/g' $ALLOCATOR_PATH/inventory_vars.yml
source $ALLOCATOR_PATH/inventory_vars.yml
# Convertir el formato YAML a variables de entorno
sed 's/: */=/g' $ALLOCATOR_PATH/inventory_vars.yml | sed 's/^[ \t]*//' > $ALLOCATOR_PATH/inventory_mod.yml
sed -i 's/-o StrictHostKeyChecking=no/\"-o StrictHostKeyChecking=no\"/g' $ALLOCATOR_PATH/inventory_mod.yml
source $ALLOCATOR_PATH/inventory_mod.yml
# Crear el archivo de inventario en el formato requerido
echo "[gha_instance]" > $ALLOCATOR_PATH/inventory
echo "$ansible_host ansible_port=$ansible_port ansible_user=$ansible_user ansible_ssh_private_key_file=$ansible_ssh_private_key_file ansible_ssh_common_args='$ansible_ssh_common_args'" >> $ALLOCATOR_PATH/inventory
Expand Down

0 comments on commit f30f277

Please sign in to comment.