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