Updates Calipso deploy settings
[apex.git] / lib / ansible / playbooks / post_deploy_undercloud.yml
1 ---
2 - hosts: all
3   tasks:
4     - name: Enable ssh to overcloud nodes from jumphost
5       shell: "cat /home/stack/jumphost_id_rsa.pub | ssh -T {{ SSH_OPTIONS }} heat-admin@{{ item.value }} 'cat >> ~/.ssh/authorized_keys'"
6       with_dict: "{{ overcloud_nodes }}"
7       become: yes
8       become_user: stack
9     - name: Configure external network
10       shell: "{{ overcloudrc }} && {{ item }}"
11       with_items: "{{ external_network_cmds }}"
12       when: vim == 'openstack'
13     - name: Configure gluon networks
14       shell: "{{ overcloudrc }} && {{ item }}"
15       when: gluon
16       with_items:
17         - openstack network create gluon-network --share --provider-network-type vxlan
18         - openstack subnet create gluon-subnet --no-gateway --no-dhcp --network GluonNetwork --subnet-range 0.0.0.0/1
19     - name: Find admin project id
20       shell: "{{ overcloudrc }} && openstack project list | grep admin | awk '{print $2}'"
21       register: os_project_id
22     - name: Ensure rc files owned by stack
23       file:
24         path: "/home/stack/{{ item }}"
25         state: file
26         owner: stack
27         group: stack
28         mode: 0644
29       become: yes
30       with_items: "{{ overcloudrc_files }}"
31     - name: Inject OS_PROJECT_ID and OS_TENANT_NAME into overcloudrc
32       lineinfile:
33         line: "{{ item }}"
34         path: /home/stack/overcloudrc
35       become: yes
36       become_user: stack
37       with_items:
38         - "export OS_PROJECT_ID={{ os_project_id.stdout }}"
39         - "export OS_TENANT_NAME=admin"
40     - name: Install Docker
41       yum:
42         name: docker
43         state: present
44       when: yardstick or dovetail
45       become: yes
46     - systemd:
47         name: docker
48         state: started
49         enabled: yes
50       when: yardstick or dovetail
51       become: yes
52     - name: Pull yardstick docker image
53       docker_image:
54         name: opnfv/yardstick
55       when: yardstick
56       become: yes
57     - name: Pull dovetail docker image
58       docker_image:
59         name: opnfv/dovetail
60       when: dovetail
61       become: yes
62     - name: Register SDN VIP
63       shell: "{{ stackrc }} && neutron port-list | grep control_virtual_ip | grep -Eo '([0-9]+\\.){3}[0-9]+'"
64       register: sdn_vip
65       become: yes
66       become_user: stack
67       when: sdn != false
68     - name: Write SDN controller VIP to overcloudrc
69       lineinfile:
70         line: "export SDN_CONTROLLER_IP={{ sdn_vip.stdout }}"
71         regexp: 'SDN_CONTROLLER_IP'
72         path: "/home/stack/{{ item }}"
73       when: sdn != false
74       become: yes
75       become_user: stack
76       with_items: "{{ overcloudrc_files }}"
77     - name: Grab Heat Environment variables
78       shell: "{{ stackrc }} && openstack stack environment show overcloud -f json"
79       register: heat_env
80       become: yes
81       become_user: stack
82     - name: Write SDN controller password to overcloudrc for ODL
83       lineinfile:
84         line: "export SDN_CONTROLLER_PASSWORD={{(heat_env.stdout|from_json)['parameter_defaults']['OpenDaylightPassword']}}"
85         regexp: 'SDN_CONTROLLER_PASSWORD'
86         path: "/home/stack/{{ item }}"
87       when: sdn == 'opendaylight'
88       become: yes
89       become_user: stack
90       with_items: "{{ overcloudrc_files }}"
91     - name: Register OS Region
92       shell: "{{ overcloudrc }} && openstack endpoint list -c Region -f json"
93       register: region
94       when: vim == 'openstack'
95     - name: Write Region into overcloudrc
96       lineinfile:
97         line: "export OS_REGION_NAME={{(region.stdout|from_json)[1]['Region']}}"
98         regexp: 'OS_REGION_NAME'
99         path: "/home/stack/{{ item }}"
100       become: yes
101       become_user: stack
102       with_items: "{{ overcloudrc_files }}"
103       when: vim == 'openstack'
104     - name: Create congress datasources
105       shell: "{{ overcloudrc }} && openstack congress datasource create {{ item }}"
106       become: yes
107       become_user: stack
108       when: congress
109       with_items: "{{ congress_datasources }}"
110       ignore_errors: yes
111     - name: Configure Calipso
112       block:
113         - name: Install pip3
114           yum:
115             name: python34-pip
116             state: present
117         - name: Install Calipso dependencies
118           pip:
119             name: "{{ item }}"
120             executable: pip3
121           with_items:
122             - docker
123             - pymongo
124         - name: Create Calipso user
125           user:
126             name: calipso
127             createhome: yes
128         - name: Remove old docker
129           package:
130             name: "{{ item }}"
131             state: absent
132           with_items:
133             - docker
134             - docker-common
135             - docker-selinux
136             - docker-engine
137         - name: Add Docker CE repo
138           shell: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
139         - name: Install Docker CE
140           package:
141             name: docker-ce
142             state: latest
143         - name: Start Docker
144           service:
145             name: docker
146             state: started
147             enabled: yes
148         - name: Install Calipso
149           command: >
150             python3 /root/calipso-installer.py --command start-all
151             --copy q --hostname {{ calipso_ip }} --dbport 37017 --webport 81
152             --apiport 8001 --rabbitmport 15673 --home /root
153       become: yes
154       when: calipso