Fixes undercloud install failure with setting hostname
[apex.git] / lib / ansible / playbooks / deploy_overcloud.yml
index aa3d806..44470da 100644 (file)
         - network-environment.yaml
         - instackenv.json
         - overcloud-full.qcow2
+        - overcloud-full.vmlinuz
+        - overcloud-full.initrd
+        - ironic-python-agent.initramfs
+        - ironic-python-agent.kernel
         - deploy_command
         - virtual-environment.yaml
         - baremetal-environment.yaml
+        - kubernetes-environment.yaml
         - "{{ apex_env_file }}"
+    - name: Copy ansible.cfg data to undercloud in aarch64
+      copy:
+        src: "{{ apex_temp_dir }}/ansible.cfg"
+        dest: "/home/stack/ansible.cfg"
+        owner: stack
+        group: stack
+        mode: 0644
+      when: aarch64
     - name: Copy network data to undercloud
       copy:
         src: "{{ apex_temp_dir }}/network_data.yaml"
         owner: root
         group: root
         mode: 0664
-    - systemd:
-        name: openstack-swift-proxy
-        state: restarted
-        enabled: yes
-      become: yes
+    - copy:
+        src: "{{ apex_temp_dir }}/neutron-opendaylight-sriov.yaml"
+        dest: /usr/share/openstack-tripleo-heat-templates/environments/services/neutron-opendaylight-sriov.yaml
+        owner: root
+        group: root
+        mode: 0664
     - name: Remove Ceph OSD from ceph storage role
       lineinfile:
         path: /usr/share/openstack-tripleo-heat-templates/roles_data.yaml
         owner: root
         group: root
       become: yes
+    - name: Insert Ceph OSDs into Controller role
+      lineinfile:
+        path: /usr/share/openstack-tripleo-heat-templates/roles_data.yaml
+        insertbefore:  '^\s*-\sOS::TripleO::Services::CephRbdMirror$'
+        line: '    - OS::TripleO::Services::CephOSD'
+        owner: root
+        group: root
+      become: yes
+    - name: Insert External network into Compute role
+      shell: |
+        ruby -e '
+        require "yaml"
+        data = YAML.load(File.read("/usr/share/openstack-tripleo-heat-templates/roles_data.yaml"))
+        data[1]["networks"].push("External")
+        data[1]["default_route_networks"] = Array.new(["External"])
+        File.open("/usr/share/openstack-tripleo-heat-templates/roles_data.yaml", "w") { |f| f.write(data.to_yaml) }
+        '
+      become: yes
     - name: Upload glance images
       shell: "{{ stackrc }} && openstack overcloud image upload"
       become: yes
         - baremetal
         - control
         - compute
+    - name: Re-enable ceph config for aarch64
+      replace:
+        path: "/usr/share/ceph-ansible/roles/ceph-client/tasks/create_users_keys.yml"
+        regexp: "x86_64"
+        replace: "aarch64"
+        backup: yes
+      when: aarch64
     - name: Configure DNS server for ctlplane network
       shell: "{{ stackrc }} && openstack subnet set ctlplane-subnet {{ dns_server_args }}"
+    - name: Update NIC templates before deployment
+      shell: >
+        /usr/share/openstack-tripleo-heat-templates/tools/merge-new-params-nic-config-script.py
+        -n /home/stack/network_data.yaml -t /home/stack/nics/{{ item }}.yaml --discard-comments True
+      become: yes
+      become_user: stack
+      with_items:
+        - controller
+        - compute
     - block:
         - name: Execute Overcloud Deployment
           shell: "{{ stackrc }} && bash deploy_command"
+          become: yes
+          become_user: stack
       rescue:
         - name: Show overcloud failures
           shell: "{{ stackrc }} && openstack stack failures list overcloud --long"
+          become: yes
+          become_user: stack
+      always:
+        - name: Archive Mistral logs
+          archive:
+            path:
+             - /var/lib/mistral
+             - /var/log/mistral
+            dest: /root/mistral_logs.tar.gz
+          become: yes
+        - name: Fetch mistral logs
+          fetch:
+            src: /root/mistral_logs.tar.gz
+            dest: "{{ apex_temp_dir }}/"
+            flat: yes
+          become: yes
     - name: Show Keystone output
       shell: "{{ overcloudrc }} && {{ item }}"
-      when: debug
+      when: debug and vim == 'openstack'
       with_items:
         - openstack endpoint list
         - openstack service list