Fixes failure to restart containers post undercloud install
[apex.git] / lib / ansible / playbooks / deploy_overcloud.yml
1 ---
2 - hosts: all
3   tasks:
4     - name: Copy all files to undercloud
5       copy:
6         src: "{{ apex_temp_dir }}/{{ item }}"
7         dest: "/home/stack/{{ item }}"
8         owner: stack
9         group: stack
10         mode: 0644
11       with_items:
12         - network-environment.yaml
13         - instackenv.json
14         - overcloud-full.qcow2
15         - deploy_command
16         - virtual-environment.yaml
17         - baremetal-environment.yaml
18         - kubernetes-environment.yaml
19         - "{{ apex_env_file }}"
20     - name: Copy network data to undercloud
21       copy:
22         src: "{{ apex_temp_dir }}/network_data.yaml"
23         dest: "/home/stack/network_data.yaml"
24         owner: stack
25         group: stack
26         mode: 0644
27       when: os_version != 'ocata'
28     - copy:
29         src: "{{ apex_temp_dir }}/storage-environment.yaml"
30         dest: /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml
31         owner: root
32         group: root
33         mode: 0664
34     - copy:
35         src: "{{ apex_temp_dir }}/neutron-opendaylight-sriov.yaml"
36         dest: /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-opendaylight-sriov.yaml
37         owner: root
38         group: root
39         mode: 0664
40     - name: Remove Ceph OSD from ceph storage role
41       lineinfile:
42         path: /usr/share/openstack-tripleo-heat-templates/roles_data.yaml
43         line: '    - OS::TripleO::Services::CephOSD'
44         owner: root
45         group: root
46         state: absent
47       become: yes
48     - name: Insert Ceph OSDs into Compute role
49       lineinfile:
50         path: /usr/share/openstack-tripleo-heat-templates/roles_data.yaml
51         insertbefore:  '^\s*-\sOS::TripleO::Services::NovaCompute$'
52         line: '    - OS::TripleO::Services::CephOSD'
53         owner: root
54         group: root
55       become: yes
56     - name: Insert Ceph OSDs into Controller role
57       lineinfile:
58         path: /usr/share/openstack-tripleo-heat-templates/roles_data.yaml
59         insertbefore:  '^\s*-\sOS::TripleO::Services::CephRbdMirror$'
60         line: '    - OS::TripleO::Services::CephOSD'
61         owner: root
62         group: root
63       become: yes
64     - name: Upload glance images
65       shell: "{{ stackrc }} && openstack overcloud image upload"
66       become: yes
67       become_user: stack
68     - name: Import inventory (baremetal)
69       shell: "{{ stackrc }} && openstack overcloud node import instackenv.json"
70       when: introspect
71     - name: Introspect inventory (baremetal)
72       shell: "{{ stackrc }} && openstack overcloud node introspect --all-manageable --provide"
73       when: introspect
74     - name: Import inventory (virtual)
75       shell: "{{ stackrc }} && openstack overcloud node import --provide instackenv.json"
76       when: not introspect
77     - name: Set flavors
78       shell: '{{ stackrc }} && openstack flavor set --property "cpu_arch"="{{ ansible_architecture }}" {{ item }}'
79       with_items:
80         - baremetal
81         - control
82         - compute
83     - name: Downgrade ceph
84       yum:
85         allow_downgrade: yes
86         name: ceph-ansible-3.1.6
87       become: yes
88     - name: Configure DNS server for ctlplane network
89       shell: "{{ stackrc }} && openstack subnet set ctlplane-subnet {{ dns_server_args }}"
90     - block:
91         - name: Execute Overcloud Deployment
92           shell: "{{ stackrc }} && bash deploy_command"
93           become: yes
94           become_user: stack
95       rescue:
96         - name: Show overcloud failures
97           shell: "{{ stackrc }} && openstack stack failures list overcloud --long"
98           become: yes
99           become_user: stack
100       always:
101         - name: Archive Mistral logs
102           archive:
103             path:
104              - /var/lib/mistral
105              - /var/log/mistral
106             dest: /root/mistral_logs.tar.gz
107           become: yes
108         - name: Fetch mistral logs
109           fetch:
110             src: /root/mistral_logs.tar.gz
111             dest: "{{ apex_temp_dir }}/"
112             flat: yes
113           become: yes
114     - name: Show Keystone output
115       shell: "{{ overcloudrc }} && {{ item }}"
116       when: debug and vim == 'openstack'
117       with_items:
118         - openstack endpoint list
119         - openstack service list
120     - name: Get overcloud nodes and IPs
121       shell: "{{ stackrc }} && openstack server list -f json"
122       register: nova_list
123     - name: Write nova list output to file
124       local_action: copy content="{{ nova_list.stdout }}" dest="{{ apex_temp_dir }}/nova_output"
125     - name: Fetch overcloudrc
126       fetch:
127         src: /home/stack/overcloudrc
128         dest: "{{ apex_temp_dir }}/"
129         flat: yes