--- # file: roles/trex/tasks/deploy_block.yaml - name: Get Release {{ item }} ansible.builtin.get_url: url: "{{ trex_url }}/v{{ item }}.tar.gz" dest: "{{ trex_target_dir }}/trex-core-{{ item }}.tar.gz" validate_certs: false mode: 0644 register: trex_downloaded - name: Create Directory {{ item }} ansible.builtin.file: path: "{{ trex_target_dir }}/trex-core-{{ item }}" state: "directory" - name: Extract Release {{ item }} 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 ansible.builtin.patch: src: "files/t-rex.patch" basedir: "{{ trex_target_dir }}/trex-core-{{ item }}" strip: 1 when: - azure is defined and item == "2.73" - name: Reset gcc-9 ansible.builtin.command: "update-alternatives --remove-all gcc" when: trex_extracted.changed - name: Reset g++-9 ansible.builtin.command: "update-alternatives --remove-all g++" when: trex_extracted.changed - name: Switch to gcc-9 ansible.builtin.command: "update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9" when: trex_extracted.changed - name: Switch to g++-9 ansible.builtin.command: "update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 9" when: trex_extracted.changed - name: Compile Release {{ item }} Part I 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 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: Switch to gcc-11 ansible.builtin.command: "update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 11" when: trex_extracted.changed - name: Switch to g++-11 ansible.builtin.command: "update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 11" when: trex_extracted.changed - name: Compile Release {{ item }} Part III 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 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