Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vivami/proxmox-automation
Terraform and Ansible for VM and CT deployment and provisioning on Proxmox
https://github.com/vivami/proxmox-automation
Last synced: 12 days ago
JSON representation
Terraform and Ansible for VM and CT deployment and provisioning on Proxmox
- Host: GitHub
- URL: https://github.com/vivami/proxmox-automation
- Owner: vivami
- Created: 2021-01-02T12:03:26.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-09-26T04:05:51.000Z (about 2 years ago)
- Last Synced: 2024-08-01T19:39:58.777Z (3 months ago)
- Language: HCL
- Homepage:
- Size: 6.84 KB
- Stars: 106
- Watchers: 4
- Forks: 36
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# proxmox-automation
Automations for Proxmox using Terraform and Ansible. Can be used to setup and provision containers and virtual machines. Read [my post](https://vanmieghem.io/automating-proxmox-with-terraform-ansible/) for more information.
### Usage
1. Clone the repo and `cd proxmox-automation/tf/ct` (for a container)
2. Install `ansible` and `terraform` (on a Mac `brew install ansible terraform`)
3. Configure the variables in `var.tf` and add your public keys to `ansible/files/authorized_keys`. To provision multiple resources, add more hostnames and IP addresses to the defined list in `var.tf`.
4. `export PM_PASS='your-PVE-password'`
5. `terraform init` (this should pull in the Terraform Proxmox provider and configure the Terraform project)
6. `terraform plan -out plan`
7. `terraform apply`### Creating a cloud-init VM template
On the pve host:
1. `apt install cloud-init`
2. Create a template VM (in this case Ubuntu 20.04):
```
wget http://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img
export VM_ID="9000"
qm create 9000 --memory 2048 --net0 virtio,bridge=vmbr0 --sockets 1 --cores 2 --vcpu 2 -hotplug network,disk,cpu,memory --agent 1 --name cloud-init-focal --ostype l26
qm importdisk $VM_ID focal-server-cloudimg-amd64.img local-lvm
qm set $VM_ID --scsihw virtio-scsi-pci --virtio0 local-lvm:vm-$VM_ID-disk-0
qm set $VM_ID --ide2 local-lvm:cloudinit
qm set $VM_ID --boot c --bootdisk virtio0
qm set $VM_ID --serial0 socket
qm template $VM_ID
rm focal-server-cloudimg-amd64.img
```