Adds OS_REGION_NAME into overcloudrc files
[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     - name: Configure gluon networks
13       shell: "{{ overcloudrc }} && {{ item }}"
14       when: gluon
15       with_items:
16         - openstack network create gluon-network --share --provider-network-type vxlan
17         - openstack subnet create gluon-subnet --no-gateway --no-dhcp --network GluonNetwork --subnet-range 0.0.0.0/1
18     - name: Find admin project id
19       shell: "{{ overcloudrc }} && openstack project list | grep admin | awk '{print $2}'"
20       register: os_project_id
21     - name: Ensure rc files owned by stack
22       file:
23         path: "/home/stack/{{ item }}"
24         state: file
25         owner: stack
26         group: stack
27         mode: 0644
28       become: yes
29       with_items:
30         - overcloudrc
31         - overcloudrc.v3
32     - name: Inject OS_PROJECT_ID and OS_TENANT_NAME into overcloudrc
33       lineinfile:
34         line: "{{ item }}"
35         path: /home/stack/overcloudrc
36       become: yes
37       become_user: stack
38       with_items:
39         - "export OS_PROJECT_ID={{ os_project_id.stdout }}"
40         - "export OS_TENANT_NAME=admin"
41     - name: Install Docker
42       yum:
43         name: docker
44         state: present
45       when: yardstick or dovetail
46       become: yes
47     - systemd:
48         name: docker
49         state: started
50         enabled: yes
51       when: yardstick or dovetail
52       become: yes
53     - name: Pull yardstick docker image
54       docker_image:
55         name: opnfv/yardstick
56       when: yardstick
57       become: yes
58     - name: Pull dovetail docker image
59       docker_image:
60         name: opnfv/dovetail
61       when: dovetail
62       become: yes
63     - name: Register SDN VIP
64       shell: "{{ stackrc }} && neutron port-list | grep control_virtual_ip | grep -Eo '([0-9]+\\.){3}[0-9]+'"
65       register: sdn_vip
66       become: yes
67       become_user: stack
68       when: sdn != false
69     - name: Write SDN controller VIP to overcloudrc
70       lineinfile:
71         line: "export SDN_CONTROLLER_IP={{ sdn_vip.stdout }}"
72         regexp: 'SDN_CONTROLLER_IP'
73         path: "/home/stack/{{ item }}"
74       when: sdn != false
75       become: yes
76       become_user: stack
77       with_items:
78         - overcloudrc
79         - overcloudrc.v3
80     - name: Register OS Region
81       shell: "{{ overcloudrc }} && openstack endpoint list -c Region -f json"
82       register: region
83       become: yes
84       become_user: stack
85     - name: Write Region into overcloudrc
86       lineinfile:
87         line: "export OS_REGION_NAME={{(region.stdout|from_json)[1]['Region']}}"
88         regexp: 'OS_REGION_NAME'
89         path: "/home/stack/{{ item }}"
90       become: yes
91       become_user: stack
92       with_items:
93         - overcloudrc
94         - overcloudrc.v3
95     - name: Undercloud NAT - MASQUERADE interface
96       iptables:
97         table: nat
98         chain: POSTROUTING
99         out_interface: eth0
100         jump: MASQUERADE
101       when:
102         - virtual
103         - not external_network_ipv6
104       become: yes
105     - name: Undercloud NAT - MASQUERADE interface with subnet
106       iptables:
107         table: nat
108         chain: POSTROUTING
109         out_interface: eth0
110         jump: MASQUERADE
111         source: "{{ external_cidr }}"
112       when:
113         - virtual
114         - not external_network_ipv6
115       become: yes
116     - name: Undercloud NAT - Allow Forwarding
117       iptables:
118         chain: FORWARD
119         in_interface: eth2
120         jump: ACCEPT
121       when:
122         - virtual
123         - not external_network_ipv6
124       become: yes
125     - name: Undercloud NAT - Allow Stateful Forwarding
126       iptables:
127         chain: FORWARD
128         in_interface: eth2
129         jump: ACCEPT
130         source: "{{ external_cidr }}"
131         ctstate: ESTABLISHED,RELATED
132       when:
133         - virtual
134         - not external_network_ipv6
135       become: yes
136     - name: Undercloud NAT - Save iptables
137       shell: service iptables save
138       become: yes
139       when:
140         - virtual
141         - not external_network_ipv6
142     - name: Create congress datasources
143       shell: "{{ overcloudrc }} && openstack congress datasource create {{ item }}"
144       become: yes
145       become_user: stack
146       when: congress
147       with_items: "{{ congress_datasources }}"
148       ignore_errors: yes
149     - name: Configure Calipso
150       block:
151         - name: Install Calipso dependencies
152           pip:
153             name: "{{ item }}"
154             executable: pip3
155           with_items:
156             - docker
157             - pymongo
158         - name: Create Calipso user
159           user:
160             name: calipso
161             createhome: yes
162         - name: Remove old docker
163           package:
164             name: "{{ item }}"
165             state: absent
166           with_items:
167             - docker
168             - docker-common
169             - docker-selinux
170             - docker-engine
171         - name: Install Docker CE
172           package:
173             name: docker-ce
174             state: latest
175         - name: Start Docker
176           service:
177             name: docker
178             state: started
179             enabled: yes
180         - name: Install Calipso
181           command: >
182             python3 /root/calipso-installer.py --command start-all
183             --copy q --hostname {{ calipso_ip }} --dbport 37017 --webport 81
184             --apiport 8001 --rabbitmport 15673
185       become: yes
186       when: calipso