X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=fdio.infra.ansible%2Froles%2Faws%2Ftasks%2Fmain.yaml;h=35ea985e1ffce07672ff05eb756515875a046cd1;hb=efe51d995a9d736ce194dbd1c850d4a09e0a1506;hp=2d209762c3ad52e15b5bacb21d1a1f3b3ba74b62;hpb=df5672b3d9c29b51397f4770eb992c9f3f3955ce;p=csit.git diff --git a/fdio.infra.ansible/roles/aws/tasks/main.yaml b/fdio.infra.ansible/roles/aws/tasks/main.yaml index 2d209762c3..35ea985e1f 100644 --- a/fdio.infra.ansible/roles/aws/tasks/main.yaml +++ b/fdio.infra.ansible/roles/aws/tasks/main.yaml @@ -1,93 +1,132 @@ --- -# file: roles/aws/tasks/main.yaml +# file: tasks/main.yaml - name: Edit repositories include_tasks: "{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml" tags: - aws-edit-repo -- name: Get vfio-pci With WC Patcher - get_url: - url: "https://github.com/amzn/amzn-drivers/raw/master/userspace/dpdk/enav2-vfio-patch/get-vfio-with-wc.sh" - dest: "/opt/get-vfio-with-wc.sh" - mode: "744" +- name: Prerequisites + ansible.builtin.package: + name: "{{ packages | flatten(levels=1) }}" + state: "latest" tags: - - aws-vfio-patch - -- name: Create vfio-pci Patch Directory - file: - path: "/opt/patches/" - state: "directory" - tags: - - aws-vfio-patch - -- name: Get vfio-pci WC Patch >=4.10 - get_url: - url: "https://github.com/amzn/amzn-drivers/raw/master/userspace/dpdk/enav2-vfio-patch/patches/linux-4.10-vfio-wc.patch" - dest: "/opt/patches/linux-4.10-vfio-wc.patch" - mode: "744" - tags: - - aws-vfio-patch + - aws-inst-prerequisites -- name: Get vfio-pci WC Patch >=5.8 - get_url: - url: "https://github.com/amzn/amzn-drivers/raw/master/userspace/dpdk/enav2-vfio-patch/patches/linux-5.8-vfio-wc.patch" - dest: "/opt/patches/linux-5.8-vfio-wc.patch" - mode: "744" +- name: Switch Kernel At Boot + ansible.builtin.lineinfile: + path: "/etc/default/grub" + state: "present" + line: "GRUB_DEFAULT=\"1>2\"" + notify: + - "Update GRUB" tags: - - aws-vfio-patch + - perf-conf-grub -- name: Compile vfio-pci With WC Patch - shell: "/bin/bash /opt/get-vfio-with-wc.sh" - tags: - - aws-vfio-patch +- meta: flush_handlers - name: Load Kernel Modules By Default - lineinfile: + ansible.builtin.lineinfile: path: "/etc/modules" state: "present" line: "{{ item }}" with_items: - - "vfio-pci" - "igb_uio" + - "vfio-pci" + notify: + - "Reboot Server" tags: - aws-load-kernel-modules - name: Add Kernel Modules Options (igb_uio) - lineinfile: + ansible.builtin.lineinfile: path: "/etc/modprobe.d/igb_uio.conf" state: "present" line: "{{ item }}" create: "yes" with_items: - "options igb_uio wc_activate=1" + notify: + - "Reboot Server" tags: - aws-load-kernel-modules - name: Add Kernel Modules Options (vfio-pci) - lineinfile: + ansible.builtin.lineinfile: path: "/etc/modprobe.d/vfio-noiommu.conf" state: "present" line: "{{ item }}" create: "yes" with_items: - "options vfio enable_unsafe_noiommu_mode=1" + notify: + - "Reboot Server" tags: - aws-load-kernel-modules +- meta: flush_handlers + +#- name: Get vfio-pci With WC Patcher +# ansible.builtin.get_url: +# url: "https://github.com/amzn/amzn-drivers/raw/master/userspace/dpdk/enav2-vfio-patch/get-vfio-with-wc.sh" +# dest: "/opt/get-vfio-with-wc.sh" +# mode: 0744 +# tags: +# - aws-vfio-patch + +- name: Create vfio-pci Patch Directory + ansible.builtin.file: + path: "/opt/patches/" + state: "directory" + tags: + - aws-vfio-patch + +- name: Get vfio-pci WC Patch + ansible.builtin.get_url: + url: "https://github.com/amzn/amzn-drivers/raw/master/userspace/dpdk/enav2-vfio-patch/patches/{{ item }}" + dest: "/opt/patches/{{ item }}" + mode: 0744 + with_items: + - "linux-4.10-vfio-wc.patch" + - "linux-5.8-vfio-wc.patch" + - "linux-5.15-vfio-wc.patch" + tags: + - aws-vfio-patch + +- name: Copy vfio-pci WC Patch + ansible.builtin.copy: + src: "files/get-vfio-with-wc.sh" + dest: "/opt" + mode: 0744 + tags: + - aws-vfio-patch + +- name: Compile vfio-pci With WC Patch + ansible.builtin.shell: "/bin/bash /opt/get-vfio-with-wc.sh" + environment: + DEBIAN_FRONTEND: "noninteractive" + TERM: "vt100" + tags: + - aws-vfio-patch + - name: Reload systemd-modules - systemd: + ansible.builtin.systemd: name: "systemd-modules-load" state: "restarted" tags: - aws-reload-systemd-modules -- name: Performance Tuning - Adjust nr_hugepages - sysctl: +- name: Adjust nr_hugepages + ansible.builtin.sysctl: name: "vm.nr_hugepages" value: "8192" state: "present" sysctl_file: "/etc/sysctl.d/90-csit.conf" - reload: "yes" + reload: true tags: - aws-set-hugepages + +- name: Shutdown host with delay + ansible.builtin.command: "/sbin/shutdown -P +720" + tags: + - aws-set-self-terminate