From 4c7557234e0395edda02efddbfae8de74cdda1e9 Mon Sep 17 00:00:00 2001 From: "wu.zhihui" Date: Mon, 6 Mar 2017 18:21:34 +0800 Subject: Refactor dpi playbook Local test is ok. Change-Id: I22a333eae940433a1ca228e6ee7f570b8d0c0fc9 Signed-off-by: wu.zhihui --- qtip/driver/playbook/dpi/clean.yaml | 23 ++++++++ qtip/driver/playbook/dpi/dpi_average.sh | 10 ++++ qtip/driver/playbook/dpi/run.yaml | 46 ++++++++++++++++ qtip/driver/playbook/dpi/setup.yaml | 93 +++++++++++++++++++++++++++++++++ 4 files changed, 172 insertions(+) create mode 100644 qtip/driver/playbook/dpi/clean.yaml create mode 100644 qtip/driver/playbook/dpi/dpi_average.sh create mode 100644 qtip/driver/playbook/dpi/run.yaml create mode 100644 qtip/driver/playbook/dpi/setup.yaml (limited to 'qtip') diff --git a/qtip/driver/playbook/dpi/clean.yaml b/qtip/driver/playbook/dpi/clean.yaml new file mode 100644 index 00000000..0b9f9291 --- /dev/null +++ b/qtip/driver/playbook/dpi/clean.yaml @@ -0,0 +1,23 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +- hosts: hosts + become: yes + remote_user: root + + tasks: + - name: Cleaning tempD + file: + path: '{{ ansible_env.HOME }}/tempD' + state: absent + + - name: Cleaning qtip_result + file: + path: '{{ ansible_env.HOME }}/qtip_result' + state: absent diff --git a/qtip/driver/playbook/dpi/dpi_average.sh b/qtip/driver/playbook/dpi/dpi_average.sh new file mode 100644 index 00000000..6f038053 --- /dev/null +++ b/qtip/driver/playbook/dpi/dpi_average.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +COUNTER=0 +WDIR=$PWD +while [ $COUNTER -lt 10 ]; do + echo $WDIR + $( ./ndpiReader -i test.pcap >> $WDIR/dpi_dump.txt ) + let COUNTER=COUNTER+1 + echo "Run number: $COUNTER" +done \ No newline at end of file diff --git a/qtip/driver/playbook/dpi/run.yaml b/qtip/driver/playbook/dpi/run.yaml new file mode 100644 index 00000000..58f7eb2f --- /dev/null +++ b/qtip/driver/playbook/dpi/run.yaml @@ -0,0 +1,46 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +- hosts: hosts + become: yes + remote_user: root + + tasks: + - name: Get current timestamp + set_fact: + timestamp: "{{ lookup('pipe', 'date +%Y-%m-%d-%H-%M') }}" + + - name: Make some directories needed + file: + path: '{{ ansible_env.HOME }}/qtip_result/{{ timestamp }}/{{ ansible_hostname }}' + state: directory + + - include: ../inxi.yaml + vars: + dest_path: '{{ ansible_env.HOME }}/qtip_result/{{ timestamp }}/{{ ansible_hostname }}' + + - include: ../top.yaml + vars: + dest_path: '{{ ansible_env.HOME }}/qtip_result/{{ timestamp }}/{{ ansible_hostname }}' + + - name: Run nDPI benchmark + shell: ./dpi_average.sh + args: + chdir: '{{ ansible_env.HOME }}/tempD/nDPI/example/' + + - name: Copying result and system info to qtip result directory + command: cp $HOME/tempD/nDPI/example/dpi_dump.txt ./ + args: + chdir: '{{ ansible_env.HOME }}/qtip_result/{{ timestamp }}/{{ ansible_hostname }}' + + - name: Fetch result files to local manchine + synchronize: + mode: pull + src: '{{ ansible_env.HOME }}/qtip_result/' + dest: '{{ result_dir }}/dpi/logs/' diff --git a/qtip/driver/playbook/dpi/setup.yaml b/qtip/driver/playbook/dpi/setup.yaml new file mode 100644 index 00000000..c1b45450 --- /dev/null +++ b/qtip/driver/playbook/dpi/setup.yaml @@ -0,0 +1,93 @@ +############################################################################## +# Copyright (c) 2017 ZTE Corporation and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +- hosts: localhost + connection: local + gather_facts: no + + tasks: + - name: Making Dpi directory + file: + path: '{{ result_dir }}/dpi/logs/' + state: directory + +- hosts: hosts + become: yes + remote_user: root + + tasks: + - name: Cleaning tempD directory + file: + path: '{{ ansible_env.HOME }}/tempD' + state: absent + + - name: Cleaning qtip_result directory + file: + path: '{{ ansible_env.HOME }}/qtip_result' + state: absent + + - include: ../prepare_env.yaml + + - name: Installing nDPI dependencies if CentOS + yum: + name: '{{ item }}' + state: present + when: ansible_os_family == "RedHat" + with_items: + - git + - gcc + - patch + - perl-Time-HiRes + - autofconf + - automake + - libpcap-devel libtool + + - name: Installing nDPI dependencies if Ubuntu + apt: + name: '{{ item }}' + state: present + when: ansible_os_family == "Debian" + with_items: + - git + - gcc + - patch + - autoconf + - automake + - libpcap-dev + - libtool + + - name: Making nDPI temporary directory + file: + path: '{{ ansible_env.HOME }}/tempD' + state: directory + + - name: Clone nDPI + git: + repo: https://github.com/ntop/nDPI.git + dest: '{{ ansible_env.HOME }}/tempD/nDPI' + + - name: Run autogen && configure Dpi && make Dpi + command: '{{ item }}' + with_items: + - ./autogen.sh + - ./configure + - make + args: + chdir: '{{ ansible_env.HOME }}/tempD/nDPI/' + + - name: Fetching Test_pcap file + get_url: + url: http://build.opnfv.org/artifacts.opnfv.org/qtip/utilities/test.pcap + dest: '{{ ansible_env.HOME }}/tempD/nDPI/example/test.pcap' + + - name: Fetch Averaging script + copy: + src: ./dpi_average.sh + dest: '{{ ansible_env.HOME }}/tempD/nDPI/example' + mode: 777 \ No newline at end of file -- cgit 1.2.3-korg