You've already forked role_proxmox
feat: Create role
This commit is contained in:
71
tasks/vm_template.yml
Normal file
71
tasks/vm_template.yml
Normal file
@@ -0,0 +1,71 @@
|
||||
---
|
||||
# tasks file for proxmox
|
||||
|
||||
- name: Create instance
|
||||
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 }}"
|
||||
agent: "enabled=1,fstrim_cloned_disks=1"
|
||||
autostart: "{{ proxmox_instance_autostart }}"
|
||||
cores: "{{ proxmox_instance_cores }}"
|
||||
cpu: "{{ proxmox_instance_cpu }}"
|
||||
hotplug: "{{ proxmox_instance_hotplug | join(',') }}"
|
||||
ipconfig: "{{ proxmox_instance_ipconfig }}"
|
||||
memory: "{{ proxmox_instance_memory }}"
|
||||
name: "{{ inventory_hostname }}"
|
||||
nameservers: "{{ proxmox_instance_cloudinit_nameservers }}"
|
||||
net: "{{ proxmox_instance_net }}"
|
||||
node: "{{ proxmox_instance_node }}"
|
||||
numa_enabled: "{{ proxmox_instance_numa }}"
|
||||
onboot: "{{ proxmox_instance_onboot }}"
|
||||
scsihw: virtio-scsi-single
|
||||
tablet: false
|
||||
vmid: "{{ proxmox_instance_vmid }}"
|
||||
delegate_to: "{{ proxmox_delegate_to | default(omit) }}"
|
||||
register: create_instance
|
||||
notify:
|
||||
- Configure cloud-init
|
||||
- Start instance
|
||||
- Wait SSH port is open
|
||||
- Wait cloud-init
|
||||
|
||||
- name: Import virtual disk
|
||||
ansible.builtin.command:
|
||||
cmd: >-
|
||||
qm set {{ proxmox_instance_vmid }}
|
||||
--{{ proxmox_instance_disks[0].disk }}
|
||||
{{ proxmox_instance_disks[0].storage }}:0,import-from={{ proxmox_instance_disks[0].img }}
|
||||
chdir: "{{ proxmox_instance_disks[0].img | ansible.builtin.dirname }}"
|
||||
when: create_instance.changed # noqa: no-handler no-changed-when
|
||||
become: true
|
||||
delegate_to: "{{ proxmox_delegate_to | default(omit) }}"
|
||||
|
||||
- name: Workaround to add args to the VM
|
||||
ansible.builtin.lineinfile:
|
||||
path: /etc/pve/qemu-server/{{ proxmox_instance_vmid }}.conf
|
||||
line: "args: {{ proxmox_instance_args }}"
|
||||
state: present
|
||||
when: proxmox_instance_args | length > 0
|
||||
become: true
|
||||
delegate_to: "{{ proxmox_delegate_to | default(omit) }}"
|
||||
|
||||
- name: Add configuration items
|
||||
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 }}"
|
||||
boot: order=virtio0
|
||||
name: "{{ inventory_hostname }}"
|
||||
node: "{{ proxmox_instance_node }}"
|
||||
serial:
|
||||
serial0: socket
|
||||
update: true
|
||||
update_unsafe: true
|
||||
vmid: "{{ proxmox_instance_vmid }}"
|
||||
delegate_to: "{{ proxmox_delegate_to | default(omit) }}"
|
||||
notify:
|
||||
- Start instance
|
||||
- Wait SSH port is open
|
Reference in New Issue
Block a user