Обновить playbooks/scan_inventory.yml
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
---
|
||||
- name: "Сканирование сети (Rootless Mode - Fix Regex)"
|
||||
- name: "Сканирование сети (Final Fix - Regex)"
|
||||
hosts: localhost
|
||||
connection: local
|
||||
gather_facts: no
|
||||
@@ -63,27 +63,26 @@
|
||||
changed_when: false
|
||||
|
||||
# ----------------------------------------------------------------
|
||||
# ШАГ 3: Классификация (ИСПРАВЛЕНО)
|
||||
# ШАГ 3: Классификация (ИСПРАВЛЕНО НА REGEX)
|
||||
# ----------------------------------------------------------------
|
||||
- name: Анализ результатов (Debug Mode)
|
||||
- name: Анализ результатов
|
||||
set_fact:
|
||||
classified_hosts: "{{ classified_hosts | default([]) + [ host_data ] }}"
|
||||
vars:
|
||||
out: "{{ item.stdout }}"
|
||||
ip: "{{ item.item }}"
|
||||
|
||||
# БЕЗОПАСНЫЙ ПОИСК ИМЕНИ:
|
||||
# Используем regex_findall вместо search.
|
||||
# Если ничего не найдено, вернется пустой список [], и default('') сработает корректно.
|
||||
# Поиск имени (безопасный метод)
|
||||
smb_matches: "{{ out | regex_findall('Computer name: ([\\w-]+)') }}"
|
||||
smb_name: "{{ smb_matches | first | default('') }}"
|
||||
|
||||
# ЛОГИКА ОПРЕДЕЛЕНИЯ ТИПА
|
||||
# ЛОГИКА ОПРЕДЕЛЕНИЯ ТИПА (Используем regex_search для игнорирования лишних пробелов)
|
||||
# \s+ означает "один или больше пробелов"
|
||||
detected_type: >-
|
||||
{% if '445/tcp open' in out %}windows
|
||||
{% elif '8291/tcp open' in out %}mikrotik
|
||||
{% elif '9100/tcp open' in out %}printer
|
||||
{% elif '22/tcp open' in out %}linux
|
||||
{% if out | regex_search('445/tcp\s+open') %}windows
|
||||
{% elif out | regex_search('8291/tcp\s+open') %}mikrotik
|
||||
{% elif out | regex_search('9100/tcp\s+open') %}printer
|
||||
{% elif out | regex_search('22/tcp\s+open') %}linux
|
||||
{% else %}other{% endif %}
|
||||
|
||||
# Формируем имя
|
||||
@@ -96,7 +95,7 @@
|
||||
type: "{{ detected_type }}"
|
||||
name: "{{ final_name }}"
|
||||
loop: "{{ scan_results.results }}"
|
||||
# no_log: true <--- УБРАЛИ, ЧТОБЫ ВИДЕТЬ ОШИБКУ, ЕСЛИ ОНА БУДЕТ
|
||||
no_log: true
|
||||
|
||||
# ----------------------------------------------------------------
|
||||
# ШАГ 4: Группировка
|
||||
@@ -108,6 +107,15 @@
|
||||
list_tik: "{{ classified_hosts | selectattr('type', 'equalto', 'mikrotik') | list }}"
|
||||
list_prn: "{{ classified_hosts | selectattr('type', 'equalto', 'printer') | list }}"
|
||||
|
||||
- name: СТАТИСТИКА (Что нашли)
|
||||
debug:
|
||||
msg:
|
||||
- "Всего живых IP: {{ active_ips | length }}"
|
||||
- "Windows: {{ list_win | length }}"
|
||||
- "MikroTik: {{ list_tik | length }}"
|
||||
- "Linux: {{ list_lin | length }}"
|
||||
- "Printers: {{ list_prn | length }}"
|
||||
|
||||
# ----------------------------------------------------------------
|
||||
# ШАГ 5: Отправка Windows
|
||||
# ----------------------------------------------------------------
|
||||
@@ -186,7 +194,7 @@
|
||||
when: list_tik | length > 0
|
||||
|
||||
# ----------------------------------------------------------------
|
||||
# ШАГ 7: Отправка Принтеров
|
||||
# ШАГ 7: Отправка Принтеров (если нужны)
|
||||
# ----------------------------------------------------------------
|
||||
- block:
|
||||
- name: Генерация инвентаря Принтеров
|
||||
|
||||
Reference in New Issue
Block a user