51 lines
1.3 KiB
YAML
Executable File
51 lines
1.3 KiB
YAML
Executable File
---
|
|
- name: Netzwerk Ping Scan und CSV Export
|
|
hosts: localhost
|
|
gather_facts: false
|
|
|
|
vars:
|
|
netzwerke:
|
|
- "192.168.1.0/24"
|
|
- "9.99.0.0/24"
|
|
- "9.99.10.0/24"
|
|
- "9.99.20.0/24"
|
|
- "9.99.30.0/24"
|
|
- "9.99.40.0/24"
|
|
- "9.99.50.0/24"
|
|
- "9.99.60.0/24"
|
|
- "9.99.70.0/24"
|
|
|
|
csv_datei: "/mnt/scripte/NETWORK-SCAN/netzwerk_scan.csv"
|
|
|
|
tasks:
|
|
|
|
- name: Prüfen ob nmap installiert ist
|
|
ansible.builtin.command:
|
|
cmd: which nmap
|
|
register: nmap_check
|
|
failed_when: nmap_check.rc != 0
|
|
|
|
- name: Netzwerkbereiche scannen
|
|
ansible.builtin.command:
|
|
cmd: "nmap -sn {{ item }}"
|
|
loop: "{{ netzwerke }}"
|
|
register: scan_ergebnis
|
|
|
|
- name: Scan-Ergebnisse zusammenführen
|
|
ansible.builtin.set_fact:
|
|
scan_text: "{{ scan_ergebnis.results | map(attribute='stdout') | join('\n') }}"
|
|
|
|
- name: CSV Datei erzeugen
|
|
ansible.builtin.copy:
|
|
dest: "{{ csv_datei }}"
|
|
content: |
|
|
IP-Adresse,Status
|
|
{% for line in scan_text.split('\n') %}
|
|
{% if 'Nmap scan report for' in line %}
|
|
{{ line | regex_replace('.*for ', '') }},ONLINE
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
- name: Ergebnis anzeigen
|
|
ansible.builtin.debug:
|
|
msg: "Scan abgeschlossen. Datei: {{ csv_datei }}" |