Dev to main #1
@@ -0,0 +1,73 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Create a new VM with minimal options only if it doesn't exist
|
||||||
|
become: false
|
||||||
|
community.proxmox.proxmox_kvm:
|
||||||
|
validate_certs: false
|
||||||
|
node: proxmox-server
|
||||||
|
api_user: root@pam
|
||||||
|
api_host: 192.168.0.2
|
||||||
|
api_token_id: ansible
|
||||||
|
api_token_secret: "{{ proxmox_token_secret }}"
|
||||||
|
|
||||||
|
clone: debian-13-cloud-init-template
|
||||||
|
name: "{{ vm_hostname }}"
|
||||||
|
storage: main
|
||||||
|
format: qcow2
|
||||||
|
full: true
|
||||||
|
timeout: 500
|
||||||
|
|
||||||
|
- name: Sleep for 20 seconds to ensure that Proxmox has cloned the VM
|
||||||
|
become: false
|
||||||
|
ansible.builtin.wait_for:
|
||||||
|
timeout: 20
|
||||||
|
delegate_to: localhost
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
- name: Update the cloned VM with cloud-init configuration
|
||||||
|
community.proxmox.proxmox_kvm:
|
||||||
|
validate_certs: false
|
||||||
|
node: proxmox-server
|
||||||
|
api_user: root@pam
|
||||||
|
api_host: 192.168.0.2
|
||||||
|
api_token_id: ansible
|
||||||
|
api_token_secret: "{{ proxmox_token_secret }}"
|
||||||
|
|
||||||
|
name: "{{ vm_hostname }}"
|
||||||
|
# Cloud-init parameters
|
||||||
|
update: true
|
||||||
|
ide:
|
||||||
|
ide2: "local:cloudinit,format=qcow2"
|
||||||
|
ciuser: "ansible"
|
||||||
|
cipassword: "{{ ansible_become_passwd }}"
|
||||||
|
ipconfig:
|
||||||
|
ipconfig0: "ip={{ vm_ip_address }},gw=192.168.0.1"
|
||||||
|
|
||||||
|
- name: Tweak the hardware settings
|
||||||
|
become: false
|
||||||
|
community.proxmox.proxmox_kvm:
|
||||||
|
validate_certs: false
|
||||||
|
node: proxmox-server
|
||||||
|
api_user: root@pam
|
||||||
|
api_host: 192.168.0.2
|
||||||
|
api_token_id: ansible
|
||||||
|
api_token_secret: "{{ proxmox_token_secret }}"
|
||||||
|
|
||||||
|
name: "{{ vm_hostname }}"
|
||||||
|
cores: 4
|
||||||
|
memory: 4096 # Minimal value for debian based OS for smooth workflow
|
||||||
|
update: true
|
||||||
|
|
||||||
|
- name: Make sure the VM has started
|
||||||
|
become: false
|
||||||
|
community.proxmox.proxmox_kvm:
|
||||||
|
validate_certs: false
|
||||||
|
node: proxmox-server
|
||||||
|
api_user: root@pam
|
||||||
|
api_host: 192.168.0.2
|
||||||
|
api_token_id: ansible
|
||||||
|
api_token_secret: "{{ proxmox_token_secret }}"
|
||||||
|
|
||||||
|
name: "{{ vm_hostname }}"
|
||||||
|
state: started
|
||||||
|
|
||||||
@@ -17,87 +17,9 @@
|
|||||||
|
|
||||||
- name: Create a new VM with minimal options only if it doesn't exist
|
- name: Create a new VM with minimal options only if it doesn't exist
|
||||||
when: vm_status is failed or 'does not exist in cluster' in vm_status.msg
|
when: vm_status is failed or 'does not exist in cluster' in vm_status.msg
|
||||||
become: false
|
ansible.builtin.include_tasks: create_vm.yaml
|
||||||
community.proxmox.proxmox_kvm:
|
|
||||||
validate_certs: false
|
|
||||||
node: proxmox-server
|
|
||||||
api_user: root@pam
|
|
||||||
api_host: 192.168.0.2
|
|
||||||
api_token_id: ansible
|
|
||||||
api_token_secret: "{{ proxmox_token_secret }}"
|
|
||||||
|
|
||||||
clone: debian-13-cloud-init-template
|
- name: Start the VM only if needed
|
||||||
name: "{{ vm_hostname }}"
|
when: '"does not exist in cluster" in vm_status.msg or vm_status.status != "running"'
|
||||||
storage: main
|
ansible.builtin.include_tasks: start_vm.yaml
|
||||||
format: qcow2
|
|
||||||
full: true
|
|
||||||
timeout: 500
|
|
||||||
|
|
||||||
- name: Sleep for 20 seconds to ensure that Proxmox has cloned the VM
|
|
||||||
become: false
|
|
||||||
ansible.builtin.wait_for:
|
|
||||||
timeout: 20
|
|
||||||
delegate_to: localhost
|
|
||||||
changed_when: false
|
|
||||||
|
|
||||||
- name: Update the cloned VM with cloud-init configuration
|
|
||||||
community.proxmox.proxmox_kvm:
|
|
||||||
validate_certs: false
|
|
||||||
node: proxmox-server
|
|
||||||
api_user: root@pam
|
|
||||||
api_host: 192.168.0.2
|
|
||||||
api_token_id: ansible
|
|
||||||
api_token_secret: "{{ proxmox_token_secret }}"
|
|
||||||
|
|
||||||
name: "{{ vm_hostname }}"
|
|
||||||
# Cloud-init parameters
|
|
||||||
update: true
|
|
||||||
ide:
|
|
||||||
ide2: "local:cloudinit,format=qcow2"
|
|
||||||
ciuser: "ansible"
|
|
||||||
cipassword: "{{ ansible_become_passwd }}"
|
|
||||||
ipconfig:
|
|
||||||
ipconfig0: "ip={{ vm_ip_address }},gw=192.168.0.1"
|
|
||||||
|
|
||||||
- name: Sleep for 20 seconds just to make sure that all settings are applied
|
|
||||||
become: false
|
|
||||||
ansible.builtin.wait_for:
|
|
||||||
timeout: 20
|
|
||||||
delegate_to: localhost
|
|
||||||
changed_when: false
|
|
||||||
|
|
||||||
- name: Tweak the hardware settings
|
|
||||||
become: false
|
|
||||||
community.proxmox.proxmox_kvm:
|
|
||||||
validate_certs: false
|
|
||||||
node: proxmox-server
|
|
||||||
api_user: root@pam
|
|
||||||
api_host: 192.168.0.2
|
|
||||||
api_token_id: ansible
|
|
||||||
api_token_secret: "{{ proxmox_token_secret }}"
|
|
||||||
|
|
||||||
name: "{{ vm_hostname }}"
|
|
||||||
cores: 4
|
|
||||||
memory: 4096 # Minimal value for debian based OS for smooth workflow
|
|
||||||
update: true
|
|
||||||
|
|
||||||
- name: Make sure the VM has started
|
|
||||||
become: false
|
|
||||||
community.proxmox.proxmox_kvm:
|
|
||||||
validate_certs: false
|
|
||||||
node: proxmox-server
|
|
||||||
api_user: root@pam
|
|
||||||
api_host: 192.168.0.2
|
|
||||||
api_token_id: ansible
|
|
||||||
api_token_secret: "{{ proxmox_token_secret }}"
|
|
||||||
|
|
||||||
name: "{{ vm_hostname }}"
|
|
||||||
state: started
|
|
||||||
|
|
||||||
- name: Sleep for 120 seconds just to make sure that all settings are applied
|
|
||||||
become: false
|
|
||||||
ansible.builtin.wait_for:
|
|
||||||
timeout: 120
|
|
||||||
delegate_to: localhost
|
|
||||||
changed_when: false
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Make sure the VM has started
|
||||||
|
become: false
|
||||||
|
community.proxmox.proxmox_kvm:
|
||||||
|
validate_certs: false
|
||||||
|
node: proxmox-server
|
||||||
|
api_user: root@pam
|
||||||
|
api_host: 192.168.0.2
|
||||||
|
api_token_id: ansible
|
||||||
|
api_token_secret: "{{ proxmox_token_secret }}"
|
||||||
|
|
||||||
|
name: "{{ vm_hostname }}"
|
||||||
|
state: started
|
||||||
|
|
||||||
|
- name: Sleep for 120 seconds to ensure that Proxmox has cloned the VM
|
||||||
|
become: false
|
||||||
|
ansible.builtin.wait_for:
|
||||||
|
timeout: 120
|
||||||
|
delegate_to: localhost
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
Reference in New Issue
Block a user