74 lines
2.2 KiB
Markdown
74 lines
2.2 KiB
Markdown
# scripts
|
|
|
|
Automation utilities and helper scripts for homelab infrastructure management.
|
|
|
|
---
|
|
|
|
## Inventory
|
|
|
|
| Script | Purpose | Status |
|
|
|--------|---------|--------|
|
|
| [onboarding.sh](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:
|
|
```bash
|
|
PROXMOX_IP="192.168.1.100" # Target Proxmox server IP
|
|
PROXMOX_USER="root" # Proxmox SSH user
|
|
```
|
|
|
|
**Usage:**
|
|
```bash
|
|
cd ~/dev/homelab/scripts
|
|
chmod +x onboarding.sh
|
|
./onboarding.sh
|
|
```
|
|
|
|
**Verification:**
|
|
```bash
|
|
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<br>• No error handling for failed SSH key copy<br>• Assumes Debian/Ubuntu package manager<br>• 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
|