# limitations under the License.
# Author: Antonio Marsico (antonio.marsico@bt.com)
+- set_fact:
+ local_userdata: "{{ lookup('file', userdata_file) }}"
+ when: userdata_file != none
+
- name: Launch OSM instances
- os_server:
+ openstack.cloud.server:
cloud: "{{ cloud_name }}"
- name: "{{ prefix }}-{{ item.name }}"
+ name: "{{ server_name }}-{{ item.name }}"
state: present
key_name: "{{ item.key }}"
nics: "{{ item.nics }}"
image: "{{ item.image }}"
flavor: "{{ item.flavor }}"
+ userdata: "{{ local_userdata }}"
security_groups:
- default
- "{{external_network_name}}_access"
when: setup_volume|bool == False
- name: Launch OSM instances with a volume
- os_server:
+ openstack.cloud.server:
cloud: "{{ cloud_name }}"
- name: "{{ prefix }}-{{ item.name }}"
+ name: "{{ server_name }}-{{ item.name }}"
state: present
key_name: "{{ item.key }}"
nics: "{{ item.nics }}"
image: "{{ item.image }}"
flavor: "{{ item.flavor }}"
+ volume_size: "{{ os_flavor.disk }}"
+ userdata: "{{ local_userdata }}"
boot_from_volume: yes
terminate_volume: yes
security_groups:
ansible_private_key_file: "~/.ssh/{{ os_key_name }}"
ansible_user: "{{ item['item']['user'] }}"
with_items: "{{ os_hosts.results }}"
+ when: key_file == none
+
+- name: Add OSM host to the local Ansible inventory
+ add_host:
+ name: "{{ item.openstack.accessIPv4 }}"
+ groups: "{{ item['item']['meta']['group'] }}"
+ ansible_private_key_file: "{{ key_file | regex_replace('.pub') }}"
+ ansible_user: "{{ item['item']['user'] }}"
+ with_items: "{{ os_hosts.results }}"
+ when: key_file != none