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