blob: d33765ec7f4c9b3a6aa686e52c1baa065ef4c901 [file] [log] [blame]
Zack Williamsa2763112017-01-03 11:38:38 -07001---
2# cord-profile/tasks/main.yml
3# Constructs a CORD service profile directory and configuration files
4
Andy Baviera6cffe12017-03-15 17:33:42 -04005- name: Create and copy XOS admin password
6 copy:
7 content: "{{ xos_admin_pass }}"
8 dest: "{{ cord_dir }}/build/platform-install/credentials/{{ xos_admin_user }}"
9
Zack Williamsa2763112017-01-03 11:38:38 -070010- name: Create cord_profile directory
11 become: yes
12 file:
13 path: "{{ cord_profile_dir }}"
14 state: directory
15 mode: 0755
16 owner: "{{ ansible_user_id }}"
17 group: "{{ ansible_user_gid }}"
18
Zack Williams44845c62017-04-21 13:57:14 -070019- name: Create cord_profile/profile_name, containing profile name
Zack Williams2478b302017-02-14 10:42:55 -070020 copy:
21 dest: "{{ cord_profile_dir }}/profile_name"
22 content: "{{ cord_profile }}"
23 mode: 0644
24
Zack Williamsa2763112017-01-03 11:38:38 -070025- name: Create subdirectories inside cord_profile directory
26 file:
27 path: "{{ cord_profile_dir }}/{{ item }}"
28 state: directory
29 mode: 0755
30 with_items:
31 - key_import
32 - onboarding-docker-compose
33 - images
34
Andy Bavier1ff4b482017-03-24 09:20:36 -040035# *** This should be revisited. ***
36# Currently the key pair is generated on the head node by the
37# "prep" role in the "maas" repo, invoked during the "deployBase" Gradle task.
38# The keys should probably be generated earlier, in the corddev VM, and copied over.
39# The /opt/credentials directory might be a good place to keep the generated keys.
40#
41# Ensure a keypair exists in case we're not running on MaaS.
42- name: Ensure keypair
43 user:
44 name: "{{ ansible_user_id }}"
45 generate_ssh_key: yes
46
Zack Williamsa2763112017-01-03 11:38:38 -070047- name: Copy ssh keys to key_import directory
48 copy:
Andy Bavier4b490d72017-03-25 07:59:21 -040049 # 'expanduser' won't work below, it expands on control machine
Andy Bavier53b03f62017-03-25 11:42:23 -040050 src: "{{ item.source_path | replace('~', ansible_user_dir, 1) }}"
Zack Williamsa2763112017-01-03 11:38:38 -070051 dest: "{{ cord_profile_dir }}/key_import/{{ item.name }}"
52 mode: 0600
Andy Bavier1ff4b482017-03-24 09:20:36 -040053 remote_src: True
Zack Williamsa2763112017-01-03 11:38:38 -070054 with_items: "{{ xos_service_sshkeys }}"
55
Andy Baviera6cffe12017-03-15 17:33:42 -040056- name: Copy cert chain and core api key and cert
Andy Bavierf0b5d7d2017-03-15 16:19:03 -040057 copy:
Zack Williams44845c62017-04-21 13:57:14 -070058 src: "{{ pki_dir }}/{{ item.src }}"
59 dest: "{{ cord_profile_dir }}/{{ item.dest }}"
Andy Bavierf0b5d7d2017-03-15 16:19:03 -040060 mode: 0600
61 with_items:
Zack Williams44845c62017-04-21 13:57:14 -070062 - src: "{{ site_name }}_im_ca/private/xos-core.{{ site_suffix }}_key.pem"
63 dest: "core_api_key.pem"
64 - src: "{{ site_name }}_im_ca/certs/xos-core.{{ site_suffix }}_cert_chain.pem"
65 dest: "core_api_cert.pem"
66 - src: "{{ site_name }}_im_ca/certs/im_cert_chain.pem"
67 dest: "im_cert_chain.pem"
Andy Bavierf0b5d7d2017-03-15 16:19:03 -040068
Andy Bavier53b03f62017-03-25 11:42:23 -040069- name: Get localhost facts (to get local uid and gid)
70 setup:
71 delegate_to: localhost
72 delegate_facts: True
73
Andy Baviera6cffe12017-03-15 17:33:42 -040074- name: Make local images directory
75 delegate_to: localhost
Zack Williamsc6ff6b32017-02-10 16:35:29 -070076 become: yes
77 file:
Andy Baviera6cffe12017-03-15 17:33:42 -040078 path: "{{ image_dir }}"
Zack Williamsc6ff6b32017-02-10 16:35:29 -070079 state: directory
80 mode: 0755
Andy Bavier53b03f62017-03-25 11:42:23 -040081 owner: "{{ hostvars['localhost']['ansible_user_id'] }}"
82 group: "{{ hostvars['localhost']['ansible_user_gid'] }}"
Zack Williamsc6ff6b32017-02-10 16:35:29 -070083
Zack Williamsa2763112017-01-03 11:38:38 -070084- name: Download Glance VM images
Andy Baviera6cffe12017-03-15 17:33:42 -040085 when: use_openstack
86 delegate_to: localhost
Zack Williamsa2763112017-01-03 11:38:38 -070087 get_url:
88 url: "{{ item.url }}"
89 checksum: "{{ item.checksum }}"
Andy Baviera6cffe12017-03-15 17:33:42 -040090 dest: "{{ image_dir }}/{{ item.name }}.qcow2"
Zack Williamsc6ff6b32017-02-10 16:35:29 -070091 with_items: "{{ xos_images }}"
Zack Williams275e48b2017-03-24 12:16:00 -070092 register: glance_vm_result
93 until: glance_vm_result|success
94 retries: 5
95 delay: 10
Zack Williamsc6ff6b32017-02-10 16:35:29 -070096
97- name: Copy Glance VM images to profile directory
Andy Baviera6cffe12017-03-15 17:33:42 -040098 when: use_openstack
Zack Williamsc6ff6b32017-02-10 16:35:29 -070099 copy:
Andy Baviera6cffe12017-03-15 17:33:42 -0400100 src: "{{ image_dir }}/{{ item.name }}.qcow2"
Zack Williamsa2763112017-01-03 11:38:38 -0700101 dest: "{{ cord_profile_dir }}/images/{{ item.name }}.qcow2"
102 with_items: "{{ xos_images }}"
103
104- name: Copy over commonly used and utility TOSCA files
105 copy:
106 src: "{{ item }}"
107 dest: "{{ cord_profile_dir }}/{{ item }}"
108 with_items:
109 - fixtures.yaml
110 - enable-onboarding.yaml
111 - disable-onboarding.yaml
112
113- name: Create templated XOS configuration files
114 template:
115 src: "{{ item }}.j2"
116 dest: "{{ cord_profile_dir }}/{{ item }}"
117 mode: 0644
118 with_items:
119 - xos_common_config
120 - deployment.yaml
121 - xos.yaml
Scott Baker970f24b2017-02-13 14:16:40 -0800122 - gateway-config.yml
Matteo Scandolo667334f2017-02-26 10:58:08 -0800123 - style.config.js
124 - app.config.js
Andy Baviera6cffe12017-03-15 17:33:42 -0400125 - Dockerfile.xos
Andy Baviera6cffe12017-03-15 17:33:42 -0400126 - xos-gui-extensions.yml
Andy Bavier9e7d54a2017-04-17 11:37:02 -0400127 - docker-compose.yml
Zack Williamsa2763112017-01-03 11:38:38 -0700128
129- name: Create profile specific templated TOSCA config files
130 template:
131 src: "{{ item }}.j2"
132 dest: "{{ cord_profile_dir }}/{{ item }}"
133 with_items: "{{ xos_tosca_config_templates }}"
134
135- name: Create profile specific templated non-TOSCA files
136 template:
137 src: "{{ item }}.j2"
138 dest: "{{ cord_profile_dir }}/{{ item }}"
139 with_items: "{{ xos_other_templates }}"
140
Andy Baviera6cffe12017-03-15 17:33:42 -0400141- name: Copy node key
142 when: not on_maas and use_openstack
Zack Williamsa2763112017-01-03 11:38:38 -0700143 copy:
Andy Baviera6cffe12017-03-15 17:33:42 -0400144 src: "{{ ansible_user_dir }}/.ssh/id_rsa"
145 dest: "{{ item }}/node_key"
146 owner: "{{ ansible_user }}"
Zack Williams2a5f6862017-02-09 16:39:52 -0700147 mode: 0600
Andy Bavier1ff4b482017-03-24 09:20:36 -0400148 remote_src: True
Andy Baviera6cffe12017-03-15 17:33:42 -0400149 with_items:
150 - "{{ ansible_user_dir }}"
151 - "{{ cord_profile_dir }}"
152
153- name: Copy node key (MaaS)
154 when: on_maas and use_openstack
155 become: yes
156 copy:
157 src: "{{ maas_node_key }}"
158 dest: "{{ item }}/node_key"
159 owner: "{{ ansible_user }}"
160 mode: 0600
161 remote_src: True
162 with_items:
163 - "{{ ansible_user_dir }}"
164 - "{{ cord_profile_dir }}"