diff options
Diffstat (limited to 'fdio.infra.ansible/roles/trex')
-rw-r--r-- | fdio.infra.ansible/roles/trex/defaults/main.yaml | 42 | ||||
-rw-r--r-- | fdio.infra.ansible/roles/trex/tasks/deploy_block.yaml | 40 | ||||
-rw-r--r-- | fdio.infra.ansible/roles/trex/tasks/main.yaml | 12 |
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: |