X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=tutorials%2FvFWDT%2Fplaybooks%2Fvpgn%2Flatest%2Fansible%2Fdistributetrafficcheck%2Fsite.yml;h=665619abb569e857bbe2e43fe9298c6023bc29ec;hb=6305603f8cb54c28e93a7e4bfad265723638299c;hp=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391;hpb=45bd91a7c70bc7468fad598969a543420936fe0e;p=demo.git diff --git a/tutorials/vFWDT/playbooks/vpgn/latest/ansible/distributetrafficcheck/site.yml b/tutorials/vFWDT/playbooks/vpgn/latest/ansible/distributetrafficcheck/site.yml index e69de29b..665619ab 100644 --- a/tutorials/vFWDT/playbooks/vpgn/latest/ansible/distributetrafficcheck/site.yml +++ b/tutorials/vFWDT/playbooks/vpgn/latest/ansible/distributetrafficcheck/site.yml @@ -0,0 +1,150 @@ +--- +- hosts: vpgn + gather_facts: no + remote_user: ubuntu + tasks: + + - name: Install tcpdump, grepcidr + apt: + name: "{{ packages }}" + vars: + packages: + - tcpdump + - grepcidr + become: true + + + - include_vars: "{{ ConfigFileName }}" + - debug: var="trafficpresence" + failed_when: "'trafficpresence' is not defined" + + - name: Get all Interfaces + set_fact: + interfaces: "{{destinations[0].vservers | map(attribute='l-interfaces') | list}}" + - name: Interfaces vserver 1 + set_fact: + vserver1_interfaces: "{{destinations[0].vservers[0]['l-interfaces'] | list}}" + - name: Interfaces vserver 2 + set_fact: + vserver2_interfaces: "{{destinations[0].vservers[1]['l-interfaces'] | list}}" + - block: + - name: length interfaces vserver1 + set_fact: + length1: "{{ vserver1_interfaces |length }}" + - name: length interfaces vserver2 + set_fact: + length2: "{{ vserver2_interfaces |length }}" + - block: + - name: adress 1 vserver + set_fact: + sink_addresses: + - "{{destinations[0].vservers[0]['l-interfaces'][0]['ipv4-addresses'][0]}}" + - "{{destinations[0].vservers[0]['l-interfaces'][1]['ipv4-addresses'][0]}}" + - "{{destinations[0].vservers[0]['l-interfaces'][2]['ipv4-addresses'][0]}}" + - name: adress 2 vserver + set_fact: + fw_addresses: + - "{{destinations[0].vservers[1]['l-interfaces'][0]['ipv4-addresses'][0]}}" + - "{{destinations[0].vservers[1]['l-interfaces'][1]['ipv4-addresses'][0]}}" + - "{{destinations[0].vservers[1]['l-interfaces'][2]['ipv4-addresses'][0]}}" + - "{{destinations[0].vservers[1]['l-interfaces'][3]['ipv4-addresses'][0]}}" + when: + - length1 == "3" + - length2 == "4" + - block: + - name: adress 1 vserver + set_fact: + fw_addresses: + - "{{destinations[0].vservers[0]['l-interfaces'][0]['ipv4-addresses'][0]}}" + - "{{destinations[0].vservers[0]['l-interfaces'][1]['ipv4-addresses'][0]}}" + - "{{destinations[0].vservers[0]['l-interfaces'][2]['ipv4-addresses'][0]}}" + - "{{destinations[0].vservers[0]['l-interfaces'][3]['ipv4-addresses'][0]}}" + - name: adress 2 vserver + set_fact: + sink_addresses: + - "{{destinations[0].vservers[1]['l-interfaces'][0]['ipv4-addresses'][0]}}" + - "{{destinations[0].vservers[1]['l-interfaces'][1]['ipv4-addresses'][0]}}" + - "{{destinations[0].vservers[1]['l-interfaces'][2]['ipv4-addresses'][0]}}" + when: + - length1 == "4" + - length2 == "3" + + - name: Concatenate sink_addresses + set_fact: + sink_addresses_conc: "{{ sink_addresses | join('\n') }}" + + - name: Get sink IP fom json + shell: printf "{{ sink_addresses_conc }}" | grepcidr -f /opt/config/protected_net_cidr.txt + register: sink_ip + + - debug: var=sink_ip.stdout + + - name: Find interface name + shell: + cat /etc/network/interfaces | grep 255.255.255.0 -B2 | grep iface | awk '{print $2}' + register: interface_name + + - name: Interface name + debug: msg='interface_name {{ interface_name.stdout }}' + + - name: Traffic check if trafficpresence is TRUE + when: trafficpresence == true + block: + - name: Traffic check if trafficpresence is TRUE + raw: | + #!/bin/bash + for i in {1..15} + do + sudo timeout 2 tcpdump -i {{ interface_name.stdout }} dst {{ sink_ip.stdout }} -c 10 > /dev/null 2>&1 + timeout_result=$? + if [ $timeout_result == 0 ] ; then + echo 'traffic present' + break + fi + done + if [ $timeout_result == 124 ] ; then + echo 'traffic absent' + elif [ $timeout_result != 0 ] ; then + echo 'other error' + fi + exit $timeout_result + register: traffic_check + ignore_errors: yes + - debug: + msg: 'traffic absent {{ traffic_check.stdout_lines }} ' + when: traffic_check.rc == 124 + failed_when: traffic_check.rc == 124 + - debug: + msg: 'traffic present {{ traffic_check.stdout_lines }} ' + when: traffic_check.rc == 0 + + - name: Traffic check if trafficpresence is FALSE + when: trafficpresence == false + block: + - name: Traffic check trafficpresence is FALSE + raw: | + #!/bin/bash + for i in {1..3} + do + sudo timeout 10 tcpdump -i {{ interface_name.stdout }} dst {{ sink_ip.stdout }} -c 1 > /dev/null 2>&1 + timeout_result=$? + if [ $timeout_result == 124 ] ; then + echo 'traffic absent' + break + fi + done + if [ $timeout_result == 0 ] ; then + echo 'traffic present' + elif [ $timeout_result != 124 ] ; then + echo 'other error' + fi + exit $timeout_result + register: traffic_check + ignore_errors: yes + - debug: + msg: 'traffic absent {{ traffic_check.stdout_lines }} traffic_check.rc {{ traffic_check.rc }}' + when: traffic_check.rc == 124 + - debug: + msg: 'traffic present {{ traffic_check.stdout_lines }} traffic_check.rc {{ traffic_check.rc }}' + when: traffic_check.rc == 0 + failed_when: traffic_check.rc == 0