From 763958634ef98c7edd6a2685ef37838bd5d085f5 Mon Sep 17 00:00:00 2001 From: Gleb Koval Date: Sun, 10 Sep 2023 23:54:34 +0100 Subject: [PATCH] fix proxmox playbook --- infra/joplin/0000_proxmox_playbook.yaml | 61 +++++++++++++++---------- 1 file changed, 38 insertions(+), 23 deletions(-) diff --git a/infra/joplin/0000_proxmox_playbook.yaml b/infra/joplin/0000_proxmox_playbook.yaml index f74b982..15ccf42 100644 --- a/infra/joplin/0000_proxmox_playbook.yaml +++ b/infra/joplin/0000_proxmox_playbook.yaml @@ -31,30 +31,21 @@ api_token_secret: "{{ api_token_secret }}" name: "{{ vmname }}" tasks: + # Initial setup - name: Create VM community.general.proxmox_kvm: clone: "{{ node }}-debian-12" storage: nvme register: create - - name: Initial boot - when: create.changed is true - block: - - name: Start - community.general.proxmox_kvm: - state: started - register: start - retries: 30 - delay: 10 - until: start.status is defined - - name: Wait - ansible.builtin.wait_for: - timeout: 180 - - name: Poweroff - community.general.proxmox_kvm: - state: stopped - - name: Debug - ansible.builtin.debug: - var: create + - name: Wait for status + community.general.proxmox_kvm: + state: current + register: vm + retries: 30 + delay: 10 + until: vm.status is defined + + # Networking - name: Add HOME NIC community.general.proxmox_nic: interface: net0 @@ -65,6 +56,27 @@ interface: net1 firewall: false bridge: SRV + + # Initial boot + # For some reason debian cloud images don't use + # cloud-init for networking on first boot (cloud-init files + # are regenerated AFTER networking starts). But we need the + # hostname to be registered with DHCP later on so ¯\_(ツ)_/¯ + - name: Initial boot + when: create.changed is true + block: + - name: Start + community.general.proxmox_kvm: + state: started + register: start + - name: Wait # Initial apt update, apt upgrade, cloud-init + ansible.builtin.wait_for: + timeout: 180 + - name: Poweroff + community.general.proxmox_kvm: + state: stopped + + # VM Configuration - name: Resize disk community.general.proxmox_disk: disk: scsi0 @@ -85,16 +97,19 @@ onboot: true cores: 2 memory: 2048 + + # We have now enabled qemu guest agent, but have not installed it + # Rebooting will timeout if started - name: Retart VM # doesn't start if stopped when: - - create.status is defined - - create.status == "running" + - vm.status is defined + - vm.status == "running" community.general.proxmox_kvm: state: restarted timeout: 60 - name: Start VM # start if stopped when: - - create.status is defined - - create.status != "running" + - vm.status is defined + - vm.status != "running" community.general.proxmox_kvm: state: started