Add support for kubernetes deployment
[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: Register OS Region
78       shell: "{{ overcloudrc }} && openstack endpoint list -c Region -f json"
79       register: region
80       when: vim == 'openstack'
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       when: vim == 'openstack'
90     - name: Create congress datasources
91       shell: "{{ overcloudrc }} && openstack congress datasource create {{ item }}"
92       become: yes
93       become_user: stack
94       when: congress
95       with_items: "{{ congress_datasources }}"
96       ignore_errors: yes
97     - name: Configure Calipso
98       block:
99         - name: Install Calipso dependencies
100           pip:
101             name: "{{ item }}"
102             executable: pip3
103           with_items:
104             - docker
105             - pymongo
106         - name: Create Calipso user
107           user:
108             name: calipso
109             createhome: yes
110         - name: Remove old docker
111           package:
112             name: "{{ item }}"
113             state: absent
114           with_items:
115             - docker
116             - docker-common
117             - docker-selinux
118             - docker-engine
119         - name: Install Docker CE
120           package:
121             name: docker-ce
122             state: latest
123         - name: Start Docker
124           service:
125             name: docker
126             state: started
127             enabled: yes
128         - name: Install Calipso
129           command: >
130             python3 /root/calipso-installer.py --command start-all
131             --copy q --hostname {{ calipso_ip }} --dbport 37017 --webport 81
132             --apiport 8001 --rabbitmport 15673
133       become: yes
134       when: calipso