---
# file: roles/wrk/defaults/main.yaml
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
packages_base:
- []
packages_by_distro:
ubuntu:
- - "apache2-utils"
+ bionic:
+ - "apache2-utils"
+ focal:
+ - "apache2-utils"
packages_by_arch:
aarch64:
name: "{{ packages | flatten(levels=1) }}"
state: present
tags:
- - ab-inst-ab
\ No newline at end of file
+ - ab-inst
\ No newline at end of file
# file: roles/calibration/defaults/main.yaml
# Packages to install.
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
packages_base:
- []
packages_by_distro:
ubuntu:
- - "build-essential"
- - "dmidecode"
+ bionic:
+ - "build-essential"
+ - "dmidecode"
+ focal:
+ - "build-essential"
+ - "dmidecode"
packages_by_arch:
aarch64:
- []
# Kernel version to check.
-kernel_version: "{{ kernel_version_by_distro_by_arch[ansible_distribution | lower][ansible_machine] }}"
+kernel_version: "{{ kernel_version_by_distro_by_arch[ansible_distribution | lower][ansible_distribution_release][ansible_machine] }}"
kernel_version_by_distro_by_arch:
ubuntu:
- x86_64:
- - "4.15.0-72-generic"
- - "5.3.0-1020-azure"
- - "4.15.0-1057-aws"
- aarch64:
- - "4.15.0-54-generic"
+ bionic:
+ x86_64:
+ - "4.15.0-72-generic"
+ - "5.3.0-1020-azure"
+ - "4.15.0-1057-aws"
+ aarch64:
+ - "4.15.0-54-generic"
+ focal:
+ x86_64:
+ - "5.4.0-65-generic"
+ - "5.3.0-1020-azure"
+ - "5.3.0-1017-aws"
+ aarch64:
+ - "5.4.0-65-generic"
pma_directory: "/tmp/pma_tools"
jitter_core: 7
---
# file: roles/common/defaults/main.yaml
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
packages_base:
- "autoconf"
packages_by_distro:
ubuntu:
- - "build-essential"
- - "libpcap-dev"
- - "net-tools"
- - "python-all"
- - "python-apt"
- - "python-cffi"
- - "python-cffi-backend"
- - "python-dev"
- - "python-pip"
- - "python-setuptools"
- - "python3-all"
- - "python3-apt"
- - "python3-cffi"
- - "python3-cffi-backend"
- - "python3-dev"
- - "python3-pip"
- - "python3-setuptools"
+ bionic:
+ - "build-essential"
+ - "libpcap-dev"
+ - "net-tools"
+ - "python-all"
+ - "python-apt"
+ - "python-cffi"
+ - "python-cffi-backend"
+ - "python-dev"
+ - "python-pip"
+ - "python-setuptools"
+ - "python3-all"
+ - "python3-apt"
+ - "python3-cffi"
+ - "python3-cffi-backend"
+ - "python3-dev"
+ - "python3-pip"
+ - "python3-setuptools"
+ focal:
+ - "build-essential"
+ - "libpcap-dev"
+ - "net-tools"
+ - "python3-all"
+ - "python3-apt"
+ - "python3-cffi"
+ - "python3-cffi-backend"
+ - "python3-dev"
+ - "python3-pip"
+ - "python3-setuptools"
packages_by_arch:
aarch64:
---
# file: roles/common/handlers/main.yaml
-- name: Reboot server
+- name: Reboot Server
reboot:
reboot_timeout: 3600
tags:
---
# file: roles/common/tasks/main.yaml
-- name: Add permanent proxy settings
+- name: Conf - Add permanent proxy settings
lineinfile:
path: "/etc/environment"
state: "present"
with_dict: "{{ proxy_env }}"
when: proxy_env is defined
tags:
- - set-proxy
+ - common-conf-proxy
- name: Inst - Update package cache (apt)
apt:
tags:
- common-inst-prerequisites
-- name: Install CSIT PIP requirements
+- name: Inst - CSIT PIP requirements
pip:
name:
- "ecdsa==0.13.3"
- "sphinxcontrib-serializinghtml==1.1.3"
- "urllib3==1.25.6"
tags:
- - install-pip
+ - common-inst-pip
-- name: Install CSIT PIP requirements - Pandas and SciPy workaround
+- name: Inst - CSIT PIP requirements - Pandas and SciPy workaround
pip:
name:
- "pandas==0.25.3"
- "scipy==1.5.4"
tags:
- - install-pip
+ - common-inst-pip
-- name: Install Meson (repository version is too old)
+- name: Inst - Meson (DPDK)
pip:
name:
- "meson==0.47.1"
tags:
- - install-meson
+ - common-inst-meson
-- name: Set sudoers admin
+- name: Conf - sudoers admin
lineinfile:
path: "/etc/sudoers"
state: "present"
line: "%admin ALL=(ALL) ALL"
validate: "/usr/sbin/visudo -cf %s"
tags:
- - set-sudoers
+ - common-conf-sudoers
-- name: Set sudoers sudo
+- name: Conf - sudoers nopasswd
lineinfile:
path: "/etc/sudoers"
state: "present"
line: "%sudo ALL=(ALL:ALL) NOPASSWD: ALL"
validate: "/usr/sbin/visudo -cf %s"
tags:
- - set-sudoers
+ - common-conf-sudoers
- meta: flush_handlers
path: "/opt/csit-sut/"
state: "directory"
mode: 0755
- tags: csit-sut-image
+ tags:
+ - csit-sut-image
- name: Copy Build Items
copy:
with_items:
- Dockerfile
- supervisord.conf
- tags: csit-sut-image
+ tags:
+ - csit-sut-image
- name: Build CSIT SUT Docker Image
shell: "docker build -t csit_sut-ubuntu1804:local ."
args:
chdir: "/opt/csit-sut"
- tags: csit-sut-image
\ No newline at end of file
+ tags:
+ - csit-sut-image
\ No newline at end of file
# Used only for RedHat/CentOS/Fedora.
docker_yum_repo_url: https://download.docker.com/linux/{{ (ansible_distribution == "Fedora") | ternary("fedora","centos") }}/docker-{{ docker_edition }}.repo
-docker_yum_repo_enable_edge: '0'
-docker_yum_repo_enable_test: '0'
+docker_yum_repo_enable_edge: "0"
+docker_yum_repo_enable_test: "0"
docker_yum_gpg_key: https://download.docker.com/linux/centos/gpg
# A list of users who will be added to the docker group.
service:
name: "docker"
state: "{{ docker_restart_handler_state }}"
+ tags:
+ - docker-restart-service
\ No newline at end of file
state: "present"
cache_valid_time: 3600
install_recommends: False
- tags: docker-inst-dependencies
+ tags:
+ - docker-inst-dependencies
- name: Conf - Add APT Key
apt_key:
url: "{{ docker_apt_gpg_key }}"
state: "{{ docker_apt_gpg_key_state }}"
- tags: docker-conf-apt
+ tags:
+ - docker-conf-apt
- name: Conf - Install APT Repository
apt_repository:
repo: "{{ docker_apt_repository }}"
state: "{{ docker_apt_repository_state }}"
update_cache: yes
- tags: docker-conf-apt
+ tags:
+ - docker-conf-apt
--- /dev/null
+---
+# file: roles/docker/tasks/ubuntu_focal.yaml
+
+- name: Inst - Dependencies
+ apt:
+ name:
+ - "apt-transport-https"
+ - "ca-certificates"
+ - "gpg-agent"
+ - "software-properties-common"
+ state: "present"
+ cache_valid_time: 3600
+ install_recommends: False
+ tags:
+ - docker-inst-dependencies
+
+- name: Conf - Add APT Key
+ apt_key:
+ url: "{{ docker_apt_gpg_key }}"
+ state: "{{ docker_apt_gpg_key_state }}"
+ tags:
+ - docker-conf-apt
+
+- name: Conf - Install APT Repository
+ apt_repository:
+ repo: "{{ docker_apt_repository }}"
+ state: "{{ docker_apt_repository_state }}"
+ update_cache: yes
+ tags:
+ - docker-conf-apt
---
# file: roles/dpdk/defaults/main.yaml
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
packages_base:
- []
packages_by_distro:
ubuntu:
- - "build-essential"
- - "libnuma-dev"
+ bionic:
+ - "build-essential"
+ - "libnuma-dev"
+ focal:
+ - "build-essential"
+ - "libnuma-dev"
packages_by_arch:
aarch64:
dpdk_target_dir: "/opt"
dpdk_version:
- - "19.02"
- "20.02"
dpdk_url: "https://fast.dpdk.org/rel"
dpdk_build_targets:
- "19.02":
- aarch64: "arm64-armv8a-linuxapp-gcc"
- x86_64: "x86_64-native-linuxapp-gcc"
"20.02":
aarch64: "arm64-armv8a-linux-gcc"
x86_64: "x86_64-native-linux-gcc"
loop: "{{ dpdk_version }}"
register: "dpdk_downloaded"
tags:
- - install-dpdk
+ - dpdk-inst
- name: Extract Release Archive
unarchive:
when: "dpdk_downloaded"
register: "dpdk_extracted"
tags:
- - install-dpdk
+ - dpdk-inst
- name: Build igb_uio by default
lineinfile:
when: "dpdk_extracted"
register: "dpdk_configured"
tags:
- - install-dpdk
+ - dpdk-inst
- name: Compile Release I
become: yes
when: "dpdk_configured"
register: "dpdk_compiled"
tags:
- - install-dpdk
+ - dpdk-inst
- name: Link igb_uio Module
shell: "ln -fs {{ dpdk_target_dir }}/dpdk-{{ item }}/{{ dpdk_build_targets[item][ansible_machine] }}/kmod/igb_uio.ko /lib/modules/`uname -r`/igb_uio.ko && depmod -a"
loop: "{{ dpdk_version }}"
when: "dpdk_compiled"
tags:
- - install-dpdk
+ - dpdk-inst
\ No newline at end of file
---
# file: roles/iperf/defaults/main.yaml
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
packages_base:
- []
packages_by_distro:
ubuntu:
- - "build-essential"
- - "lib32z1"
+ bionic:
+ - "build-essential"
+ - "lib32z1"
+ focal:
+ - "build-essential"
+ - "lib32z1"
packages_by_arch:
aarch64:
mode: 0644
loop: "{{ iperf_version }}"
tags:
- - install-iperf
+ - iperf-inst
- name: Extract Release Archive
unarchive:
creates: "{{ iperf_target_dir }}/iperf-{{ item }}/src"
loop: "{{ iperf_version }}"
tags:
- - install-iperf
+ - iperf-inst
- name: Compile Release I
command: "./configure"
chdir: "{{ iperf_target_dir }}/iperf-{{ item }}/"
loop: "{{ iperf_version }}"
tags:
- - install-iperf
+ - iperf-inst
- name: Compile Release II
command: "make"
chdir: "{{ iperf_target_dir }}/iperf-{{ item }}/"
loop: "{{ iperf_version }}"
tags:
- - install-iperf
+ - iperf-inst
- name: Compile Release III
command: "make install"
chdir: "{{ iperf_target_dir }}/iperf-{{ item }}/"
loop: "{{ iperf_version }}"
tags:
- - install-iperf
+ - iperf-inst
\ No newline at end of file
# file: roles/kernel/defaults/main.yaml
# Kernel version to install (Default to any version).
-kernel_version: "{{ kernel_version_by_distro[ansible_distribution | lower] | join(' ') }}"
+kernel_version: "{{ kernel_version_by_distro[ansible_distribution|lower][ansible_distribution_release] | join(' ') }}"
kernel_version_by_distro:
ubuntu:
- - "4.15.0-72"
+ bionic:
+ - "4.15.0-72"
+ focal:
+ - "5.4.0-65"
-kernel_packages: "{{ kernel_packages_by_distro[ansible_distribution | lower] | flatten(levels=1) }}"
+kernel_packages: "{{ kernel_packages_by_distro[ansible_distribution|lower][ansible_distribution_release] | flatten(levels=1) }}"
kernel_packages_by_distro:
ubuntu:
- - "linux-image"
- - "linux-headers"
- - "linux-modules"
- - "linux-modules-extra"
- - "linux-tools"
+ bionic:
+ - "linux-image"
+ - "linux-headers"
+ - "linux-modules"
+ - "linux-modules-extra"
+ - "linux-tools"
+ focal:
+ - "linux-image"
+ - "linux-headers"
+ - "linux-modules"
+ - "linux-modules-extra"
+ - "linux-tools"
# Packages to remove in relation to kernel upgrade.
-absent_packages: "{{ absent_packages_by_distro[ansible_distribution | lower] | flatten(levels=1) }}"
+absent_packages: "{{ absent_packages_by_distro[ansible_distribution|lower][ansible_distribution_release] | flatten(levels=1) }}"
absent_packages_by_distro:
ubuntu:
- - "amd64-microcode"
- - "intel-microcode"
- - "iucode-tool"
+ bionic:
+ - "amd64-microcode"
+ - "intel-microcode"
+ - "iucode-tool"
+ focal:
+ - "amd64-microcode"
+ - "intel-microcode"
+ - "iucode-tool"
\ No newline at end of file
- name: Reboot Server
reboot:
reboot_timeout: 3600
+ tags:
+ - reboot-server
\ No newline at end of file
---
# file: roles/kernel/tasks/main.yaml
-- name: Kernel - Install distribution - release
- include_tasks: '{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml'
- tags: install-kernel
+- name: Inst - Prerequisites
+ include_tasks: "{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml"
+ tags:
+ - kernel-inst-prerequisites
- meta: flush_handlers
---
# file: roles/kernel/tasks/ubuntu_bionic.yaml
-- name: Kernel - Get Available Kernel Versions
+- name: Get Available Kernel Versions
command: "apt-cache showpkg linux-headers-*"
changed_when: false
register: apt_kernel_list
- tags: install-kernel
+ tags:
+ - kernel-inst
-- name: Kernel - Get installed packages with APT
+- name: Get installed packages with APT
command: "dpkg -l"
changed_when: false
register: apt_packages_list
- tags: install-kernel
+ tags:
+ - kernel-inst
-- name: Kernel - Set target APT kernel version
+- name: Set target APT kernel version
set_fact:
_kernel: "{{ apt_kernel_list | deb_kernel(
kernel_version, ansible_kernel) }}"
- tags: install-kernel
+ tags:
+ - kernel-inst
-- name: Kernel - Ensure Packages Versions
+- name: Ensure Packages Versions
apt:
name: "{{ apt_kernel_list | deb_kernel_pkg(
kernel_version, ansible_kernel, ansible_distribution,
ansible_architecture, item) }}"
loop: "{{ kernel_packages }}"
- tags: install-kernel
+ tags:
+ - kernel-inst
-- name: Kernel - Ensure Any Other Kernel Packages Are Removed
+- name: Ensure Any Other Kernel Packages Are Removed
apt:
name: "{{ apt_packages_list | deb_installed_kernel(
apt_kernel_list, kernel_version, ansible_kernel) }}"
purge: true
notify:
- "Reboot Server"
- tags: install-kernel
+ tags:
+ - kernel-inst
-- name: Kernel - Ensure Any Microcode Is Absent
+- name: Ensure Any Microcode Is Absent
apt:
name: "{{ absent_packages }}"
state: absent
purge: true
- tags: install-kernel
-
+ tags:
+ - kernel-inst
\ No newline at end of file
--- /dev/null
+---
+# file: roles/kernel/tasks/ubuntu_focal.yaml
+
+- name: Get Available Kernel Versions
+ command: "apt-cache showpkg linux-headers-*"
+ changed_when: false
+ register: apt_kernel_list
+ tags:
+ - kernel-inst
+
+- name: Get installed packages with APT
+ command: "dpkg -l"
+ changed_when: false
+ register: apt_packages_list
+ tags:
+ - kernel-inst
+
+- name: Set target APT kernel version
+ set_fact:
+ _kernel: "{{ apt_kernel_list | deb_kernel(
+ kernel_version, ansible_kernel) }}"
+ tags:
+ - kernel-inst
+
+- name: Ensure Packages Versions
+ apt:
+ name: "{{ apt_kernel_list | deb_kernel_pkg(
+ kernel_version, ansible_kernel, ansible_distribution,
+ ansible_architecture, item) }}"
+ loop: "{{ kernel_packages }}"
+ tags:
+ - kernel-inst
+
+- name: Ensure Any Other Kernel Packages Are Removed
+ apt:
+ name: "{{ apt_packages_list | deb_installed_kernel(
+ apt_kernel_list, kernel_version, ansible_kernel) }}"
+ state: absent
+ purge: true
+ notify:
+ - "Reboot Server"
+ tags:
+ - kernel-inst
+
+- name: Ensure Any Microcode Is Absent
+ apt:
+ name: "{{ absent_packages }}"
+ state: absent
+ purge: true
+ tags:
+ - kernel-inst
\ No newline at end of file
---
# file: roles/kernel_vm/tasks/main.yaml
-- name: Kernel VM - Backup remote initramfs modules
+- name: Inst - Backup remote initramfs modules
copy:
src: "/etc/initramfs-tools/modules"
dest: "/tmp/initramfs_modules.bkp"
ignore_errors: yes
register: __initramfs_modules_backuped
tags:
- - install-kernel-image
+ - kernel-inst-image
-- name: Kernel VM - Backup remote initramfs resume config
+- name: Inst - Backup remote initramfs resume config
copy:
src: "/etc/initramfs-tools/conf.d/resume"
dest: "/tmp/initramfs-resume.bkp"
ignore_errors: yes
register: __initramfs_resume_backuped
tags:
- - install-kernel-image
+ - kernel-inst-image
-- name: Kernel VM - Update remote initramfs modules
+- name: Inst - Update remote initramfs modules
copy:
src: "../files/initramfs_modules"
dest: "/etc/initramfs-tools/modules"
tags:
- - install-kernel-image
+ - kernel-inst-image
-- name: Kernel VM - Update remote initramfs resume config
+- name: Inst - Update remote initramfs resume config
copy:
src: "../files/initramfs_resume"
dest: "/etc/initramfs-tools/conf.d/resume"
tags:
- - install-kernel-image
+ - kernel-inst-image
-- name: Kernel VM - Create target kernel dir
+- name: Inst - Create target kernel dir
file:
path: "/opt/boot"
state: "directory"
tags:
- - install-kernel-image
+ - kernel-inst-image
-- name: Kernel VM - Build initrd image
+- name: Inst - Build initrd image
shell: "update-initramfs -k {{ ansible_kernel }} -c -b /opt/boot"
tags:
- - install-kernel-image
+ - kernel-inst-image
-- name: Kernel VM - Copy corresponding kernel img
+- name: Inst - Copy corresponding kernel img
copy:
src: "/boot/vmlinuz-{{ ansible_kernel }}"
dest: "/opt/boot/vmlinuz-{{ ansible_kernel }}"
remote_src: yes
tags:
- - install-kernel-image
+ - kernel-inst-image
-- name: Kernel VM - Restore remote initramfs modules
+- name: Inst - Restore remote initramfs modules
copy:
src: "/tmp/initramfs_modules.bkp"
dest: "/etc/initramfs-tools/modules"
ignore_errors: yes
when: __initramfs_modules_backuped
tags:
- - install-kernel-image
+ - kernel-inst-image
-- name: Kernel VM - Remove remote backup initramfs modules
+- name: Inst - Remove remote backup initramfs modules
file:
path: "/tmp/initramfs_modules.bkp"
state: "absent"
when: __initramfs_modules_backuped
tags:
- - install-kernel-image
+ - kernel-inst-image
-- name: Kernel VM - Restore remote initramfs resume config
+- name: Inst - Restore remote initramfs resume config
copy:
src: "/tmp/initramfs-resume.bkp"
dest: "/etc/initramfs-tools/conf.d/resume"
ignore_errors: yes
when: __initramfs_resume_backuped
tags:
- - install-kernel-image
+ - kernel-inst-image
-- name: Kernel VM - Remove remote backup initramfs resume config
+- name: Inst - Remove remote backup initramfs resume config
file:
path: "/tmp/initramfs-resume.bkp"
state: "absent"
when: __initramfs_resume_backuped
tags:
- - install-kernel-image
+ - kernel-inst-image
tags:
- mellanox-inst-prerequisites
-- name: Check Presence of Mellanox Hardware
+- name: Inst - Check Presence of Mellanox Hardware
shell: "lspci | grep Mellanox | awk '{print $1}'"
register: mellanox_pcis
failed_when: no
changed_when: no
tags:
- - install-mellanox
+ - mellanox-inst
-- name: Get OFED
+- name: Inst - Get OFED
get_url:
url: "http://content.mellanox.com/ofed/MLNX_OFED-{{ mellanox_version }}/MLNX_OFED_LINUX-{{ mellanox_version }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}.tgz"
dest: "/opt/MLNX_OFED_LINUX-{{ mellanox_version }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}.tgz"
mode: 0644
when: mellanox_pcis.stdout_lines | length > 0
tags:
- - install-mellanox
+ - mellanox-inst
-- name: Extract OFED
+- name: Inst - Extract OFED
unarchive:
remote_src: true
src: "/opt/MLNX_OFED_LINUX-{{ mellanox_version }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}.tgz"
register: mellanox_firmware_extracted
when: mellanox_pcis.stdout_lines | length > 0
tags:
- - install-mellanox
+ - mellanox-inst
-- name: Install OFED
+- name: Inst - OFED
command: "./mlnxofedinstall --with-mft --dpdk --force --upstream-libs"
args:
chdir: "/opt/MLNX_OFED_LINUX-{{ mellanox_version }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}"
when: mellanox_pcis.stdout_lines | length > 0 and mellanox_firmware_extracted
tags:
- - install-mellanox
+ - mellanox-inst
- name: Switch Infiniband to Ethernet
command: "mlxconfig --yes --dev {{ item }} set LINK_TYPE_P1=2 LINK_TYPE_P2=2"
with_items: "{{ mellanox_pcis.stdout_lines }}"
tags:
- - install-mellanox
+ - mellanox-conf
- name: FIX qemu-system removal
package:
name: "qemu-system"
state: latest
tags:
- - install-mellanox
+ - mellanox-inst
---
# file: roles/performance_tuning/defaults/main.yaml
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
packages_base:
- "cpufrequtils"
packages_by_distro:
ubuntu:
- - []
+ bionic:
+ - []
+ focal:
+ - []
packages_by_arch:
aarch64:
tags:
- perf-inst-prerequisites
-- name: Distribution - release - machine optimizations
- include_tasks: '{{ ansible_distribution|lower }}_{{ ansible_distribution_release }}.yaml'
- tags:
- - machine-optimizations
-
-- name: Configure {{ ansible_machine }} Kernel Parameters
+- name: Conf - Kernel Parameters
lineinfile:
path: "/etc/default/grub"
state: "present"
regexp: "^GRUB_CMDLINE_LINUX="
- line: "GRUB_CMDLINE_LINUX=\"{% for key, value in grub.items() %}{% if value %}{{key}}={{value}} {% else %}{{key}} {% endif %}{% endfor %}\""
+ line: "GRUB_CMDLINE_LINUX=\"{% for key, value in grub.items() %}{% if value is sameas true %}{{key}} {% else %}{{key}}={{value}} {% endif %}{% endfor %}\""
notify:
- "Update GRUB"
tags:
- - set-grub
+ - perf-conf-grub
- meta: flush_handlers
-- name: Turbo Boost
+- name: Conf - Turbo Boost
import_tasks: turbo_boost.yaml
when: >
cpu_microarchitecture == "skylake" or
cpu_microarchitecture == "cascadelake"
tags:
- - turbo-boost
+ - perf-conf-turbo-boost
-- name: Adjust nr_hugepages
+- name: Conf - Adjust nr_hugepages
# change the minimum size of the hugepage pool.
# 2G VPP, 4GB per VNF/CNF, 2G reserve
sysctl:
sysctl_file: "/etc/sysctl.d/90-csit.conf"
reload: "yes"
tags:
- - set-sysctl
+ - perf-conf-sysctl
-- name: Adjust max_map_count
+- name: Conf - Adjust max_map_count
# this file contains the maximum number of memory map areas a process
# may have. memory map areas are used as a side-effect of calling
# malloc, directly by mmap and mprotect, and also when loading shared
sysctl_file: "/etc/sysctl.d/90-csit.conf"
reload: "yes"
tags:
- - set-sysctl
+ - perf-conf-sysctl
-- name: Adjust hugetlb_shm_group
+- name: Conf - Adjust hugetlb_shm_group
# hugetlb_shm_group contains group id that is allowed to create sysv
# shared memory segment using hugetlb page.
sysctl:
sysctl_file: "/etc/sysctl.d/90-csit.conf"
reload: "yes"
tags:
- - set-sysctl
+ - perf-conf-sysctl
-- name: Adjust swappiness
+- name: Conf - Adjust swappiness
# this control is used to define how aggressive the kernel will swap
# memory pages. higher values will increase agressiveness, lower values
# decrease the amount of swap. a value of 0 instructs the kernel not to
sysctl_file: "/etc/sysctl.d/90-csit.conf"
reload: "yes"
tags:
- - set-sysctl
+ - perf-conf-sysctl
-- name: Adjust shmmax
+- name: Conf - Adjust shmmax
# shared memory max must be greator or equal to the total size of hugepages.
# for 2mb pages, totalhugepagesize = vm.nr_hugepages * 2 * 1024 * 1024
# if the existing kernel.shmmax setting (cat /sys/proc/kernel/shmmax)
sysctl_file: "/etc/sysctl.d/90-csit.conf"
reload: "yes"
tags:
- - set-sysctl
+ - perf-conf-sysctl
-- name: Adjust watchdog_cpumask
+- name: Conf - Adjust watchdog_cpumask
# this value can be used to control on which cpus the watchdog may run.
# the default cpumask is all possible cores, but if no_hz_full is
# enabled in the kernel config, and cores are specified with the
sysctl_file: "/etc/sysctl.d/90-csit.conf"
reload: "yes"
tags:
- - set-sysctl
+ - perf-conf-sysctl
-- name: Adjust randomize_va_space
+- name: Conf - Adjust randomize_va_space
# this option can be used to select the type of process address
# space randomization that is used in the system, for architectures
# that support this feature.
sysctl_file: "/etc/sysctl.d/90-csit.conf"
reload: "yes"
tags:
- - set-sysctl
+ - perf-conf-sysctl
-- name: Copy Cpufrequtils File
+- name: Conf - Cpufrequtils
copy:
src: "files/cpufrequtils"
dest: "/etc/default/cpufrequtils"
owner: "root"
group: "root"
- mode: "0644"
+ mode: 0644
tags:
- - copy-cpufrequtils
+ - perf-conf-cpufrequtils
-- name: Copy Irqbalance File
+- name: Conf - Irqbalance
template:
src: "files/irqbalance"
dest: "/etc/default/irqbalance"
owner: "root"
group: "root"
- mode: "0644"
+ mode: 0644
notify:
- "Update GRUB"
tags:
- - copy-irqbalance
+ - perf-conf-irqbalance
-- name: Set Ondemand Service To Disable
+- name: Conf - Set Ondemand Service To Disable
service:
name: "ondemand"
enabled: "no"
tags:
- - set-ondemand
+ - perf-conf-ondemand
-- name: Load Kernel Modules By Default
+- name: Conf - Load Kernel Modules By Default
lineinfile:
path: "/etc/modules"
state: "present"
with_items:
- "vfio-pci"
tags:
- - load-kernel-modules
+ - perf-conf-load-kernel-modules
- meta: flush_handlers
tags:
- turbo-inst-prerequisites
-- name: Install msr-tools
+- name: Inst - msr-tools
package:
name:
- "msr-tools"
tags:
- turbo-inst-prerequisites
-- name: Load msr By Default
+- name: Conf - Load msr By Default
lineinfile:
path: "/etc/modules"
state: "present"
line: "msr"
tags:
- - turbo-boost
+ - turbo-conf-msr
-- name: Custom Startup Service Hook
+- name: Conf - Custom Startup Service Hook
copy:
src: "files/disable-turbo-boost.service"
dest: "/etc/systemd/system/disable-turbo-boost.service"
owner: "root"
group: "root"
- mode: "0644"
+ mode: 0644
tags:
- - turbo-boost
+ - turbo-conf-msr
-- name: Custom Startup Service Hook Enable
+- name: Conf - Custom Startup Service Hook Enable
service:
name: "disable-turbo-boost"
enabled: yes
tags:
- - turbo-boost
+ - turbo-conf-msr
+++ /dev/null
----
-# file: roles/performance_tuning/tasks/ubuntu_bionic.yaml
-
-- name: Ubuntu Bionic - Mount /tmp as tmpfs I
- copy:
- src: "/usr/share/systemd/tmp.mount"
- dest: "/etc/systemd/system/tmp.mount"
- remote_src: yes
- tags:
- - machine-optimizations
-
-- name: Ubuntu Bionic - Mount /tmp as tmpfs II
- systemd:
- name: "tmp.mount"
- daemon_reload: yes
- enabled: yes
- tags:
- - machine-optimizations
---
# file: roles/tg/tasks/main.yaml
-- name: TG - Copy csit-initialize-docker-tg.sh
+- name: Conf - csit-initialize-docker-tg.sh
copy:
src: "files/csit-initialize-docker-tg.sh"
dest: "/usr/local/bin/csit-initialize-docker-tg.sh"
owner: "root"
group: "root"
- mode: "744"
- when: docker_tg is defined
+ mode: 0744
+ when:
+ - docker_tg is defined
tags:
- - docker-tg
+ - tg-conf-docker
-- name: TG - Start csit-initialize-docker-tg.service
+- name: Conf - Start csit-initialize-docker-tg.service
copy:
src: "files/csit-initialize-docker-tg.service"
dest: "/etc/systemd/system/"
owner: "root"
group: "root"
- mode: "644"
+ mode: 0644
notify:
- "Start csit-initialize-docker-tg.service"
- when: docker_tg is defined
+ when:
+ - docker_tg is defined
tags:
- - docker-tg
+ - tg-conf-docker
- meta: flush_handlers
---
# file: roles/trex/defaults/main.yaml
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
packages_base:
- []
packages_by_distro:
ubuntu:
- - "build-essential"
- - "libmnl-dev"
- - "libnuma-dev"
- - "libpcap-dev"
- - "librdmacm-dev"
- - "librdmacm1"
- - "libssl-dev"
- - "pciutils"
- - "python3-pip"
- - "zlib1g-dev"
+ bionic:
+ - "build-essential"
+ - "libmnl-dev"
+ - "libnuma-dev"
+ - "libpcap-dev"
+ - "librdmacm-dev"
+ - "librdmacm1"
+ - "libssl-dev"
+ - "pciutils"
+ - "python3-pip"
+ - "zlib1g-dev"
+ focal:
+ - "build-essential"
+ - "libmnl-dev"
+ - "libnuma-dev"
+ - "libpcap-dev"
+ - "librdmacm-dev"
+ - "librdmacm1"
+ - "libssl-dev"
+ - "pciutils"
+ - "python3-pip"
+ - "zlib1g-dev"
packages_by_arch:
aarch64:
trex_target_dir: "/opt"
trex_url: "https://github.com/cisco-system-traffic-generator/trex-core/archive/"
trex_version:
- # rls1908
- - "2.54"
- # rls2001
- # rls2005
- - "2.73"
# rls2009
- "2.82"
# rls2101
---
# file: roles/trex/tasks/deploy_block.yaml
-- name: "Get Release {{ item }}"
+- name: Get Release {{ item }}
get_url:
url: "{{ trex_url }}/v{{ item }}.tar.gz"
dest: "{{ trex_target_dir }}/trex-core-{{ item }}.tar.gz"
mode: 0644
register: trex_downloaded
-- name: "Create Directory {{ item }}"
+- name: Create Directory {{ item }}
file:
path: "{{ trex_target_dir }}/trex-core-{{ item }}"
state: "directory"
-- name: "Extract Release {{ item }}"
+- name: Extract Release {{ item }}
unarchive:
remote_src: true
src: "{{ trex_target_dir }}/trex-core-{{ item }}.tar.gz"
when:
- azure is defined and item == "2.73"
-- name: "Compile Release {{ item }} Part I"
+- name: Compile Release {{ item }} Part I
command: "./b configure"
args:
chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
when: trex_extracted.changed
-- name: "Compile Release {{ item }} Part II"
+- name: Compile Release {{ item }} Part II
command: "./b build"
args:
chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
when: trex_extracted.changed
-- name: "Compile Release {{ item }} Part III"
+- name: Compile Release {{ item }} Part III
command: "make -j 16"
args:
chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/scripts/ko/src"
when: trex_extracted.changed
-- name: "Compile Release {{ item }} Part IV"
+- name: Compile Release {{ item }} Part IV
command: "make install"
args:
chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/scripts/ko/src"
tags:
- trex-inst-prerequisites
-- name: Deploy Multiple T-Rex Versions
+- name: Inst - Multiple T-Rex Versions
include_tasks: deploy_block.yaml
loop: "{{ trex_version }}"
tags:
- - install-trex
\ No newline at end of file
+ - trex-inst
\ No newline at end of file
---
# file: roles/vpp/defaults/main.yaml
-packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}"
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
packages_base:
- "gdb"
packages_by_distro:
ubuntu:
- - "build-essential"
- - "libglib2.0-dev"
- - "libmbedcrypto1"
- - "libmbedtls10"
- - "libmbedx509-0"
- - "libnuma-dev"
- - "libpixman-1-dev"
+ bionic:
+ - "build-essential"
+ - "libglib2.0-dev"
+ - "libmbedcrypto1"
+ - "libmbedtls10"
+ - "libmbedx509-0"
+ - "libnuma-dev"
+ - "libpixman-1-dev"
+ focal:
+ - "build-essential"
+ - "libglib2.0-dev"
+ - "libmbedcrypto3"
+ - "libmbedtls12"
+ - "libmbedx509-0"
+ - "libnuma-dev"
+ - "libpixman-1-dev"
packages_by_arch:
aarch64:
tags:
- vpp-inst-prerequisites
-- name: Inst - VPP 19.08 PIP requirements
- pip:
- name:
- - "aenum==2.1.2"
- executable: pip2
- tags:
- - install-pip
-
-- name: Copy 80-vpp.conf
+- name: Conf - sysctl
file:
src: "/dev/null"
dest: "/etc/sysctl.d/80-vpp.conf"
state: "link"
become: yes
tags:
- - create-80-vpp
+ - vpp-conf-sysctl
tags: kernel
- role: mellanox
tags: mellanox
+ - role: docker
+ tags: docker
- role: vpp
tags: vpp
- role: dpdk
tags: dpdk
- - role: docker
- tags: docker
- - role: kubernetes
- tags: kubernetes
- role: kernel_vm
tags: kernel_vm
- role: csit_sut_image
tags: user_add
- role: common
tags: common
+ - role: docker
+ tags: docker
- role: vpp
tags: vpp
- role: azure
tags: azure
- role: iperf
tags: iperf
- - role: docker
- tags: docker
- role: dpdk
tags: dpdk
- role: cleanup
tags: kernel
- role: mellanox
tags: mellanox
+ - role: docker
+ tags: docker
- role: tg
tags: tg
- role: iperf
tags: trex
- role: ab
tags: ab
- - role: docker
- tags: docker
- role: performance_tuning
tags: performance_tuning
- role: cleanup
tags: dpdk
- role: aws
tags: aws
+ - role: docker
+ tags: docker
- role: tg
tags: tg
- role: iperf
tags: trex
- role: ab
tags: ab
- - role: docker
- tags: docker
- role: cleanup
tags: cleanup
# TODO: 'Check Kernel Parameters' failing in
tags: common
- role: azure
tags: azure
+ - role: docker
+ tags: docker
- role: tg
tags: tg
- role: iperf
tags: trex
- role: ab
tags: ab
- - role: docker
- tags: docker
- role: cleanup
tags: cleanup
# - role: calibration