summaryrefslogtreecommitdiffstats
path: root/playbooks/roles/jump-vm/tasks/main.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'playbooks/roles/jump-vm/tasks/main.yaml')
-rw-r--r--playbooks/roles/jump-vm/tasks/main.yaml32
1 files changed, 28 insertions, 4 deletions
diff --git a/playbooks/roles/jump-vm/tasks/main.yaml b/playbooks/roles/jump-vm/tasks/main.yaml
index 2c0cc37..c5738c3 100644
--- a/playbooks/roles/jump-vm/tasks/main.yaml
+++ b/playbooks/roles/jump-vm/tasks/main.yaml
@@ -33,6 +33,16 @@
when:
jumphost.name in shutdown_vms.list_vms
+- name: remove dhcp leases
+ shell: |
+ jq 'del( .[] | select(.domain == "{{ jumphost.name }}" or .hostname == "{{ jumphost.name }}"))' /var/lib/libvirt/dnsmasq/virbr0.{{ item }} > /tmp/{{ item }}.tmp
+ mv /tmp/{{ item }}.tmp /var/lib/libvirt/dnsmasq/virbr0.{{ item }}
+ with_items:
+ - status
+ - macs
+ become: true
+ when: deployment_type == 'k8s'
+
- name: clean workspace
file:
path: "{{ workspace }}"
@@ -71,8 +81,9 @@
- meta-data
- name: create config drive
- command: "genisoimage -output {{ workspace }}/{{ jumphost.name }}-cidata.iso -volid cidata -joliet -rock \
- {{ workspace }}/user-data {{ workspace }}/meta-data {{ workspace }}/network-config"
+ command: "genisoimage -output {{ workspace }}/{{ jumphost.name }}-cidata.iso -volid cidata -joliet -rock \
+ {{ workspace }}/user-data {{ workspace }}/meta-data \
+ {{ workspace + '/network-config' if deployment_type == 'full' else '' }}"
# currently commented out because of portability issues between Centos and Ubuntu
# - name: setting root password for debugging
@@ -85,7 +96,7 @@
--disk path={{ workspace }}/kuberef-jump.qcow2,format=qcow2 \
--disk {{ workspace }}/kuberef-jump-cidata.iso,device=cdrom \
--network network=default,model=virtio,mac='{{ jumphost.interfaces[engine.net_config[engine.public_network].interface].mac_address }}' \
- --network bridge=pxebr,model=rtl8139,mac='{{ jumphost.interfaces[engine.net_config[engine.pxe_network].interface].mac_address }}' \
+ {{ '--network bridge=pxebr,model=rtl8139,mac=' + jumphost.interfaces[engine.net_config[engine.pxe_network].interface].mac_address if deployment_type == 'full' else '' }} \
--import --noautoconsole"
- name: start jump VM
@@ -93,7 +104,20 @@
name: "{{ jumphost.name }}"
state: running
+- name: wait for ip to be visible
+ shell: virsh domifaddr "{{ jumphost.name }}" --full | grep "{{ jumphost.interfaces[engine.net_config[engine.public_network].interface].mac_address }}" | awk '{print $4}' | tail -n 1
+ register: ipblock
+ retries: 30
+ delay: 1
+ until: ipblock.stdout != ""
+ when: deployment_type == 'k8s'
+
+- name: store ip
+ set_fact:
+ vm_ip: "{{ ipblock.stdout.split('/') }}"
+ when: deployment_type == 'k8s'
+
- name: wait for VM to be reachable
wait_for:
- host: "{{ jumphost.interfaces[idf.net_config[engine.pxe_network].interface].address }}"
+ host: "{{ ( vm_ip is defined and vm_ip.0 or '' ) if 'k8s' in deployment_type else jumphost.interfaces[idf.net_config[engine.pxe_network].interface].address | default('') }}"
port: 22