64 lines
1.8 KiB
Markdown
64 lines
1.8 KiB
Markdown
# Role: proxmox_vm
|
|
|
|
## Description
|
|
Creates and configures virtual machines on Proxmox VE hypervisor with cloud-init support and automated provisioning.
|
|
|
|
## Requirements
|
|
- Ansible 2.9+
|
|
- Proxmox VE server
|
|
- `community.general` collection
|
|
- Valid Proxmox credentials in vault
|
|
|
|
## Features
|
|
- Automated VM creation with cloud-init
|
|
- Configurable CPU, memory, and disk resources
|
|
- Network configuration with DHCP or static IP
|
|
- SSH key injection for passwordless access
|
|
- Ubuntu Server template support
|
|
|
|
## Variables
|
|
|
|
| Variable | Default | Description |
|
|
|----------|---------|-------------|
|
|
| `vm_memory` | `8192` | RAM allocation in MB |
|
|
| `vm_cores` | `2` | Number of CPU cores |
|
|
| `vm_disk_size` | `20G` | Disk size |
|
|
| `vm_iso` | `ubuntu-24.04-live-server-amd64.iso` | Installation ISO |
|
|
| `vm_ciuser` | `master` | Default cloud-init user |
|
|
| `vm_storage` | `local-lvm` | Proxmox storage backend |
|
|
|
|
## Vault Variables (Required)
|
|
|
|
| Variable | Description |
|
|
|----------|-------------|
|
|
| `vault_proxmox_host` | Proxmox server IP/hostname |
|
|
| `vault_proxmox_user` | Proxmox username (e.g., root@pam) |
|
|
| `vault_proxmox_password` | Proxmox password |
|
|
| `vault_vm_cipassword` | VM default user password |
|
|
| `vault_ssh_public_key` | SSH public key for VM access |
|
|
|
|
## Dependencies
|
|
- Proxmox VE server with API access
|
|
- ISO images uploaded to Proxmox storage
|
|
|
|
## Example Playbook
|
|
|
|
```yaml
|
|
- hosts: localhost
|
|
roles:
|
|
- role: proxmox_vm
|
|
vm_name: "test-vm"
|
|
vm_id: 999
|
|
vm_memory: 4096
|
|
```
|
|
|
|
## Tags
|
|
- `proxmox`: All Proxmox operations
|
|
- `vm`: VM creation tasks
|
|
- `infrastructure`: Infrastructure provisioning
|
|
|
|
## Notes
|
|
- Requires Proxmox API credentials in vault
|
|
- VM IDs must be unique on Proxmox cluster
|
|
- Cloud-init requires compatible ISO images
|
|
- VMs are created but not started by default |