Enables containerized overcloud deployments
[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: "{{ overcloudrc_files }}"
30     - name: Inject OS_PROJECT_ID and OS_TENANT_NAME into overcloudrc
31       lineinfile:
32         line: "{{ item }}"
33         path: /home/stack/overcloudrc
34       become: yes
35       become_user: stack
36       with_items:
37         - "export OS_PROJECT_ID={{ os_project_id.stdout }}"
38         - "export OS_TENANT_NAME=admin"
39     - name: Install Docker
40       yum:
41         name: docker
42         state: present
43       when: yardstick or dovetail
44       become: yes
45     - systemd:
46         name: docker
47         state: started
48         enabled: yes
49       when: yardstick or dovetail
50       become: yes
51     - name: Pull yardstick docker image
52       docker_image:
53         name: opnfv/yardstick
54       when: yardstick
55       become: yes
56     - name: Pull dovetail docker image
57       docker_image:
58         name: opnfv/dovetail
59       when: dovetail
60       become: yes
61     - name: Register SDN VIP
62       shell: "{{ stackrc }} && neutron port-list | grep control_virtual_ip | grep -Eo '([0-9]+\\.){3}[0-9]+'"
63       register: sdn_vip
64       become: yes
65       become_user: stack
66       when: sdn != false
67     - name: Write SDN controller VIP to overcloudrc
68       lineinfile:
69         line: "export SDN_CONTROLLER_IP={{ sdn_vip.stdout }}"
70         regexp: 'SDN_CONTROLLER_IP'
71         path: "/home/stack/{{ item }}"
72       when: sdn != false
73       become: yes
74       become_user: stack
75       with_items: "{{ overcloudrc_files }}"
76     - name: Register OS Region
77       shell: "{{ overcloudrc }} && openstack endpoint list -c Region -f json"
78       register: region
79       become: yes
80       become_user: stack
81     - name: Write Region into overcloudrc
82       lineinfile:
83         line: "export OS_REGION_NAME={{(region.stdout|from_json)[1]['Region']}}"
84         regexp: 'OS_REGION_NAME'
85         path: "/home/stack/{{ item }}"
86       become: yes
87       become_user: stack
88       with_items: "{{ overcloudrc_files }}"
89     - name: Create congress datasources
90       shell: "{{ overcloudrc }} && openstack congress datasource create {{ item }}"
91       become: yes
92       become_user: stack
93       when: congress
94       with_items: "{{ congress_datasources }}"
95       ignore_errors: yes
96     - name: Configure Calipso
97       block:
98         - name: Install Calipso dependencies
99           pip:
100             name: "{{ item }}"
101             executable: pip3
102           with_items:
103             - docker
104             - pymongo
105         - name: Create Calipso user
106           user:
107             name: calipso
108             createhome: yes
109         - name: Remove old docker
110           package:
111             name: "{{ item }}"
112             state: absent
113           with_items:
114             - docker
115             - docker-common
116             - docker-selinux
117             - docker-engine
118         - name: Install Docker CE
119           package:
120             name: docker-ce
121             state: latest
122         - name: Start Docker
123           service:
124             name: docker
125             state: started
126             enabled: yes
127         - name: Install Calipso
128           command: >
129             python3 /root/calipso-installer.py --command start-all
130             --copy q --hostname {{ calipso_ip }} --dbport 37017 --webport 81
131             --apiport 8001 --rabbitmport 15673
132       become: yes
133       when: calipso