From 92eb3ba50d74c881239559ee5a1b4569914a006c Mon Sep 17 00:00:00 2001 From: autodistries <automatedactions@protonmail.com> Date: Wed, 11 Sep 2024 17:26:44 +0200 Subject: [PATCH] run multiple sniffer.py at once on a single node device --- ansible/tasks/playbook_scapy-sniffer_GPS.yml | 37 +++++++---- config/test.yml | 70 +++++++++++++++++++- 2 files changed, 90 insertions(+), 17 deletions(-) diff --git a/ansible/tasks/playbook_scapy-sniffer_GPS.yml b/ansible/tasks/playbook_scapy-sniffer_GPS.yml index a5fa7ad..275d07e 100644 --- a/ansible/tasks/playbook_scapy-sniffer_GPS.yml +++ b/ansible/tasks/playbook_scapy-sniffer_GPS.yml @@ -1,13 +1,13 @@ - hosts: sniffers - user: gta #become: yes #become_user: root vars_prompt: - # - name: _file - # prompt: Enter the folder name to save traces in the sniffer - # private: no + - name: _workdir + prompt: Enter the folder name to save traces in the sniffer + default: "/home/tribe/mitik-sens-mod/" + private: no # This will always be the mitik-sens-mod folder # - name: _location @@ -57,19 +57,28 @@ - set_fact: _interfaces: "{{ _interfaces_csv.split(',') }}" _channels: "{{ _channels_csv.split(',') }}" + delegate_to: 127.0.0.1 + run_once: True - - name: Create Folder - file: - path: "{{ _file }}" - owner: gta - group: gta - #mode: 0755 - state: directory + - name: Double-check input variables + assert: + that: "{{ _interfaces|length }} == _channels" + delegate_to: 127.0.0.1 + run_once: True - - name: start scapy-sniffer + # - name: Create Folder + # file: + # path: "{{ _workdir }}" + # owner: tribe + # group: tribe + # #mode: 0755 + # state: directory + + - name: start scapy-sniffer cron: - name: "ansible_scapy-sniffer {{ _hour }} {{ _minute }} {{ _channel }}" + name: "ansible_scapy-sniffer {{ _hour }} {{ _minute }} {{ item }}" minute: "{{ _minute }}" hour: "{{ _hour }}" - job: "sudo python3 /home/gta/sniffers/scapy-sniffer/sniffer_GPS.py -F {{ _file }} -L {{ _location }} -i {{ _interface }} -c {{ _channel }} -f {{ _filter }} -e {{ _hash_function}} -p {{ _hash_pattern }} -t {{ _timeout }}" + job: "cd {{_workdir}}; sudo python ./sniffer.py -s {{_timeout}} -i {{item}} -c {{}} -sf {{_filter}} -p {{_hash_pattern}} -e {{_hash_function}}" + loop: "{{_interfaces}}" diff --git a/config/test.yml b/config/test.yml index b2564bc..36e885b 100644 --- a/config/test.yml +++ b/config/test.yml @@ -1,8 +1,72 @@ # /etc/ansible/broadcast.yml --- - name: Echoed stuff - hosts: all + hosts: ss1 + + + vars_prompt: + + # - name: _file + # prompt: Enter the folder name to save traces in the sniffer + # private: no + # This will always be the mitik-sens-mod folder + + # - name: _location + # prompt: Enter the location of the experiments + # private: no + # I don't know what this parameter is (was) for + + # - name: _hour + # prompt: Enter an hour to start the experiment + # default: 17 + # private: no + # + # - name: _minute + # prompt: Enter minutes to start the experiment + # private: no + + - name: _interfaces_csv + prompt: Please specify the interface(s) separated by commas (e.g. wlan0,wlan7). For default just press enter + default: 'wlan5,wlan6' + private: no + + - name: _channels_csv + prompt: Please specify the starting channels (integer between 1-11 separated by commas, default=system). For default just press enter + default: "1,8" + private: no + tasks: - - name: say things to tty1 - ansible.builtin.shell: "cd ~;eval $(ssh-agent -s); ssh-add .ssh/gitlab_rsa ; git clone git@gitlab.inria.fr:gfarhiri/mitik-sens-mod.git" + + - set_fact: + _interfaces: "{{ _interfaces_csv.split(',') }}" + _channels: "{{ _channels_csv.split(',') }}" + delegate_to: 127.0.0.1 + run_once: True + + + - name: Double-check input variables + assert: + that: "{{ _interfaces|length }} == {{ _channels|length }}" + delegate_to: 127.0.0.1 + run_once: True + + + - debug: + msg: "{{ item }}" + loop: "{{_interfaces}}" + delegate_to: 127.0.0.1 + run_once: True + + - debug: + msg: "{{ item }}" + loop: "{{_channels}}" + delegate_to: 127.0.0.1 + run_once: True + + - shell: "echo {{ item }} {{_channels[lp_idx]}} !! | sudo tee /dev/tty1 " + loop: "{{_interfaces}}" + loop_control: + index_var: lp_idx + + -- GitLab