46f942be93edda5a8bd3a5c7625c7a9d385ef241
[csit.git] / fdio.infra.ansible / roles / dpdk / tasks / main.yaml
1 ---
2 # file: roles/dpdk/tasks/main.yaml
3
4 - name: Inst - Update Package Cache (APT)
5   apt:
6     update_cache: yes
7     cache_valid_time: 3600
8   when:
9     - ansible_distribution|lower == 'ubuntu'
10   tags:
11     - dpdk-inst-prerequisites
12
13 - name: Inst - Prerequisites
14   package:
15     name: "{{ packages | flatten(levels=1) }}"
16     state: latest
17   tags:
18     - dpdk-inst-prerequisites
19
20 - name: Download Release Archive
21   get_url:
22     url: "{{ dpdk_url }}/dpdk-{{ item }}.tar.xz"
23     dest: "{{ dpdk_target_dir }}/dpdk-{{ item }}.tar.xz"
24     mode: 0644
25   loop: "{{ dpdk_version }}"
26   register: "dpdk_downloaded"
27   tags:
28     - dpdk-inst
29
30 - name: Extract Release Archive
31   unarchive:
32     remote_src: true
33     src: "{{ dpdk_target_dir }}/dpdk-{{ item }}.tar.xz"
34     dest: "{{ dpdk_target_dir }}/"
35     creates: "{{ dpdk_target_dir }}/dpdk-{{ item }}"
36   loop: "{{ dpdk_version }}"
37   when: "dpdk_downloaded"
38   register: "dpdk_extracted"
39   tags:
40     - dpdk-inst
41
42 - name: Build igb_uio by default
43   lineinfile:
44     dest: "{{ dpdk_target_dir }}/dpdk-{{ item }}/config/common_base"
45     regexp: "^CONFIG_RTE_EAL_IGB_UIO"
46     line: "CONFIG_RTE_EAL_IGB_UIO=y"
47   loop: "{{ dpdk_version }}"
48   when: "dpdk_extracted"
49   register: "dpdk_configured"
50   tags:
51     - dpdk-inst
52
53 - name: Compile Release I
54   become: yes
55   command: "make install T={{ dpdk_build_targets[item][ansible_machine] }} DESTDIR={{ dpdk_target_dir }}/dpdk-{{ item }} chdir={{ dpdk_target_dir }}/dpdk-{{ item }}"
56   loop: "{{ dpdk_version }}"
57   when: "dpdk_configured"
58   register: "dpdk_compiled"
59   tags:
60     - dpdk-inst
61
62 - name: Link igb_uio Module
63   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"
64   ignore_errors: "yes"
65   loop: "{{ dpdk_version }}"
66   when: "dpdk_compiled"
67   tags:
68     - dpdk-inst