Ansible installer update
[osm/devops.git] / installers / openstack / roles / create_instances / tasks / main.yml
index 03c0b4c..c97b1a8 100644 (file)
 #   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