Make introspection optional
[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         - "{{ apex_env_file }}"
19     - name: Copy network data to undercloud
20       copy:
21         src: "{{ apex_temp_dir }}/network_data.yaml"
22         dest: "/home/stack/network_data.yaml"
23         owner: stack
24         group: stack
25         mode: 0644
26       when: os_version != 'ocata'
27     - copy:
28         src: "{{ apex_temp_dir }}/storage-environment.yaml"
29         dest: /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml
30         owner: root
31         group: root
32         mode: 0664
33     - systemd:
34         name: openstack-swift-proxy
35         state: restarted
36         enabled: yes
37       become: yes
38     - name: Remove Ceph OSD from ceph storage role
39       lineinfile:
40         path: /usr/share/openstack-tripleo-heat-templates/roles_data.yaml
41         line: '    - OS::TripleO::Services::CephOSD'
42         owner: root
43         group: root
44         state: absent
45       become: yes
46     - name: Insert Ceph OSDs into Compute role
47       lineinfile:
48         path: /usr/share/openstack-tripleo-heat-templates/roles_data.yaml
49         insertbefore:  '^\s*-\sOS::TripleO::Services::NovaCompute$'
50         line: '    - OS::TripleO::Services::CephOSD'
51         owner: root
52         group: root
53       become: yes
54     - name: Upload glance images
55       shell: "{{ stackrc }} && openstack overcloud image upload"
56       become: yes
57       become_user: stack
58     - name: Import inventory (baremetal)
59       shell: "{{ stackrc }} && openstack overcloud node import instackenv.json"
60       when: introspect
61     - name: Introspect inventory (baremetal)
62       shell: "{{ stackrc }} && openstack overcloud node introspect --all-manageable --provide"
63       when: introspect
64     - name: Import inventory (virtual)
65       shell: "{{ stackrc }} && openstack overcloud node import --provide instackenv.json"
66       when: not introspect
67     - name: Set flavors
68       shell: '{{ stackrc }} && openstack flavor set --property "cpu_arch"="{{ ansible_architecture }}" {{ item }}'
69       with_items:
70         - baremetal
71         - control
72         - compute
73     - name: Configure DNS server for ctlplane network
74       shell: "{{ stackrc }} && openstack subnet set ctlplane-subnet {{ dns_server_args }}"
75     - block:
76         - name: Execute Overcloud Deployment
77           shell: "{{ stackrc }} && bash deploy_command"
78       rescue:
79         - name: Show overcloud failures
80           shell: "{{ stackrc }} && openstack stack failures list overcloud --long"
81     - name: Show Keystone output
82       shell: "{{ overcloudrc }} && {{ item }}"
83       when: debug
84       with_items:
85         - openstack endpoint list
86         - openstack service list
87     - name: Get overcloud nodes and IPs
88       shell: "{{ stackrc }} && openstack server list -f json"
89       register: nova_list
90     - name: Write nova list output to file
91       local_action: copy content="{{ nova_list.stdout }}" dest="{{ apex_temp_dir }}/nova_output"
92     - name: Fetch overcloudrc
93       fetch:
94         src: /home/stack/overcloudrc
95         dest: "{{ apex_temp_dir }}/"
96         flat: yes