From a678231f39f4d4ea079018e7d11be36d0cc454d2 Mon Sep 17 00:00:00 2001 From: Tomas Alexy Date: Thu, 28 Jan 2021 08:59:22 +0100 Subject: Infra: Fix AWS deployment Signed-off-by: Tomas Alexy Change-Id: Ie24f5fac5827e28b1ac7c22192a94994700b2910 --- .../ansible/roles/aws/tasks/main.yaml | 57 +++++++++++++++------- .../ansible/roles/aws/tasks/ubuntu_bionic.yaml | 14 +++--- .../ansible/roles/calibration/defaults/main.yaml | 2 +- .../ansible/roles/topology/tasks/main.yaml | 4 +- resources/tools/testbed-setup/ansible/site.yaml | 17 +++++-- .../tools/testbed-setup/ansible/site_aws.yaml | 8 --- resources/tools/testbed-setup/ansible/sut.yaml | 26 ++++++++++ resources/tools/testbed-setup/ansible/sut_aws.yaml | 25 ---------- resources/tools/testbed-setup/ansible/tg.yaml | 30 ++++++++++++ resources/tools/testbed-setup/ansible/tg_aws.yaml | 35 ------------- 10 files changed, 117 insertions(+), 101 deletions(-) delete mode 100644 resources/tools/testbed-setup/ansible/site_aws.yaml delete mode 100644 resources/tools/testbed-setup/ansible/sut_aws.yaml delete mode 100644 resources/tools/testbed-setup/ansible/tg_aws.yaml (limited to 'resources/tools/testbed-setup/ansible') diff --git a/resources/tools/testbed-setup/ansible/roles/aws/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/aws/tasks/main.yaml index 7b7a7fbb1a..deca0670ec 100644 --- a/resources/tools/testbed-setup/ansible/roles/aws/tasks/main.yaml +++ b/resources/tools/testbed-setup/ansible/roles/aws/tasks/main.yaml @@ -1,26 +1,40 @@ --- # file: roles/aws/tasks/main.yaml -- name: AWS - Edit repositories - include_tasks: '{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml' - tags: edit-repo +- name: Edit repositories + include_tasks: "{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml" + tags: + - 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" + tags: + - vfio-aws-patch + +- name: Create vfio-pci Patch Directory + file: + path: "/opt/patches/" + state: "directory" + tags: + - vfio-aws-patch -- name: AWS - Get vfio-pci Patcher Script +- name: Get vfio-pci WC Patch get_url: - url: "https://github.com/amzn/amzn-drivers/raw/master/userspace/dpdk/enav2-vfio-patch/vfio-wc-patch.sh" - dest: "/opt/vfio-wc-patch.sh" + 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" - register: "vfio_patch_downloaded" tags: - vfio-aws-patch -- name: AWS - Patch vfio-pci - shell: "/bin/bash /opt/vfio-wc-patch.sh" - when: "vfio_patch_downloaded" +- name: Compile vfio-pci With WC Patch + shell: "/bin/bash /opt/get-vfio-with-wc.sh" tags: - vfio-aws-patch -- name: AWS - Load Kernel Modules By Default +- name: Load Kernel Modules By Default lineinfile: path: "/etc/modules" state: "present" @@ -28,11 +42,10 @@ with_items: - "vfio-pci" - "igb_uio" - register: "modules_added" tags: - load-kernel-modules -- name: AWS - Add Kernel Modules Options +- name: Add Kernel Modules Options (igb_uio) lineinfile: path: "/etc/modprobe.d/igb_uio.conf" state: "present" @@ -40,20 +53,28 @@ create: "yes" with_items: - "options igb_uio wc_activate=1" - when: "modules_added" - register: "modules_added" tags: - load-kernel-modules -- name: AWS - Reload systemd-modules +- name: Add Kernel Modules Options (vfio-pci) + lineinfile: + path: "/etc/modprobe.d/vfio-noiommu.conf" + state: "present" + line: "{{ item }}" + create: "yes" + with_items: + - "options vfio enable_unsafe_noiommu_mode=1" + tags: + - load-kernel-modules + +- name: Reload systemd-modules systemd: name: "systemd-modules-load" state: "restarted" - when: "modules_added" tags: - reload-systemd-modules -- name: AWS - Performance Tuning - Adjust nr_hugepages +- name: Performance Tuning - Adjust nr_hugepages sysctl: name: "vm.nr_hugepages" value: "8192" diff --git a/resources/tools/testbed-setup/ansible/roles/aws/tasks/ubuntu_bionic.yaml b/resources/tools/testbed-setup/ansible/roles/aws/tasks/ubuntu_bionic.yaml index 75e4a3ae57..ba6e107e45 100644 --- a/resources/tools/testbed-setup/ansible/roles/aws/tasks/ubuntu_bionic.yaml +++ b/resources/tools/testbed-setup/ansible/roles/aws/tasks/ubuntu_bionic.yaml @@ -1,10 +1,10 @@ --- -# file: roles/aws/tasks/ubuntu_bionic.yaml +# file: roles/aws/tasks/ubuntu_bionic.yaml.yaml -- name: AWS - Enable deb-src APT Repositories - replace: - path: "/etc/apt/sources.list" - regexp: "^# deb-src " - replace: "deb-src " +- name: Enable deb-src APT Repository + apt_repository: + repo: "deb-src http://archive.ubuntu.com/ubuntu bionic main" + state: "present" + update_cache: yes tags: - - enable-src-repo + - enable-src-repo \ No newline at end of file diff --git a/resources/tools/testbed-setup/ansible/roles/calibration/defaults/main.yaml b/resources/tools/testbed-setup/ansible/roles/calibration/defaults/main.yaml index c639f11088..e5ef3c1bc1 100644 --- a/resources/tools/testbed-setup/ansible/roles/calibration/defaults/main.yaml +++ b/resources/tools/testbed-setup/ansible/roles/calibration/defaults/main.yaml @@ -26,7 +26,7 @@ kernel_version_by_distro_by_arch: x86_64: - "4.15.0-72-generic" - "5.3.0-1020-azure" - - "5.3.0-1017-aws" + - "4.15.0-1057-aws" aarch64: - "4.15.0-54-generic" diff --git a/resources/tools/testbed-setup/ansible/roles/topology/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/topology/tasks/main.yaml index 9efdc71759..cf3eb5367f 100644 --- a/resources/tools/testbed-setup/ansible/roles/topology/tasks/main.yaml +++ b/resources/tools/testbed-setup/ansible/roles/topology/tasks/main.yaml @@ -3,7 +3,7 @@ - name: Create topology file template: - src: 'templates/topology_{{ cloud_topology }}.j2' - dest: '../../../../topologies/available/{{ cloud_topology }}_testbed.yaml' + src: "templates/topology_{{ cloud_topology }}.j2" + dest: "../../../../topologies/available/{{ cloud_topology }}_{{ testbed_name }}.yaml" tags: - create-topology-file diff --git a/resources/tools/testbed-setup/ansible/site.yaml b/resources/tools/testbed-setup/ansible/site.yaml index 5ac76ca340..1d755dbae0 100644 --- a/resources/tools/testbed-setup/ansible/site.yaml +++ b/resources/tools/testbed-setup/ansible/site.yaml @@ -2,16 +2,23 @@ # file: site.yaml - import_playbook: tg.yaml - tags: tg + tags: + - tg + - tg_aws - import_playbook: sut.yaml - tags: sut + tags: + - sut + - sut_aws - import_playbook: vpp_device.yaml - tags: vpp-device + tags: + - vpp-device - import_playbook: nomad.yaml - tags: nomad + tags: + - nomad - import_playbook: dev.yaml - tags: dev + tags: + - dev diff --git a/resources/tools/testbed-setup/ansible/site_aws.yaml b/resources/tools/testbed-setup/ansible/site_aws.yaml deleted file mode 100644 index 4e23a97f85..0000000000 --- a/resources/tools/testbed-setup/ansible/site_aws.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -# file: site_aws.yaml - -- import_playbook: tg_aws.yaml - tags: tg - -- import_playbook: sut_aws.yaml - tags: sut diff --git a/resources/tools/testbed-setup/ansible/sut.yaml b/resources/tools/testbed-setup/ansible/sut.yaml index 9449316fb2..f3e8c3b57b 100644 --- a/resources/tools/testbed-setup/ansible/sut.yaml +++ b/resources/tools/testbed-setup/ansible/sut.yaml @@ -38,3 +38,29 @@ tags: cleanup - role: calibration tags: calibration + +- hosts: sut_aws + remote_user: testuser + become: yes + become_user: root + roles: + - role: user_add + tags: user_add + - role: common + tags: common + - role: vpp + tags: vpp + - role: dpdk + tags: dpdk + - role: aws + tags: aws + - role: iperf + tags: iperf + - role: docker + tags: docker + - role: cleanup + tags: cleanup + # TODO: 'Check Kernel Parameters' failing in + # resources/tools/testbed-setup/ansible/roles/calibration/tasks/main.yaml + # - role: calibration + # tags: calibration diff --git a/resources/tools/testbed-setup/ansible/sut_aws.yaml b/resources/tools/testbed-setup/ansible/sut_aws.yaml deleted file mode 100644 index a7642abfef..0000000000 --- a/resources/tools/testbed-setup/ansible/sut_aws.yaml +++ /dev/null @@ -1,25 +0,0 @@ ---- -# file: sut_aws.yaml - -- hosts: sut - become: yes - become_user: root - roles: - - role: user_add - tags: user_add - - role: common - tags: common - - role: vpp - tags: vpp - - role: dpdk - tags: dpdk - - role: aws - tags: aws - - role: iperf - tags: iperf - - role: docker - tags: docker - - role: cleanup - tags: cleanup -# - role: calibration -# tags: calibration diff --git a/resources/tools/testbed-setup/ansible/tg.yaml b/resources/tools/testbed-setup/ansible/tg.yaml index 2b375b76a1..527ccae922 100644 --- a/resources/tools/testbed-setup/ansible/tg.yaml +++ b/resources/tools/testbed-setup/ansible/tg.yaml @@ -36,3 +36,33 @@ tags: cleanup - role: calibration tags: calibration + +- hosts: tg_aws + remote_user: testuser + become: yes + become_user: root + roles: + - role: user_add + tags: user_add + - role: common + tags: common + - role: dpdk + tags: dpdk + - role: aws + tags: aws + - role: tg + tags: tg + - role: iperf + tags: iperf + - role: trex + tags: trex + - role: ab + tags: ab + - role: docker + tags: docker + - role: cleanup + tags: cleanup + # TODO: 'Check Kernel Parameters' failing in + # resources/tools/testbed-setup/ansible/roles/calibration/tasks/main.yaml + # - role: calibration + # tags: calibration diff --git a/resources/tools/testbed-setup/ansible/tg_aws.yaml b/resources/tools/testbed-setup/ansible/tg_aws.yaml deleted file mode 100644 index 17e8239c9e..0000000000 --- a/resources/tools/testbed-setup/ansible/tg_aws.yaml +++ /dev/null @@ -1,35 +0,0 @@ ---- -# file: tg_aws.yaml - -- hosts: tg - become: yes - become_user: root - gather_facts: false - pre_tasks: - - name: Gathering Facts - gather_facts: - tags: - - always - roles: - - role: user_add - tags: user_add - - role: common - tags: common - - role: dpdk - tags: dpdk - - role: aws - tags: aws - - role: tg - tags: tg - - role: iperf - tags: iperf - - role: trex - tags: trex - - role: ab - tags: ab - - role: docker - tags: docker - - role: cleanup - tags: cleanup -# - role: calibration -# tags: calibration -- cgit 1.2.3-korg