ryu/lagopus環境設定用ansible playbook
大量のマシンにlagopusとryuをぶち込む必要が出てきたので,ansibleの勉強を兼ねて,ryu, lagopusの環境設定を行うplaybookを書いてみた. このplaybookでインストールされるものは下記の通り.
- ryu
- lagopus v0.2
- dpdk-1.8.0
以下,そのコード
- hosts: lagopus vars: homedir: /home/lagopus DPDK_ver: dpdk-1.8.0 lagopus_ver: lagopus user: shd sudo: yes tasks: - name: install basic tools apt: name={{ item }} update_cache=yes with_items: - build-essential - git - unzip - python-pip - python-dev - name: install python modules pip: name={{ item }} state=latest with_items: - six - pbr - name: install ryu pip: name=ryu state=latest - name: install pkgs for DPDK compile apt: name={{ item }} with_items: - make - coreutils - gcc - binutils - name: install kernel header shell: "apt-get install -y linux-headers-$(uname -r)" - name: download DPDK command: wget http://dpdk.org/browse/dpdk/snapshot/{{ DPDK_ver }}.zip args: chdir: "{{ homedir }}" creates: "{{ homedir }}/{{ DPDK_ver }}.zip" - name: unzip DPDK command: unzip {{ DPDK_ver }}.zip args: chdir: "{{ homedir }}" creates: "{{ homedir }}/{{ DPDK_ver }}" - name: compile DPDK shell: "make config T=${RTE_TARGET} && make" args: chdir: "{{ homedir }}/{{ DPDK_ver }}" creates: "/home/shd/dpdk-1.8.0/build/app/cmdline_test" environment: RTE_SDK: "{{ homedir }}/{{ DPDK_ver }}" RTE_TARGET: "x86_64-native-linuxapp-gcc" - name: clone lagopus src from github git: repo=https://github.com/lagopus/lagopus.git dest={{ homedir }}/{{lagopus_ver}} version=HEAD - name: install pkgs for lagopus compile apt: name={{ item }} with_items: - libexpat-dev - libgmp-dev - libssl-dev - libpcap-dev - byacc - flex - python-dev - python-pastedeploy - python-paste - python-twisted - name: build and install lagopus shell: "./configure --with-dpdk-dir=${RTE_SDK} && make OPT_CFLAGS=\"-O3 -fomit-frame-pointer\" && make install" args: chdir: "{{ homedir }}/{{ lagopus_ver }}" creates: "/usr/local/sbin/lagopus" environment: RTE_SDK: "{{ homedir }}/{{ DPDK_ver }}" - name: rebooting! shell: reboot
でも,パフォーマンスの問題もあって,v0.1.1を使う場面もあるからそのバージョン切り替えもすんなり行くようなplaybookを作る必要がありそう.