summaryrefslogtreecommitdiffstats
path: root/playbooks/openstack/openshift-cluster/tasks/launch_instances.yml
blob: 1b9696aacf4c4e2b991553ed65dd3d984bfad892 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
---
- name: Get net id
  shell: 'neutron net-show {{ openstack_network_prefix }}-net | awk "/\\<id\\>/ {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