From 0a673e300800b91342499cec9cd482b5d2d9c603 Mon Sep 17 00:00:00 2001 From: binary Date: Tue, 10 Nov 2020 20:46:04 +0100 Subject: Fully working init for alpine vm --- roles/vmm/tasks/init_vm.yml | 38 ----------------------------- roles/vmm/tasks/init_vm_alpine.yml | 50 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 38 deletions(-) delete mode 100644 roles/vmm/tasks/init_vm.yml create mode 100644 roles/vmm/tasks/init_vm_alpine.yml (limited to 'roles/vmm/tasks') diff --git a/roles/vmm/tasks/init_vm.yml b/roles/vmm/tasks/init_vm.yml deleted file mode 100644 index 6b5cf4d..0000000 --- a/roles/vmm/tasks/init_vm.yml +++ /dev/null @@ -1,38 +0,0 @@ - -# vmm ~~ tasks/init_vm.yml - ---- - -- include_role: - name: serial - -- name: Stop vm if running - shell: vmctl stop "{{ guest }}" ; vmctl stop vm-tmp - ignore_errors: true - -- set_fact: - iso: "{{ vms | selectattr('name', 'equalto', guest) | map(attribute='iso') | first }}" - -- debug: - var: iso - -- include: set_facts.yml - -- name: Start temporary vm - shell: vmctl start -r {{ iso_latest }} -d {{ disk_file }} -n {{ vmm.switch.name }} -m 1G vm-tmp - -- name: Pause 30 seconds for vm boot - pause: - seconds: 30 - -- name: Init vm via script - script: init_vm_serial.py \ - {{ guest }} \ - {{ hostvars[guest].ip.out }} \ - {{ hypervisor.gateway }} \ - {{ hypervisor.mask }} \ - {{ _i.dns[0] }} \ - "{{ lookup('file', inventory_dir + '/files/pubkeys/rgoncalves.pub') }}" - args: - executable: "/usr/local/bin/python3" - diff --git a/roles/vmm/tasks/init_vm_alpine.yml b/roles/vmm/tasks/init_vm_alpine.yml new file mode 100644 index 0000000..0c66a44 --- /dev/null +++ b/roles/vmm/tasks/init_vm_alpine.yml @@ -0,0 +1,50 @@ + +# vmm ~~ tasks/init_vm_alpine.yml + +--- + +- set_fact: + iso: "{{ vms | selectattr('name', 'equalto', guest) | map(attribute='iso') | first }}" + +- include: set_facts.yml + +- name: Check for existing drive + stat: + path: "{{ disk_file }}" + register: st_disk + +- fail: + msg: "No empty disk detected ! You need to generated disks via hypervisor playbook" + when: not st_disk.stat.exists + +- fail: + msg: "Existing installation detected ! Manual action on host required" + when: st_disk.stat.size > 500000 + +- include_role: + name: serial + +- name: Copy vm init script + copy: + src: init_vm_alpine.py + dest: /data/python/init_vm_alpine.py + +- name: Stop vm if running + shell: vmctl stop "{{ guest }}" ; vmctl stop vm-tmp + ignore_errors: true + +- name: Start temporary vm + shell: vmctl start -r {{ iso_latest }} -d {{ disk_file }} -n {{ vmm.switch.name }} -m 1G vm-tmp + +- name: Pause 30 seconds for vm boot + pause: + seconds: 30 + +- name: Init vm via script + command: python3 /data/python/init_vm_alpine.py \ + {{ guest }} \ + {{ hostvars[guest].ip.out }} \ + {{ hypervisor.gateway }} \ + {{ hypervisor.mask }} \ + {{ _i.dns[0] }} \ + "{{ lookup('file', inventory_dir + '/files/pubkeys/rgoncalves.pub') }}" -- cgit v1.2.3