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