scripts

Automation utilities and helper scripts for homelab infrastructure management.


Inventory

Script Purpose Status
onboarding.sh Bootstrap Ansible control node for Proxmox management 🟡 DRAFT - Testing Required

onboarding.sh

Purpose: Automated setup of Ansible control node for Proxmox infrastructure management.

What it does:

  1. Installs Ansible and Proxmoxer Python library
  2. Detects or generates SSH keypair (ED25519 preferred, RSA fallback)
  3. Copies public key to Proxmox server for passwordless authentication
  4. Generates Ansible inventory file (hosts.ini) with Proxmox connection details

Prerequisites:

  • Debian/Ubuntu-based system (uses apt)
  • Network access to Proxmox server
  • Initial SSH password for target Proxmox server

Configuration: Edit the following variables at the top of the script:

PROXMOX_IP="192.168.1.100"       # Target Proxmox server IP
PROXMOX_USER="root"              # Proxmox SSH user

Usage:

cd ~/dev/homelab/scripts
chmod +x onboarding.sh
./onboarding.sh

Verification:

ansible proxmox_nodes -m ping -i hosts.ini

⚠️ Development Status

Script Testing Status Known Issues
onboarding.sh Untested in production • Hardcoded Proxmox IP/user variables
• No error handling for failed SSH key copy
• Assumes Debian/Ubuntu package manager
• No validation of Proxmox connectivity

DO NOT USE IN PRODUCTION until the following are addressed:

  1. Error Handling: Add validation checks for each step
  2. Idempotency: Verify script can be safely re-run
  3. Multi-OS Support: Test on RHEL/Arch variants or add OS detection
  4. Interactive Mode: Prompt for PROXMOX_IP/USER instead of manual editing
  5. Rollback: Add cleanup mechanism for failed installations

Contributing

When adding new scripts:

  1. Update the Inventory table with script name and purpose
  2. Document prerequisites, configuration, and usage
  3. Mark status as 🟡 DRAFT until production-tested
  4. Add to Development Status table with known issues