+---
+- assert:
+ that:
+ - module != ''
+ - version != ''
+ - ami|default(DEFAULT_AMI) != ''
+ - region|default(vpc_region) != ''
+ - security_group_ids != ''
+ - instance_type != ''
+ tags: ['check_vars']
+
+- set_fact:
+ ud_cluster:
+ - "{{ module }}"
+ - "{{ country|ternary('c0', '') }}{{ country|default('') }}"
+ - "{{ phase|ternary('d0', '') }}{{ phase|default('') }}"
+
+- set_fact:
+ ud_asgn:
+ - "{{ module }}"
+ - "{{ stack|default('') }}"
+ - "{{ country|ternary('c0', '') }}{{ country|default('') }}"
+ - "{{ phase|ternary('d0', '') }}{{ phase|default('') }}"
+
+- set_fact:
+ lc_n:
+ - "{{ module }}"
+ - "{{ stack|default('') }}"
+ - "{{ country|ternary('c0', '') }}{{ country|default('') }}"
+ - "{{ phase|ternary('d0', '') }}{{ phase|default('') }}"
+ - "{{ version }}"
+
+- name: assemble user data
+ set_fact:
+ user_data:
+ EC2_REGION: "{{ region|default(vpc_region) }}"
+ CLOUD_COUNTRIES: "{{ country|default() }}"
+ CLOUD_ENVIRONMENT: "{{ ACCT_NAME }}"
+ CLOUD_MONITOR_BUCKET: "{{ module }}"
+ CLOUD_APP: "{{ module }}"
+ CLOUD_STACK: "{{ stack|default('None') }}"
+ CLOUD_DEV_PHASE: "{{ phase|default() }}"
+ CLOUD_CLUSTER: "{{ ud_cluster|select|join('-') }}"
+ CLOUD_AUTO_SCALE_GROUP: "{{ ud_asgn|select|join('-') }}"
+ CLOUD_LAUNCH_CONFIG: "{{ lc_n|select|join('-') }}"
+
+- name: launchconfig
+ ec2_lc:
+ region: "{{ region|default(vpc_region) }}"
+ name: "{{ lc_n|select|join('-') }}"
+ image_id: "{{ ami|default(DEFAULT_AMI) }}"
+ key_name: "{{ MANAGEMENT_KEY_NAME }}"
+ instance_profile_name: "{{ module }}"
+ security_groups: "{{ security_group_ids }}"
+ instance_type: "{{ instance_type}}"
+ volumes:
+# setting the root volume seems to prevent instances from launching
+# - device_name: /dev/sda
+# volume_size: 8
+# volume_type: gp2
+# delete_on_termination: true
+ - device_name: /dev/sdb
+ ephemeral: ephemeral0
+ - device_name: /dev/sdc
+ ephemeral: ephemeral1
+ - device_name: /dev/sdd
+ ephemeral: ephemeral2
+ - device_name: /dev/sde
+ ephemeral: ephemeral3
+ user_data: "{{ lookup('template', 'userdata.sh.j2') }}"
+ register: launchconfig