41 lines
1.3 KiB
YAML
41 lines
1.3 KiB
YAML
|
# Ansible Playbook
|
||
|
- hosts: all
|
||
|
|
||
|
vars:
|
||
|
cap_file: packet_capture_{{ ansible_hostname }}_{{ ansible_date_time['epoch'] }}.pcap
|
||
|
|
||
|
|
||
|
vars_prompt:
|
||
|
- name: dur_in_sec
|
||
|
prompt: Please specify the runtime duration in sec
|
||
|
private: no
|
||
|
|
||
|
- name: interface
|
||
|
prompt: Please specify the interface (e.g. eth0)
|
||
|
private: no
|
||
|
|
||
|
- name: dest_folder
|
||
|
prompt: Please specify the destination folder (location on remote server e.g. /var/tmp/)
|
||
|
private: no
|
||
|
|
||
|
- name: filter
|
||
|
prompt: Please specify the tcpdump filter (e.g. host 10.10.10.10). For no filter just press enter
|
||
|
default: ""
|
||
|
private: no
|
||
|
|
||
|
|
||
|
tasks:
|
||
|
- name: start tcpdump
|
||
|
command: sudo /usr/sbin/tcpdump -G {{ dur_in_sec }} -W 1 -i {{ interface }} -s 0 -w {{ dest_folder}}/{{ cap_file }} {{ filter }}
|
||
|
|
||
|
- name: compress capture file
|
||
|
command: sudo gzip {{cap_file}} chdir={{ dest_folder}}/
|
||
|
|
||
|
- name: Change file permission
|
||
|
command: sudo chmod 755 {{ dest_folder}}/{{cap_file}}.gz
|
||
|
|
||
|
- name: copy logs to /export/tmp/ansible/
|
||
|
fetch: src={{ dest_folder}}/{{cap_file}}.gz dest=/export/tmp/ansible/ flat=yes
|
||
|
|
||
|
- name: remove files from remote server
|
||
|
command: sudo rm -r {{ dest_folder}}/{{cap_file}}.gz
|