#!/usr/bin/env bash set -e PLAYBOOK="$1" shift || true # capture any extra ansible-playbook flags (--check, --limit, -vv, etc.) if [ -z "$PLAYBOOK" ]; then echo "Usage: run [extra ansible-playbook args]" echo "" echo "Available playbooks:" echo " os_update_vms" echo " os_update_pve" echo " os_update_pve_verify" echo " os_update_pbs" echo " container_update" echo " app_update" echo " disk_cleanup" echo " automation_self_update" echo " dashy_fleet_audit" echo " dashy_selfhosting_coverage" echo " emby_tag_sync" echo " jellyfin_tag_sync" echo "" echo "Examples:" echo " run os_update_vms" echo " run os_update_vms --check --limit caddy -vv" exit 1 fi ANSIBLE_DIR="/path/to/ansible" VENV="$HOME/ansible-modern" SSH_KEY="$HOME/.ssh/auto" VAULT_FILE="$ANSIBLE_DIR/.vault_pass.txt" INVENTORY="$ANSIBLE_DIR/inventory.yml" case "$PLAYBOOK" in os_update_vms|os_update_pve|os_update_pve_verify|os_update_pbs|container_update|app_update|disk_cleanup|automation_self_update|dashy_fleet_audit|dashy_selfhosting_coverage|emby_tag_sync|jellyfin_tag_sync) ;; *) echo "Unknown playbook: $PLAYBOOK" exit 1 ;; esac cd "$ANSIBLE_DIR" VAULT_ARGS=() if [ -f "$VAULT_FILE" ]; then VAULT_ARGS=(--vault-password-file "$VAULT_FILE") fi exec "$VENV/bin/ansible-playbook" \ -i "$INVENTORY" \ "playbooks/${PLAYBOOK}.yml" \ "${VAULT_ARGS[@]}" \ "$@"