Complete role documentation suite per Ansible Galaxy and homelab standards: - Add role README.md with variable tables, usage examples, and deployment notes - Add meta/main.yml for Galaxy metadata and collection dependencies - Add OPENAPPLY-VAULT-REFERENCE.md with vault setup and Proxmox token guide - Add OPENAPPLY-IMPLEMENTATION-REPORT.md with architecture, validation, and handoff details Context: Completes the OpenApply LXC deployment implementation from session plan. This documentation enables users to configure vault secrets, understand role variables, and execute the two-tier Proxmox provisioning workflow. Ref: Session plan at /memories/session/plan.md (Phases 1-6 complete)
2.8 KiB
2.8 KiB
OpenApply Deployment - Vault Variables Reference
This document lists the encrypted variables that must be configured in ansible/group_vars/all/vault.yml before deploying OpenApply.
Required Vault Variables
Proxmox API Authentication
# Proxmox API endpoint
vault_proxmox_api_host: "10.0.0.201"
# Proxmox API user (typically root@pam)
vault_proxmox_api_user: "root@pam"
# Proxmox API token ID
vault_proxmox_api_token_id: "automation"
# Proxmox API token secret (encrypted)
vault_proxmox_api_token_secret: !vault |
$ANSIBLE_VAULT;1.1;AES256
[encrypted token here]
LXC Container Credentials
# Root password for the OpenApply LXC container (encrypted)
vault_openapply_lxc_root_password: !vault |
$ANSIBLE_VAULT;1.1;AES256
[encrypted password here]
Application Secrets (Optional)
# Firebase deployment token (optional, encrypted)
vault_openapply_firebase_token: !vault |
$ANSIBLE_VAULT;1.1;AES256
[encrypted token here]
Creating/Editing Vault Variables
First-time Setup
# Navigate to ansible directory
cd /home/chester/homelab/ansible
# Edit the encrypted vault file
ansible-vault edit group_vars/all/vault.yml
# Add the variables listed above
Generating a Proxmox API Token
- Log into Proxmox web UI (https://pve01:8006)
- Navigate to: Datacenter → Permissions → API Tokens
- Click "Add" button
- User:
root@pam - Token ID:
automation(or custom name) - Privilege Separation: Unchecked (for full root@pam permissions)
- Click "Add"
- Copy the secret immediately (only shown once)
- Add to vault file as shown above
Required Permissions
If using privilege separation, the token needs:
VM.Allocate- Create new containersVM.Config.Network- Configure networkingVM.PowerMgmt- Start/stop containersDatastore.AllocateSpace- Allocate storage
Security Best Practices
- Never commit unencrypted secrets to Git
- Rotate API tokens quarterly
- Use separate tokens for different automation workflows
- Audit Proxmox API access logs regularly
- Verify vault encryption:
ansible-vault view group_vars/all/vault.yml
Validation
Test that vault variables are correctly configured:
# Verify vault can be decrypted
ansible-vault view group_vars/all/vault.yml
# Test variable resolution (without execution)
ansible-playbook playbooks/deploy-openapply.yml --check --diff
Troubleshooting
"vault_proxmox_api_token_secret is undefined"
Ensure the variable is present in group_vars/all/vault.yml and the file is properly encrypted.
"Authentication failed"
- Verify token ID matches Proxmox configuration
- Confirm token is not expired
- Check privilege separation settings
- Regenerate token if necessary
"Cannot decrypt vault"
Ensure ansible/vault/.vault_pass contains the correct vault password.