# 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') }}"