| --- |
| # roles/config-virt/tasks/main.yml |
| |
| - name: Get ubuntu image for uvtool |
| command: uvt-simplestreams-libvirt sync --source http://cloud-images.ubuntu.com/daily \ |
| release={{ ansible_distribution_release }} arch=amd64 |
| async: 1200 |
| poll: 0 |
| register: uvt_sync |
| |
| - name: collect libvirt network facts |
| virt_net: |
| command=facts |
| |
| - name: Tear down libvirt's default network |
| when: ansible_libvirt_networks["default"] is defined |
| virt_net: |
| command={{ item }} |
| name=default |
| with_items: |
| - destroy |
| - undefine |
| |
| # note, this isn't idempotent, so may need manual fixing if it changes |
| - name: define libvirt networks IP/DHCP/DNS settings |
| virt_net: |
| name=xos-{{ item.name }} |
| command=define |
| xml='{{ lookup("template", "virt_net.xml.j2") }}' |
| with_items: '{{ virt_nets }}' |
| |
| - name: collect libvirt network facts after defining new network |
| virt_net: |
| command=facts |
| |
| - name: start libvirt networks |
| when: ansible_libvirt_networks["xos-{{ item.name }}"].state != "active" |
| virt_net: |
| name=xos-{{ item.name }} |
| command=create |
| with_items: '{{ virt_nets }}' |
| |
| - name: have libvirt networks autostart |
| when: ansible_libvirt_networks["xos-{{ item.name }}"].autostart != "yes" |
| virt_net: |
| name=xos-{{ item.name }} |
| autostart=yes |
| with_items: '{{ virt_nets }}' |
| |
| - name: Have libvirt enable port forwarding to VM's |
| become: yes |
| template: |
| src={{ item }}.j2 |
| dest=/etc/libvirt/hooks/{{ item }} |
| mode=0755 owner=root |
| with_items: |
| - daemon |
| - qemu |
| notify: |
| - reload libvirt-bin |
| - run qemu hook |
| |
| - name: Wait for uvt-kvm image to be available |
| async_status: jid={{ uvt_sync.ansible_job_id }} |
| register: uvt_sync_result |
| until: uvt_sync_result.finished |
| delay: 10 |
| retries: 120 |