blob: da5dd447de1ddbb7fc3101df40dead4871ede0c4 [file] [log] [blame]
Matteo Scandolo3896c472017-08-01 13:31:42 -07001
2# Copyright 2017-present Open Networking Foundation
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16
Zack Williamsa2763112017-01-03 11:38:38 -070017---
18# cord-profile/tasks/main.yml
19# Constructs a CORD service profile directory and configuration files
20
Zack Williams79286962017-07-10 12:24:37 -070021# if this step fails, may need to include `create-configdirs-become` role to
22# create directory using become.
Zack Williamsa2763112017-01-03 11:38:38 -070023- name: Create cord_profile directory
Zack Williamsa2763112017-01-03 11:38:38 -070024 file:
Zack Williamsc989f262017-05-11 13:02:59 -070025 path: "{{ config_cord_profile_dir }}"
Zack Williamsa2763112017-01-03 11:38:38 -070026 state: directory
27 mode: 0755
28 owner: "{{ ansible_user_id }}"
29 group: "{{ ansible_user_gid }}"
30
Zack Williamsc989f262017-05-11 13:02:59 -070031- name: Create cord_profile/profile_name file containing profile name
Zack Williams2478b302017-02-14 10:42:55 -070032 copy:
Zack Williamsc989f262017-05-11 13:02:59 -070033 dest: "{{ config_cord_profile_dir }}/profile_name"
Zack Williams2478b302017-02-14 10:42:55 -070034 content: "{{ cord_profile }}"
35 mode: 0644
36
Zack Williamsa2763112017-01-03 11:38:38 -070037- name: Create subdirectories inside cord_profile directory
38 file:
Zack Williamsc989f262017-05-11 13:02:59 -070039 path: "{{ config_cord_profile_dir }}/{{ item }}"
Zack Williamsa2763112017-01-03 11:38:38 -070040 state: directory
41 mode: 0755
42 with_items:
43 - key_import
Zack Williamsa2763112017-01-03 11:38:38 -070044 - images
45
Zack Williamsc989f262017-05-11 13:02:59 -070046- name: Copy ssh private key to node_key file
Zack Williamsa2763112017-01-03 11:38:38 -070047 copy:
Zack Williamsc989f262017-05-11 13:02:59 -070048 src: "{{ ssh_pki_dir }}/client_certs/{{ pod_sshkey_name }}_sshkey"
49 dest: "{{ config_cord_profile_dir }}/node_key"
Zack Williamsa2763112017-01-03 11:38:38 -070050 mode: 0600
Andy Bavier1ff4b482017-03-24 09:20:36 -040051 remote_src: True
Zack Williamsc989f262017-05-11 13:02:59 -070052
Zack Williams5223dd92017-02-28 23:38:02 -070053- name: Copy ssh public key to node_key.pub file
54 copy:
55 src: "{{ ssh_pki_dir }}/client_certs/{{ pod_sshkey_name }}_sshkey.pub"
56 dest: "{{ config_cord_profile_dir }}/node_key.pub"
57 mode: 0600
58 remote_src: True
59
Zack Williamsc989f262017-05-11 13:02:59 -070060- name: Copy ssh private key to key_import directory for services that require it
61 copy:
62 src: "{{ ssh_pki_dir }}/client_certs/{{ pod_sshkey_name }}_sshkey"
63 dest: "{{ config_cord_profile_dir }}/key_import/{{ item.keypair }}"
64 mode: 0600
65 remote_src: True
66 with_items: "{{ xos_services | selectattr('keypair', 'defined') | list }}"
67
Matteo Scandolo25b23e32017-12-11 17:01:36 -080068- name: Copy ssh private key to key_import directory for dynamic services that require it
69 copy:
70 src: "{{ ssh_pki_dir }}/client_certs/{{ pod_sshkey_name }}_sshkey"
71 dest: "{{ config_cord_profile_dir }}/key_import/{{ item.keypair }}"
72 mode: 0600
73 remote_src: True
74 with_items: "{{ xos_dynamic_services | selectattr('keypair', 'defined') | list }}"
75
Zack Williamsc989f262017-05-11 13:02:59 -070076- name: Copy ssh public key to key_import directory for services that require it
77 copy:
78 src: "{{ ssh_pki_dir }}/client_certs/{{ pod_sshkey_name }}_sshkey.pub"
79 dest: "{{ config_cord_profile_dir }}/key_import/{{ item.keypair }}.pub"
80 mode: 0644
81 remote_src: True
82 with_items: "{{ xos_services | selectattr('keypair', 'defined') | list }}"
Zack Williamsa2763112017-01-03 11:38:38 -070083
Matteo Scandolo25b23e32017-12-11 17:01:36 -080084- name: Copy ssh public key to key_import directory for dynamic services that require it
85 copy:
86 src: "{{ ssh_pki_dir }}/client_certs/{{ pod_sshkey_name }}_sshkey.pub"
87 dest: "{{ config_cord_profile_dir }}/key_import/{{ item.keypair }}.pub"
88 mode: 0644
89 remote_src: True
90 with_items: "{{ xos_dynamic_services | selectattr('keypair', 'defined') | list }}"
91
Andy Baviera6cffe12017-03-15 17:33:42 -040092- name: Copy cert chain and core api key and cert
Andy Bavierf0b5d7d2017-03-15 16:19:03 -040093 copy:
Zack Williams44845c62017-04-21 13:57:14 -070094 src: "{{ pki_dir }}/{{ item.src }}"
Zack Williamsc989f262017-05-11 13:02:59 -070095 dest: "{{ config_cord_profile_dir }}/{{ item.dest }}"
Andy Bavierf0b5d7d2017-03-15 16:19:03 -040096 mode: 0600
97 with_items:
Zack Williams44845c62017-04-21 13:57:14 -070098 - src: "{{ site_name }}_im_ca/private/xos-core.{{ site_suffix }}_key.pem"
99 dest: "core_api_key.pem"
100 - src: "{{ site_name }}_im_ca/certs/xos-core.{{ site_suffix }}_cert_chain.pem"
101 dest: "core_api_cert.pem"
102 - src: "{{ site_name }}_im_ca/certs/im_cert_chain.pem"
103 dest: "im_cert_chain.pem"
Andy Bavierf0b5d7d2017-03-15 16:19:03 -0400104
Zack Williamsa2763112017-01-03 11:38:38 -0700105- name: Copy over commonly used and utility TOSCA files
106 copy:
107 src: "{{ item }}"
Zack Williamsc989f262017-05-11 13:02:59 -0700108 dest: "{{ config_cord_profile_dir }}/{{ item }}"
Zack Williamsa2763112017-01-03 11:38:38 -0700109 with_items:
110 - fixtures.yaml
Zack Williamsa2763112017-01-03 11:38:38 -0700111
112- name: Create templated XOS configuration files
113 template:
114 src: "{{ item }}.j2"
Zack Williamsc989f262017-05-11 13:02:59 -0700115 dest: "{{ config_cord_profile_dir }}/{{ item }}"
Zack Williamsa2763112017-01-03 11:38:38 -0700116 mode: 0644
117 with_items:
Matteo Scandolod2221342017-05-25 18:16:57 -0700118 - xos_config.yaml
Zack Williams9cea13e2017-07-25 16:32:59 -0700119 - xos_config_synchronizer.yaml
Matteo Scandolob92469d2017-07-28 17:32:00 -0700120 - initial_data.yaml
Zack Williamsa2763112017-01-03 11:38:38 -0700121 - deployment.yaml
122 - xos.yaml
Scott Baker970f24b2017-02-13 14:16:40 -0800123 - gateway-config.yml
Matteo Scandolo667334f2017-02-26 10:58:08 -0800124 - style.config.js
125 - app.config.js
Andy Baviera6cffe12017-03-15 17:33:42 -0400126 - Dockerfile.xos
Andy Bavier9e7d54a2017-04-17 11:37:02 -0400127 - docker-compose.yml
Matteo Scandoloc4f2c5f2017-07-12 16:25:08 -0700128 - xos-tosca.config.yaml
Zack Williamsa2763112017-01-03 11:38:38 -0700129
Andy Bavier44d14e02017-12-20 16:51:53 -0700130- name: Set cord_profile_src_dir
131 set_fact:
132 cord_profile_src_dir: "../../orchestration/profiles/{{ cord_use_case }}"
133
Zack Williamsa2763112017-01-03 11:38:38 -0700134- name: Create profile specific templated TOSCA config files
135 template:
Andy Bavier44d14e02017-12-20 16:51:53 -0700136 src: "{{ cord_profile_src_dir }}/templates/{{ item }}.j2"
Zack Williamsc989f262017-05-11 13:02:59 -0700137 dest: "{{ config_cord_profile_dir }}/{{ item }}"
Zack Williamsa2763112017-01-03 11:38:38 -0700138 with_items: "{{ xos_tosca_config_templates }}"
139
Matteo Scandolo3fc188e2017-10-02 18:05:58 -0700140- name: Create profile specific templated TOSCA config files (new Engine)
141 template:
Andy Bavier44d14e02017-12-20 16:51:53 -0700142 src: "{{ cord_profile_src_dir }}/templates/{{ item }}.j2"
Matteo Scandolo3fc188e2017-10-02 18:05:58 -0700143 dest: "{{ config_cord_profile_dir }}/{{ item }}"
144 with_items: "{{ xos_new_tosca_config_templates }}"
145
Zack Williamsa2763112017-01-03 11:38:38 -0700146- name: Create profile specific templated non-TOSCA files
147 template:
Andy Bavier44d14e02017-12-20 16:51:53 -0700148 src: "{{ cord_profile_src_dir }}/templates/{{ item }}.j2"
Zack Williamsc989f262017-05-11 13:02:59 -0700149 dest: "{{ config_cord_profile_dir }}/{{ item }}"
Zack Williamsa2763112017-01-03 11:38:38 -0700150 with_items: "{{ xos_other_templates }}"
151
Zack Williamsc989f262017-05-11 13:02:59 -0700152- name: Create OpenStack config and TOSCA onboarding
Zack Williamsc989f262017-05-11 13:02:59 -0700153 template:
154 src: "{{ item }}.j2"
155 dest: "{{ config_cord_profile_dir }}/{{ item }}"
Andy Baviera6cffe12017-03-15 17:33:42 -0400156 with_items:
Zack Williamsc989f262017-05-11 13:02:59 -0700157 - openstack.yaml
158 - admin-openrc.sh
Andy Baviera6cffe12017-03-15 17:33:42 -0400159