Merge "Updating the iso build to CentOS 7.4"
[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: Inject OS_PROJECT_ID and OS_TENANT_NAME into overcloudrc
22       lineinfile:
23         line: "{{ item }}"
24         path: /home/stack/overcloudrc
25       with_items:
26         - "export OS_PROJECT_ID={{ os_project_id.stdout }}"
27         - "export OS_TENANT_NAME=admin"
28     - name: Install Docker
29       yum:
30         name: docker
31         state: present
32       when: yardstick or dovetail
33       become: yes
34     - systemd:
35         name: docker
36         state: started
37         enabled: yes
38       when: yardstick or dovetail
39       become: yes
40     - name: Pull yardstick docker image
41       docker_image:
42         name: opnfv/yardstick
43       when: yardstick
44       become: yes
45     - name: Pull dovetail docker image
46       docker_image:
47         name: opnfv/dovetail
48       when: dovetail
49       become: yes
50     - name: Register SDN VIP
51       shell: "{{ stackrc }} && neutron port-list | grep control_virtual_ip | grep -Eo '([0-9]+\\.){3}[0-9]+'"
52       register: sdn_vip
53       become: yes
54       become_user: stack
55       when: sdn != false
56     - name: Write SDN controller VIP to overcloudrc
57       lineinfile:
58         line: "export SDN_CONTROLLER_IP={{ sdn_vip.stdout }}"
59         regexp: 'SDN_CONTROLLER_IP'
60         path: "/home/stack/{{ item }}"
61       when: sdn != false
62       with_items:
63         - overcloudrc
64         - overcloudrc.v3
65     - name: Undercloud NAT - MASQUERADE interface
66       iptables:
67         table: nat
68         chain: POSTROUTING
69         out_interface: eth0
70         jump: MASQUERADE
71       when:
72         - virtual
73         - not external_network_ipv6
74       become: yes
75     - name: Undercloud NAT - MASQUERADE interface with subnet
76       iptables:
77         table: nat
78         chain: POSTROUTING
79         out_interface: eth0
80         jump: MASQUERADE
81         source: "{{ external_cidr }}"
82       when:
83         - virtual
84         - not external_network_ipv6
85       become: yes
86     - name: Undercloud NAT - Allow Forwarding
87       iptables:
88         chain: FORWARD
89         in_interface: eth2
90         jump: ACCEPT
91       when:
92         - virtual
93         - not external_network_ipv6
94       become: yes
95     - name: Undercloud NAT - Allow Stateful Forwarding
96       iptables:
97         chain: FORWARD
98         in_interface: eth2
99         jump: ACCEPT
100         source: "{{ external_cidr }}"
101         ctstate: ESTABLISHED,RELATED
102       when:
103         - virtual
104         - not external_network_ipv6
105       become: yes
106     - name: Undercloud NAT - Save iptables
107       shell: service iptables save
108       become: yes
109       when:
110         - virtual
111         - not external_network_ipv6
112     - name: Create congress datasources
113       shell: "{{ overcloudrc }} && openstack congress datasource create {{ item }}"
114       become: yes
115       become_user: stack
116       when: congress
117       with_items: "{{ congress_datasources }}"
118     - name: Configure Calipso
119       block:
120         - name: Install Calipso dependencies
121           pip:
122             name: "{{ item }}"
123             executable: pip3
124           with_items:
125             - docker
126             - pymongo
127         - name: Create Calipso user
128           user:
129             name: calipso
130             createhome: yes
131         - name: Remove old docker
132           package:
133             name: "{{ item }}"
134             state: absent
135           with_items:
136             - docker
137             - docker-common
138             - docker-selinux
139             - docker-engine
140         - name: Install Docker CE
141           package:
142             name: docker-ce
143             state: latest
144         - name: Start Docker
145           service:
146             name: docker
147             state: started
148             enabled: yes
149         - name: Install Calipso
150           command: >
151             python3 /root/calipso-installer.py --command start-all
152             --copy q --hostname {{ calipso_ip }} --dbport 37017 --webport 81
153             --apiport 8001 --rabbitmport 15673
154       become: yes
155       when: calipso