Migrates Apex to Python
[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       ignore_errors: yes