+---
+# file: roles/tg/tasks/trex.yaml
+
+- name: Download TRex release archive
+ get_url:
+ url: '{{ trex.url }}/v{{ trex.version }}.tar.gz'
+ dest: '{{ trex.target_dir }}/trex-core-{{ trex.version }}.tar.gz'
+ mode: 0644
+ register: 'linux__trex_downloaded'
+ tags: install-trex
+
+- name: Ensure TRex directory exists
+ file:
+ path: '{{ trex.target_dir }}/trex-core-{{ trex.version }}'
+ state: 'directory'
+ register: 'linux__trex_dir_created'
+ tags: install-trex
+
+- name: Extract TRex release archive
+ become: yes
+ unarchive:
+ src: '{{ trex.target_dir }}/trex-core-{{ trex.version }}.tar.gz'
+ dest: '{{ trex.target_dir }}/'
+ creates: '{{ trex.target_dir }}/trex-core-{{ trex.version }}/linux_dpdk'
+ remote_src: yes
+ when: 'linux__trex_dir_created'
+ register: 'linux__trex_extracted'
+ tags: install-trex
+
+- name: Compile TRex release I
+ become: yes
+ shell: 'cd {{ trex.target_dir }}/trex-core-{{ trex.version }}/linux_dpdk/; ./b configure; ./b build'
+ when: 'linux__trex_extracted'
+ tags: install-trex
+
+- name: Compile TRex release II
+ become: yes
+ shell: 'cd {{ trex.target_dir }}/trex-core-{{ trex.version }}/scripts/ko/src; make; make install'
+ when: 'linux__trex_extracted'
+ tags: install-trex