Обновить playbooks/scan_inventory.yml

This commit is contained in:
2025-12-10 11:04:48 +00:00
parent f3a9275b29
commit 0f80c6d9ca

View File

@@ -8,35 +8,30 @@
# --- SEMAPHORE API ---
semaphore_url: "http://192.168.0.198:9999"
semaphore_project_id: 1
#semaphore_key_id: 7
semaphore_api_token: "9ojexqiwt1xkemig7j1bd1pe-frh7hkre4reryk2occ="
inventory_name: "Smart Network Scan"
# --- ID КЛЮЧЕЙ ДЛЯ БУДУЩИХ ПОДКЛЮЧЕНИЙ ---
# Даже если мы нашли устройство по SNMP, для управления им позже нужен ключ.
# Если ключей нет, можно указать ID "пустого" ключа или любого существующего.
key_windows: 7
key_linux: 8
key_mikrotik: 9
key_printers: 7 # Можно тот же, принтерами обычно ansible не управляет
key_printers: 7
# --- СЕТИ ---
subnets: [
"192.168.0.0/24"
"192.168.0.0/23"
"192.168.2.0/24"
"192.168.3.0/24"
"172.19.8.0/24"
"172.19.9.0/24"
"172.19.10.0/24"
"172.19.24.0/24"
"172.19.26.0/24"
"172.19.40.0/24"
"172.19.42.0/24"
"172.19.56.0/24"
"172.19.58.0/24"
"172.19.90.0/24"
]
# --- СЕТИ (ИСПРАВЛЕНО: Правильный формат списка YAML) ---
subnets:
- "192.168.0.0/24"
- "192.168.0.0/23"
- "192.168.2.0/24"
- "192.168.3.0/24"
- "172.19.8.0/24"
- "172.19.9.0/24"
- "172.19.10.0/24"
- "172.19.24.0/24"
- "172.19.26.0/24"
- "172.19.40.0/24"
- "172.19.42.0/24"
- "172.19.56.0/24"
- "172.19.58.0/24"
- "172.19.90.0/24"
# SNMP Community (пароль для чтения)
snmp_community: "public"
@@ -58,8 +53,6 @@
# ----------------------------------------------------------------
# ШАГ 2: Опрос через SNMP + Проверка портов
# -sU -p 161: Сканируем UDP порт SNMP
# --script snmp-sysdescr: Скрипт, который тянет описание ОС
# ----------------------------------------------------------------
- name: SNMP Discovery
shell: |
@@ -81,11 +74,10 @@
out: "{{ item.stdout }}"
ip: "{{ item.item }}"
# Пытаемся вытащить строку sysDescr из вывода Nmap
# Пример: "SNMPv2-MIB::sysDescr.0: RouterOS rb750..."
# Пытаемся вытащить строку sysDescr
snmp_desc: "{{ out | regex_search('sysDescr\\.0: ([^\\n]+)', '\\1') | first | default('') }}"
# Определяем тип на основе SNMP ответа (или открытых портов, если SNMP молчит)
# Определяем тип
detected_type: >-
{% if 'Windows' in snmp_desc or '445/tcp open' in out %}windows
{% elif 'RouterOS' in snmp_desc or 'MikroTik' in snmp_desc or '8291/tcp open' in out %}mikrotik
@@ -93,8 +85,6 @@
{% elif 'JetDirect' in snmp_desc or 'LaserJet' in snmp_desc or 'Samsung' in snmp_desc or 'Kyocera' in snmp_desc or '9100/tcp open' in out %}printer
{% else %}other{% endif %}
# Формируем имя: Либо берем из SNMP, либо генерируем host_IP
# Часто в SNMP имя есть в sysName, но для упрощения оставим генерацию или возьмем первое слово из описания
host_data:
ip: "{{ ip }}"
type: "{{ detected_type }}"
@@ -185,7 +175,6 @@
# ----------------------------------------------------------------
# ШАГ 7: Отправка в Semaphore (Принтеры)
# Принтеры полезно видеть, но ansible ими обычно не управляет
# ----------------------------------------------------------------
- block:
- set_fact: