- openstack/create_devstack_securitygroup
- openstack/create_devstack_keypair
- openstack/create_devstack_hosts
+- name: Create cluster operator access keypair
+ hosts: "operator0"
+ gather_facts: False
+ tasks:
+ - name: Wait for system to become reachable
+ wait_for_connection:
+ - name: Generate an OpenSSH keypair with the default values (4096 bits, rsa)
+ community.crypto.openssh_keypair:
+ path: "~/.ssh/{{ keypair.name }}"
+ register: key
+- name: Deploy cluster operator public key
+ hosts: "cluster0"
+ gather_facts: False
+ tasks:
+ - name: Wait for system to become reachable
+ wait_for_connection:
+ - name: Add authorized key
+ ansible.posix.authorized_key:
+ user: "{{ image.user }}"
+ state: present
+ key: "{{ hostvars['operator0']['key']['public_key'] }}"
name: &securitygroup_name "onap_ci_lab"
remote_ip_prefix: "172.24.4.0/24"
-hosts:
- - name: "operator0"
- image: "Ubuntu_18.04"
- flavor: "m1.tiny"
- keypair: *keypair_name
- network: *network_name
- securitygroup: *securitygroup_name
- volume_size: 5
+image:
+ name: &image_name "Ubuntu_18.04"
+ user: "ubuntu"
+
+cluster:
+ name: "cluster0"
+ hosts:
+ - name: "operator0"
+ image: *image_name
+ flavor: "m1.tiny"
+ keypair: *keypair_name
+ network: *network_name
+ securitygroup: *securitygroup_name
+ volume_size: 5
+ - name: "worker0"
+ image: *image_name
+ flavor: "m1.tiny"
+ keypair: *keypair_name
+ network: *network_name
+ securitygroup: *securitygroup_name
+ volume_size: 5
name: &securitygroup_name "onap_ci_lab"
remote_ip_prefix: "0.0.0.0/0"
-hosts:
- - name: "operator0"
- image: "Ubuntu_18.04"
- flavor: "m1.xlarge"
- keypair: *keypair_name
- network: *network_name
- securitygroup: *securitygroup_name
- volume_size: 20
- - name: "control0"
- image: "Ubuntu_18.04"
- flavor: "m1.xlarge"
- keypair: *keypair_name
- network: *network_name
- securitygroup: *securitygroup_name
- volume_size: 50
- - name: "worker0a"
- image: "Ubuntu_18.04"
- flavor: "m1.2xlarge"
- keypair: *keypair_name
- network: *network_name
- auto_ip: false
- securitygroup: *securitygroup_name
- volume_size: 80
- - name: "worker0b"
- image: "Ubuntu_18.04"
- flavor: "m1.2xlarge"
- keypair: *keypair_name
- network: *network_name
- auto_ip: false
- securitygroup: *securitygroup_name
- volume_size: 80
- - name: "worker0c"
- image: "Ubuntu_18.04"
- flavor: "m1.2xlarge"
- keypair: *keypair_name
- network: *network_name
- auto_ip: false
- securitygroup: *securitygroup_name
- volume_size: 80
- - name: "nfs0"
- image: "Ubuntu_18.04"
- flavor: "m1.large"
- keypair: *keypair_name
- network: *network_name
- auto_ip: false
- securitygroup: *securitygroup_name
- volume_size: 150
+image:
+ name: &image_name "Ubuntu_18.04"
+ user: "ubuntu"
+
+cluster:
+ name: "cluster0"
+ hosts:
+ - name: "operator0"
+ image: *image_name
+ flavor: "m1.xlarge"
+ keypair: *keypair_name
+ network: *network_name
+ securitygroup: *securitygroup_name
+ volume_size: 20
+ - name: "control0"
+ image: *image_name
+ flavor: "m1.xlarge"
+ keypair: *keypair_name
+ network: *network_name
+ securitygroup: *securitygroup_name
+ volume_size: 50
+ - name: "worker0a"
+ image: *image_name
+ flavor: "m1.2xlarge"
+ keypair: *keypair_name
+ network: *network_name
+ auto_ip: false
+ securitygroup: *securitygroup_name
+ volume_size: 80
+ - name: "worker0b"
+ image: *image_name
+ flavor: "m1.2xlarge"
+ keypair: *keypair_name
+ network: *network_name
+ auto_ip: false
+ securitygroup: *securitygroup_name
+ volume_size: 80
+ - name: "worker0c"
+ image: *image_name
+ flavor: "m1.2xlarge"
+ keypair: *keypair_name
+ network: *network_name
+ auto_ip: false
+ securitygroup: *securitygroup_name
+ volume_size: 80
+ - name: "nfs0"
+ image: *image_name
+ flavor: "m1.large"
+ keypair: *keypair_name
+ network: *network_name
+ auto_ip: false
+ securitygroup: *securitygroup_name
+ volume_size: 150
boot_from_volume: true
terminate_volume: true
volume_size: "{{ host.volume_size | default(10) }}"
+ register: new_host
+
+- name: Add host to inventory
+ add_host:
+ hostname: "{{ new_host.server.name }}"
+ groups: "{{ cluster.name }}"
+ ansible_ssh_host: "{{ new_host.server.public_v4 }}"
+ ansible_ssh_user: "{{ image.user }}"
+ ansible_ssh_extra_args: "-o StrictHostKeyChecking=no"
+ ansible_ssh_private_key_file: "~/.ssh/{{ keypair.key.name }}"
---
- include: create_host.yml host={{ item }}
- loop: "{{ hosts }}"
+ loop: "{{ cluster.hosts }}"
---
- include: destroy_host.yml host={{ item }}
- loop: "{{ hosts }}"
+ loop: "{{ cluster.hosts }}"