|
| 1 | +--- |
| 2 | +- block: |
| 3 | + - name: try to discover {{ vm_name }} ip address |
| 4 | + command: "/usr/local/bin/getvmip -r {{ vm_name }}" |
| 5 | + until: dhcp_vm_ip.stdout != "" |
| 6 | + retries: 30 |
| 7 | + delay: 1 |
| 8 | + register: dhcp_vm_ip |
| 9 | + changed_when: False |
| 10 | + rescue: |
| 11 | + - debug: |
| 12 | + msg: "could not get ip for a vm" |
| 13 | + |
| 14 | +- name: setting vm_ip variable to {{ dhcp_vm_ip.stdout }} dhcp provided ip |
| 15 | + set_fact: |
| 16 | + vm_ip: "{{ dhcp_vm_ip.stdout }}" |
| 17 | + when: vm_ipaddress | length == 0 or not static_ip|bool |
| 18 | + |
| 19 | +- set_fact: |
| 20 | + vm_ip_differ: false |
| 21 | + |
| 22 | +- name: check if VM current ip matches the user provided ip |
| 23 | + set_fact: |
| 24 | + vm_ip_differ: true |
| 25 | + when: vm_ipaddress | length != 0 and (dhcp_vm_ip.stdout != vm_ipaddress) |
| 26 | +# when: dhcp_vm_ip is not skipped and dhcp_vm_ip.stdout | length != 0 |
| 27 | + |
| 28 | +- fail: |
| 29 | + msg: "Could not find the ip address for the VM {{ vm_name }}." |
| 30 | + when: vm_ip is not defined or vm_ip | length == 0 |
| 31 | + |
| 32 | +- name: discover {{ vm_name }} netmask prefix when using DHCP |
| 33 | + shell: | |
| 34 | + /usr/local/bin/getvmip -a| awk -F'/' '/{{ vm_name }}/ {print $2}' |
| 35 | + register: netmask_prefix |
| 36 | + changed_when: False |
| 37 | + when: vm_mask_prefix is not defined |
| 38 | + |
| 39 | +- name: setting vm_mask_prefix variable to {{ vm_name }} dhcp provided netmask |
| 40 | + set_fact: |
| 41 | + vm_mask_prefix: "{{ netmask_prefix.stdout }}" |
| 42 | + when: netmask_prefix is defined and netmask_prefix is not skipped |
| 43 | + |
| 44 | +- name: discover {{ vm_name }} gateway when using DHCP |
| 45 | + shell: | |
| 46 | + ip route get 8.8.8.8|awk '/via/ {print $3}' |
| 47 | + delegate_to: "{{ vm_name }}" |
| 48 | + changed_when: false |
| 49 | + register: gateway |
| 50 | + when: vm_gateway is not defined |
| 51 | + |
| 52 | +- name: setting vm_gateway variable to {{ vm_name }} dhcp provided gateway |
| 53 | + set_fact: |
| 54 | + vm_gateway: "{{ gateway.stdout }}" |
| 55 | + when: gateway is defined and gateway is not skipped |
| 56 | + |
| 57 | +- name: Get MAC address |
| 58 | + shell: > |
| 59 | + virsh --connect qemu:///system dumpxml {{ vm_name }} | awk -F\' '/mac address/ {print $2}' |
| 60 | + delegate_to: "{{ kvm_install_host }}" |
| 61 | + register: vm_mac_result |
| 62 | + changed_when: false |
| 63 | + when: vm_name in all_instances.list_vms and vm_mac is not defined |
| 64 | + |
| 65 | +- name: setting {{ vm_name }} vm_mac variable to {{ vm_mac_result.stdout }} |
| 66 | + set_fact: |
| 67 | + vm_mac: "{{ vm_mac_result.stdout }}" |
| 68 | + when: vm_name in all_instances.list_vms and vm_mac is not defined |
| 69 | + |
| 70 | + |
| 71 | +- name: generate {{ vm_name }} ifcfg interface template |
| 72 | + template: |
| 73 | + src: ifcfg.j2 |
| 74 | + dest: "{{ vm_ifcfg }}" |
0 commit comments