aboutsummaryrefslogtreecommitdiffstats
path: root/fdio.infra.ansible/roles/trex
diff options
context:
space:
mode:
Diffstat (limited to 'fdio.infra.ansible/roles/trex')
-rw-r--r--fdio.infra.ansible/roles/trex/defaults/main.yaml42
-rw-r--r--fdio.infra.ansible/roles/trex/tasks/deploy_block.yaml40
-rw-r--r--fdio.infra.ansible/roles/trex/tasks/main.yaml12
3 files changed, 45 insertions, 49 deletions
diff --git a/fdio.infra.ansible/roles/trex/defaults/main.yaml b/fdio.infra.ansible/roles/trex/defaults/main.yaml
index 180d635def..18a2b56bda 100644
--- a/fdio.infra.ansible/roles/trex/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/trex/defaults/main.yaml
@@ -1,35 +1,25 @@
---
-# file: roles/trex/defaults/main.yaml
+# file: defaults/main.yaml
-packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower][ansible_distribution_release] + packages_by_arch[ansible_machine] }}"
+packages: "{{ packages_base + packages_by_distro[ansible_distribution|lower] + packages_by_arch[ansible_machine] }}"
packages_base:
- []
packages_by_distro:
ubuntu:
- focal:
- - "build-essential"
- - "libmnl-dev"
- - "libnuma-dev"
- - "libpcap-dev"
- - "librdmacm-dev"
- - "librdmacm1"
- - "libssl-dev"
- - "pciutils"
- - "python3-pip"
- - "zlib1g-dev"
- jammy:
- - "build-essential"
- - "libmnl-dev"
- - "libnuma-dev"
- - "libpcap-dev"
- - "librdmacm-dev"
- - "librdmacm1"
- - "libssl-dev"
- - "pciutils"
- - "python3-pip"
- - "zlib1g-dev"
+ - "build-essential"
+ - "gcc-9"
+ - "g++-9"
+ - "libmnl-dev"
+ - "libnuma-dev"
+ - "libpcap-dev"
+ - "librdmacm-dev"
+ - "librdmacm1"
+ - "libssl-dev"
+ - "pciutils"
+ - "python3-pip"
+ - "zlib1g-dev"
packages_by_arch:
aarch64:
@@ -40,6 +30,4 @@ packages_by_arch:
trex_target_dir: "/opt"
trex_url: "https://github.com/cisco-system-traffic-generator/trex-core/archive/"
trex_version:
- # master // ubuntu 20.04
- - "2.88"
- - "2.97"
+ - "3.03"
diff --git a/fdio.infra.ansible/roles/trex/tasks/deploy_block.yaml b/fdio.infra.ansible/roles/trex/tasks/deploy_block.yaml
index 9aeb1be023..1a747f68d5 100644
--- a/fdio.infra.ansible/roles/trex/tasks/deploy_block.yaml
+++ b/fdio.infra.ansible/roles/trex/tasks/deploy_block.yaml
@@ -1,8 +1,8 @@
---
-# file: roles/trex/tasks/deploy_block.yaml
+# file: tasks/deploy_block.yaml
- name: Get Release {{ item }}
- get_url:
+ ansible.builtin.get_url:
url: "{{ trex_url }}/v{{ item }}.tar.gz"
dest: "{{ trex_target_dir }}/trex-core-{{ item }}.tar.gz"
validate_certs: false
@@ -10,46 +10,54 @@
register: trex_downloaded
- name: Create Directory {{ item }}
- file:
+ ansible.builtin.file:
path: "{{ trex_target_dir }}/trex-core-{{ item }}"
state: "directory"
- name: Extract Release {{ item }}
- unarchive:
+ ansible.builtin.unarchive:
remote_src: true
src: "{{ trex_target_dir }}/trex-core-{{ item }}.tar.gz"
dest: "{{ trex_target_dir }}/"
creates: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
register: trex_extracted
-- name: Patch Azure
- patch:
- src: "files/t-rex.patch"
- basedir: "{{ trex_target_dir }}/trex-core-{{ item }}"
- strip: 1
- when:
- - azure is defined and item == "2.73"
-
- name: Compile Release {{ item }} Part I
- command: "./b configure"
+ ansible.builtin.command: "./b configure"
args:
chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
when: trex_extracted.changed
- name: Compile Release {{ item }} Part II
- command: "./b build"
+ ansible.builtin.command: "./b build"
args:
chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/linux_dpdk/"
+ async: 3000
+ poll: 0
+ register: trex_built
+ when: trex_extracted.changed
+
+- name: Check if T-Rex is Compiled
+ async_status:
+ jid: "{{ trex_built.ansible_job_id }}"
+ register: trex_built
+ until: trex_built.finished
+ delay: 10
+ retries: 300
when: trex_extracted.changed
- name: Compile Release {{ item }} Part III
- command: "make -j 16"
+ ansible.builtin.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
- command: "make install"
+ ansible.builtin.command: "make install"
args:
chdir: "{{ trex_target_dir }}/trex-core-{{ item }}/scripts/ko/src"
when: trex_extracted.changed
+
+- name: Link libc.a to liblibc.a
+ ansible.builtin.command: "ln -s -f /usr/lib/x86_64-linux-gnu/libc.a /usr/lib/x86_64-linux-gnu/liblibc.a"
+ when: trex_extracted.changed
diff --git a/fdio.infra.ansible/roles/trex/tasks/main.yaml b/fdio.infra.ansible/roles/trex/tasks/main.yaml
index 8f659b697c..d0509f7544 100644
--- a/fdio.infra.ansible/roles/trex/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/trex/tasks/main.yaml
@@ -1,8 +1,8 @@
---
-# file: roles/trex/tasks/main.yaml
+# file: tasks/main.yaml
-- name: Inst - Update Package Cache (APT)
- apt:
+- name: Update Package Cache (APT)
+ ansible.builtin.apt:
update_cache: true
cache_valid_time: 3600
when:
@@ -10,14 +10,14 @@
tags:
- trex-inst-prerequisites
-- name: Inst - Prerequisites
- package:
+- name: Prerequisites
+ ansible.builtin.package:
name: "{{ packages | flatten(levels=1) }}"
state: latest
tags:
- trex-inst-prerequisites
-- name: Inst - Multiple T-Rex Versions
+- name: Multiple T-Rex Versions
include_tasks: deploy_block.yaml
loop: "{{ trex_version }}"
tags: