Initial commit: VM Creation done
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
- name: Resize disk
|
||||
community.proxmox.proxmox_disk:
|
||||
api_host: "{{ proxmox_api_host }}"
|
||||
api_user: "{{ proxmox_api_user }}"
|
||||
api_token_id: "{{ proxmox_api_token_id }}"
|
||||
api_token_secret: "{{ proxmox_api_token_secret }}"
|
||||
vmid: "{{ item.value.vmid }}"
|
||||
disk: scsi0
|
||||
size: "{{ item.value.disk }}"
|
||||
state: resized
|
||||
loop: "{{ vms | dict2items }}"
|
||||
@@ -0,0 +1,5 @@
|
||||
- name: Enable iGPU passthrough (media VM)
|
||||
ansible.builtin.shell: |
|
||||
qm set {{ item.value.vmid }} -hostpci0 00:02.0
|
||||
when: item.value.igpu is defined and item.value.igpu
|
||||
loop: "{{ vms | dict2items }}"
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
- name: Clone VM from template
|
||||
community.proxmox.proxmox_kvm:
|
||||
api_host: "{{ proxmox_api_host }}"
|
||||
api_user: "{{ proxmox_api_user }}"
|
||||
api_token_id: "{{ proxmox_api_token_id }}"
|
||||
api_token_secret: "{{ proxmox_api_token_secret }}"
|
||||
node: "{{ item.value.node }}"
|
||||
clone: "debian-13-cloudinit"
|
||||
vmid: "{{ item.value.template_vmid }}"
|
||||
newid: "{{ item.value.vmid }}"
|
||||
storage: "{{ item.value.storage }}"
|
||||
name: "{{ item.key }}"
|
||||
full: yes
|
||||
loop: "{{ vms | dict2items }}"
|
||||
|
||||
- name: Configure VM hardware and cloud-init
|
||||
community.proxmox.proxmox_kvm:
|
||||
api_host: "{{ proxmox_api_host }}"
|
||||
api_user: "{{ proxmox_api_user }}"
|
||||
api_token_id: "{{ proxmox_api_token_id }}"
|
||||
api_token_secret: "{{ proxmox_api_token_secret }}"
|
||||
node: "{{ item.value.node }}"
|
||||
vmid: "{{ item.value.vmid }}"
|
||||
cores: "{{ item.value.cores }}"
|
||||
memory: "{{ item.value.memory }}"
|
||||
scsihw: virtio-scsi-pci
|
||||
net:
|
||||
net0: "virtio,bridge={{ item.value.network_bridge }}"
|
||||
ipconfig:
|
||||
ipconfig0: "ip={{ item.value.ip }}/24,gw=10.0.0.1"
|
||||
nameservers: "10.0.2.49 10.0.2.50 10.0.2.51"
|
||||
ciuser: "{{ ansible_user }}"
|
||||
sshkeys: "{{ lookup('file', '~/.ssh/id_ed25519.pub') }}"
|
||||
update: yes
|
||||
loop: "{{ vms | dict2items }}"
|
||||
|
||||
- name: Wait for clone to complete
|
||||
pause:
|
||||
seconds: 10
|
||||
|
||||
- include_tasks: disk.yml
|
||||
|
||||
- include_tasks: start.yml
|
||||
|
||||
- name: Wait for VMs to be ready
|
||||
wait_for:
|
||||
host: "{{ item.value.ip }}"
|
||||
port: 22
|
||||
delay: 10
|
||||
timeout: 300
|
||||
loop: "{{ vms | dict2items }}"
|
||||
delegate_to: localhost
|
||||
@@ -0,0 +1,9 @@
|
||||
- name: Start VMs
|
||||
community.proxmox.proxmox_kvm:
|
||||
api_host: "{{ proxmox_api_host }}"
|
||||
api_user: "{{ proxmox_api_user }}"
|
||||
api_token_id: "{{ proxmox_api_token_id }}"
|
||||
api_token_secret: "{{ proxmox_api_token_secret }}"
|
||||
vmid: "{{ item.value.vmid }}"
|
||||
state: started
|
||||
loop: "{{ vms | dict2items }}"
|
||||
Reference in New Issue
Block a user