--- - name: Get net id shell: 'neutron net-show {{ openstack_network_prefix }}-net | awk "/\\/ {print \$4}"' register: net_id_result - name: Launch instance(s) nova_compute: name: '{{ item }}' image_name: '{{ deployment_vars[deployment_type].image.name | default(omit, true) }}' image_id: '{{ deployment_vars[deployment_type].image.id | default(omit, true) }}' flavor_ram: '{{ openstack_flavor[k8s_type].ram | default(omit, true) }}' flavor_id: '{{ openstack_flavor[k8s_type].id | default(omit, true) }}' flavor_include: '{{ openstack_flavor[k8s_type].include | default(omit, true) }}' key_name: '{{ openstack_ssh_keypair }}' security_groups: '{{ openstack_network_prefix }}-{{ k8s_type }}-secgrp' nics: - net-id: '{{ net_id_result.stdout }}' user_data: "{{ lookup('file','files/user-data') }}" meta: env: '{{ cluster }}' host-type: '{{ type }}' env-host-type: '{{ cluster }}-openshift-{{ type }}' floating_ip_pools: '{{ openstack_floating_ip_pools }}' with_items: instances register: nova_compute_result - name: Add new instances groups and variables add_host: hostname: '{{ item.item }}' ansible_ssh_host: '{{ item.public_ip }}' ansible_ssh_user: "{{ deployment_vars[deployment_type].ssh_user }}" ansible_sudo: "{{ deployment_vars[deployment_type].sudo }}" groups: 'tag_env_{{ cluster }}, tag_host-type_{{ type }}, tag_env-host-type_{{ cluster }}-openshift-{{ type }}' with_items: nova_compute_result.results - name: Wait for ssh wait_for: host: '{{ item.public_ip }}' port: 22 with_items: nova_compute_result.results - name: Wait for user setup command: 'ssh -o StrictHostKeyChecking=no -o PasswordAuthentication=no -o ConnectTimeout=10 -o UserKnownHostsFile=/dev/null {{ hostvars[item.item].ansible_ssh_user }}@{{ item.public_ip }} echo {{ hostvars[item.item].ansible_ssh_user }} user is setup' register: result until: result.rc == 0 retries: 30 delay: 1 with_items: nova_compute_result.results