--- # file: roles/dpdk/tasks/main.yaml - Name: Update package cache (apt) apt: update_cache: yes cache_valid_time: 3600 when: - ansible_distribution|lower == 'ubuntu' - name: DPDK - Install Distribution - Release - Machine Prerequisites package: name: "{{ packages | flatten(levels=1) }}" state: latest tags: - install-dependencies - name: DPDK - Download Release Archive get_url: url: "{{ dpdk_url }}/dpdk-{{ item }}.tar.xz" dest: "{{ dpdk_target_dir }}/dpdk-{{ item }}.tar.xz" mode: 0644 loop: "{{ dpdk_version }}" register: "dpdk_downloaded" tags: - install-dpdk - name: DPDK - Extract Release Archive unarchive: remote_src: true src: "{{ dpdk_target_dir }}/dpdk-{{ item }}.tar.xz" dest: "{{ dpdk_target_dir }}/" creates: "{{ dpdk_target_dir }}/dpdk-{{ item }}" loop: "{{ dpdk_version }}" when: "dpdk_downloaded" register: "dpdk_extracted" tags: - install-dpdk - name: DPDK - Build igb_uio by default lineinfile: dest: "{{ dpdk_target_dir }}/dpdk-{{ item }}/config/common_base" regexp: "^CONFIG_RTE_EAL_IGB_UIO" line: "CONFIG_RTE_EAL_IGB_UIO=y" loop: "{{ dpdk_version }}" when: "dpdk_extracted" register: "dpdk_configured" tags: - install-dpdk - name: DPDK - Compile Release I become: yes command: "make install T={{ dpdk_build_targets[item][ansible_machine] }} DESTDIR={{ dpdk_target_dir }}/dpdk-{{ item }} chdir={{ dpdk_target_dir }}/dpdk-{{ item }}" loop: "{{ dpdk_version }}" when: "dpdk_configured" register: "dpdk_compiled" tags: - install-dpdk - name: DPDK - 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" ignore_errors: "yes" loop: "{{ dpdk_version }}" when: "dpdk_compiled" tags: - install-dpdk