Skip to content

Instantly share code, notes, and snippets.

@ytakano
Last active April 22, 2016 02:03
Show Gist options
  • Save ytakano/4073b8a47ebb9ee3fd61 to your computer and use it in GitHub Desktop.
Save ytakano/4073b8a47ebb9ee3fd61 to your computer and use it in GitHub Desktop.
ansible for netmap
# command:
# ansible-playbook -i /etc/ansible/hosts --ask-sudo-pass netmap.yaml
- hosts: netmap
sudo: yes
vars:
work_dir: /root/down
netmap_dir: "{{work_dir}}/netmap"
kernel_src_dir: /usr/src/linux-source
kernel_headers_dir: /usr/src/linux-headers
tasks:
- name: apt
apt: pkg={{item}} state=present update_cache=yes
with_items:
- git
- build-essential
- linux-source
- linux-headers-generic
- autoconf
- name: kernel-src
shell: "tar xvf /usr/src/linux-source-`uname -r | awk 'BEGIN { FS=\"-\" } { print $1 }'`.tar.bz2 -C /usr/src && rm -rf {{kernel_src_dir}} {{kernel_headers_dir}} && ln -sf /usr/src/linux-source-`uname -r | awk 'BEGIN { FS=\"-\" } { print $1 }'` {{kernel_src_dir}} && ln -sf /usr/src/linux-headers-`uname -r` {{kernel_headers_dir}}"
- name: git
git: repo=https://github.com/luigirizzo/netmap.git
dest={{netmap_dir}}
- name: build
shell: "cd {{netmap_dir}}/LINUX && ./configure --kernel-sources={{kernel_src_dir}} && make clean && make KSRC={{kernel_headers_dir}}"
- name: copy file
shell: "cp {{netmap_dir}}/sys/net/netmap.h /usr/include/net/netmap.h && cp {{netmap_dir}}/sys/net/netmap_user.h /usr/include/net/netmap_user.h"
- name: rmmod
shell: "rmmod netmap.ko"
register: result
failed_when: "'XXX' in result.stderr"
- name: insmod
shell: "cd {{netmap_dir}}/LINUX && insmod netmap.ko"
register: result
failed_when: "'No such file or directory' in result.stderr"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment