diff options
Diffstat (limited to 'lib/ansible/playbooks/deploy_overcloud.yml')
-rw-r--r-- | lib/ansible/playbooks/deploy_overcloud.yml | 93 |
1 files changed, 82 insertions, 11 deletions
diff --git a/lib/ansible/playbooks/deploy_overcloud.yml b/lib/ansible/playbooks/deploy_overcloud.yml index b2d9234a..9a405814 100644 --- a/lib/ansible/playbooks/deploy_overcloud.yml +++ b/lib/ansible/playbooks/deploy_overcloud.yml @@ -12,10 +12,23 @@ - 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" @@ -30,11 +43,12 @@ 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 @@ -51,38 +65,95 @@ 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")) + if data[1]["networks"].is_a?(Array) + data[1]["networks"].push("External") + elsif data[1]["networks"].is_a?(Hash) + data[1]["networks"].merge!("External"=> { "subnet" => "external_subnet" }) + else + raise "Unable to determine data to modify in roles_data.yaml" + end + 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 become_user: stack - name: Import inventory (baremetal) shell: "{{ stackrc }} && openstack overcloud node import instackenv.json" - when: not virtual + when: introspect - name: Introspect inventory (baremetal) shell: "{{ stackrc }} && openstack overcloud node introspect --all-manageable --provide" - when: - - not virtual - - not aarch64 + when: introspect - name: Import inventory (virtual) shell: "{{ stackrc }} && openstack overcloud node import --provide instackenv.json" - when: virtual + when: not introspect - name: Set flavors shell: '{{ stackrc }} && openstack flavor set --property "cpu_arch"="{{ ansible_architecture }}" {{ item }}' with_items: - 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 + --role-name Controller + 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 |