Allow VMs to access internet
[yardstick.git] / ansible / roles / install_dpdk / tasks / main.yml
index fca0e33..e82ad83 100644 (file)
 #  with_fileglob:
 #    - "{{ local_nsb_path }}/patches/dpdk_custom_patch/0*.patch"
 
+- name: find kernel for image, (including chroot)
+  find_kernel:
+    kernel: "{{ ansible_kernel }}"
+  register: found_kernel
+
+# Do this before installing kernel headers
+- name: Set dpdk_kernel to be the kernel we found
+  set_fact:
+    dpdk_kernel: "{{ found_kernel.kernel }}"
+
 - include: "{{ ansible_os_family }}.yml"
 
-- my_make:
+- name: set RTE_KERNELDIR to point to found kernel
+  set_fact:
+    RTE_KERNELDIR: "/lib/modules/{{ dpdk_kernel }}/build"
+
+- command: make -j {{ ansible_processor_vcpus }} config T={{ dpdk_make_arch }} O={{ dpdk_make_arch }}
+  args:
     chdir: "{{ dpdk_path }}"
-    target: config
-    params:
-      T: "{{ dpdk_make_arch }}"
-      O: "{{ dpdk_make_arch }}"
-    extra_args: "-j {{ ansible_processor_vcpus }}"
+  environment:
+    RTE_KERNELDIR: "{{ RTE_KERNELDIR }}"
 
 - name: enable RTE_PORT_STATS_COLLECT
   lineinfile:
     regexp: '^CONFIG_RTE_PIPELINE_STATS_COLLECT=n'
     line: 'CONFIG_RTE_PIPELINE_STATS_COLLECT=y'
 
-- my_make:
+# This is requied for collectd? but it breaks PROX?
+#- name: enable CONFIG_RTE_BUILD_SHARED_LIB
+#  lineinfile:
+#    dest: "{{ dpdk_path }}/{{ dpdk_make_arch }}/.config"
+#    regexp: '^CONFIG_RTE_BUILD_SHARED_LIB=n'
+#    line: 'CONFIG_RTE_BUILD_SHARED_LIB=y'
+#
+#- name: enable DPDK CONFIG_RTE_EAL_PMD_PATH
+#  lineinfile:
+#    dest: "{{ dpdk_path }}/{{ dpdk_make_arch }}/.config"
+#    regexp: '^CONFIG_RTE_EAL_PMD_PATH=""'
+#    line: 'CONFIG_RTE_EAL_PMD_PATH="{{ dpdk_pmd_path }}"'
+
+# TODO: disable ASLR
+
+- name: make dpdk
+  command: make -j {{ ansible_processor_vcpus }}
+  args:
     chdir: "{{ dpdk_path }}/{{ dpdk_make_arch}}"
-    extra_args: "-j {{ ansible_processor_vcpus }}"
+  environment:
+    RTE_KERNELDIR: "{{ RTE_KERNELDIR }}"
+
+#- name: make install DPDK into /usr for collectd and other programs
+#  make:
+#    chdir: "{{ dpdk_path }}/{{ dpdk_make_arch}}"
+#    target: install
+#    params: "T={{ RTE_TARGET }}"
+##    params: "prefix={{ usr_prefix }}"
+#  environment:
+#    RTE_KERNELDIR: "{{ RTE_KERNELDIR }}"
+#  become: yes
 
 - file:
     path: "{{ dpdk_module_dir}}"
     dest: "{{ dpdk_module_dir }}/igb_uio.ko"
     remote_src: yes
 
-- command: depmod -a
+- name: run depmod for dpdk_kernel
+  command: depmod "{{ dpdk_kernel }}"
 
 - file:
     path: "{{ INSTALL_BIN_PATH }}"
     remote_src: yes
     force: yes
     mode: 0755
-
-- name: make dpdk_nic_bind.py for backwards compatibility
-  copy:
-    src: "{{ dpdk_devbind[dpdk_version] }}"
-    dest: "{{ INSTALL_BIN_PATH }}/dpdk_nic_bind.py"
-    remote_src: yes
-    force: yes
-    mode: 0755