Подключение AI-агента Hermes к тестовым зонам: инструкция по интеграции
Учебная глава для студентов ИТ-направлений колледжа
Версия: 2.0 (учебная) Уровень: 1–2 курс колледжа, направления «Сетевые технологии», «Системное администрирование», «DevOps» Предварительная подготовка: школьная информатика, базовое понимание компьютеров и сетей
1. Учебная цель статьи
После изучения этой главы вы:
- поймёте, как связаны виртуализация, видеокарты (GPU), языковые модели (LLM), VPN-туннели и сканирование сети в одной инженерной задаче;
- узнаете, зачем инженеру локальный AI-агент, работающий на собственной видеокарте;
- разберётесь, почему языковые модели выгоднее запускать на GPU, а не на процессоре;
- увидите, как VPN-туннель открывает доступ к изолированным тестовым зонам;
- научитесь использовать программу nmap для изучения сетевой инфраструктуры;
- проследите, как из разрозненных компонентов собирается единая инженерная среда — фундамент для будущих систем автоматического анализа IT-инфраструктуры (AIOps).
2. Практическая ситуация
Представьте: вы — младший DevOps-инженер в лаборатории. Перед вами физический сервер с видеокартой RTX 5080, установлен гипервизор Proxmox. Руководитель ставит задачу:
«Подготовьте лабораторную среду, в которой AI-ассистент сможет помогать администратору анализировать серверы, подключаться к тестовым сетям через VPN, читать логи и выполнять команды. Среда должна работать локально (без интернета для рутинных задач), но при необходимости обращаться к облачной мощной модели».
Именно эту задачу мы решаем в данной главе — шаг за шагом, с объяснением каждого действия и каждой ошибки, которая встретилась на пути.
3. Общая идея проекта простыми словами
Вся система строится как цепочка:
Физический сервер → Proxmox → Виртуальная машина Ubuntu → Проброс GPU → Ollama и локальная LLM → Hermes Agent → VPN-туннели → Тестовые зоны → Сканирование инфраструктуры → Автоматизация и AIOps
Простыми словами: мы берём мощный компьютер, запускаем на нём виртуальную машину, «отдаём» ей видеокарту, устанавливаем локальный искусственный интеллект, подключаем AI-агента Hermes, прокладываем два защищённых туннеля в тестовые лабораторные сети и с помощью агента изучаем, какие серверы там работают. Всё это делается для того, чтобы в будущем автоматизировать управление целыми кластерами серверов.
4. Что нужно знать перед чтением
5. Архитектура решения
Наша система состоит из четырёх уровней:
6. Этап 1. Создание виртуальной машины с видеокартой
6.1. Зачем нужна виртуальная машина?
Простыми словами: виртуальная машина — это «компьютер внутри компьютера». Представьте, что вы запускаете приложение, которое ведёт себя как отдельный компьютер: у него своя операционная система, свои программы, свои настройки. При этом, если внутри ВМ что-то сломается, основной компьютер (хост) продолжит работать.
Почему это важно: в инженерной практике виртуальные машины незаменимы. Они позволяют:
- тестировать новое ПО без риска повредить основную систему;
- изолировать проекты друг от друга;
- быстро создавать копии и резервные копии;
- экономить на оборудовании (один сервер — десятки ВМ).
6.2. Зачем видеокарта для искусственного интеллекта?
Простыми словами: центральный процессор (CPU) — это универсал, который умеет всё понемногу. Видеокарта (GPU) — это узкий специалист, который умеет делать тысячи одинаковых математических операций одновременно. Языковые модели (LLM) как раз состоят из миллионов таких операций, поэтому на GPU они работают в 10–50 раз быстрее.
Сравнение:
6.3. Что такое GPU Passthrough?
Простыми словами: Proxmox (хост-система) при запуске «захватывает» все устройства, включая видеокарту. Но нам нужно отдать карту виртуальной машине. Для этого используется механизм PCI Passthrough (проброс устройства).
Как это работает:
- В BIOS материнской платы включается VT-d (Intel) — технология, разрешающая проброс.
- Загружается специальный драйвер VFIO-PCI, который «забирает» видеокарту у хоста и резервирует для ВМ.
- При создании ВМ указывается PCI-адрес карты — Proxmox передаёт её внутрь.
Технология IOMMU (Input-Output Memory Management Unit) группирует устройства и позволяет безопасно передавать их в ВМ. Наша видеокарта попала в группу 14 — изолированную от других устройств, что правильно.
6.4. Практические команды
Шаг 1: Изоляция GPU от хоста
Шаг 2: Создание ВМ
6.5. Установка драйвера NVIDIA внутри ВМ
Типичная ошибка: nvidia-smi сообщает «No devices were found» или «requires use of the NVIDIA open kernel modules».
Почему ошибка: видеокарта RTX 5080 относится к архитектуре Blackwell. Она работает только с открытыми модулями ядра NVIDIA (nvidia-open). Проприетарный драйвер nvidia-driver-575 выдаёт ошибку «RmInitAdapter failed! (0x22:0x56:884)».
Правильное решение:
Результат:
Инженерная логика: когда nvidia-smi не видит устройство, проверьте: включён ли IOMMU в BIOS? Правильно ли указан PCI-ID в vfio.conf? Не загружен ли nouveau на хосте? Соответствует ли версия драйвера архитектуре GPU? Для RTX 5080 ответ на последний вопрос — «только nvidia-open 610+».
7. Этап 2. Локальная LLM и Hermes Agent
7.1. Что такое LLM и зачем запускать её локально
Простыми словами: Большая Языковая Модель (Large Language Model, LLM) — это нейросеть, которая понимает человеческий язык и может отвечать на вопросы, писать код, анализировать тексты. Представьте очень начитанного помощника, который прочитал миллионы книг и статей, но «живёт» на вашем компьютере.
Почему запускать локально?
7.2. Ollama — простой способ запустить LLM
Ollama — программа, которая умеет скачивать и запускать языковые модели. Она работает как сервер: вы отправляете запрос на localhost:11434, а она возвращает ответ модели.
7.3. Hermes Agent — AI-ассистент с памятью и инструментами
Простыми словами: Hermes Agent — это программа, которая «оборачивает» языковую модель и даёт ей возможность выполнять реальные действия: читать файлы, запускать команды в терминале, искать информацию в интернете, запоминать факты между сессиями. В отличие от обычного чат-бота, агент может самостоятельно решать многошаговые задачи.
Ключевые возможности:
Установка и настройка:
Типичная ошибка: Hermes отказывается запускаться с сообщением «context window below minimum 64,000 tokens». Причина: модель отдаёт контекст 32K, а агенту нужно 64K. Решение: hermes config set model.ollama_num_ctx 65536 + hermes config set model.context_length 65536
7.4. Результаты бенчмарка локальной модели
7.5. Две модели: локальная + облачная
Гибридный подход — ключевая идея архитектуры:
Рис. 3: Двухуровневая модель: локальная + облачная LLM
8. Этап 3. Skills — обучение агента
8.1. Что такое skill?
Простыми словами: Skill (навык) — это «шпаргалка» или «инструкция» для агента, которую он читает перед выполнением задачи. Если агент постоянно делает одну и ту же ошибку (например, использует китайскую точку с запятой ; вместо обычной ; в bash-скриптах), можно создать навык с правилами — и в следующий раз агент будет их соблюдать.
8.2. Пример: навык для bash-скриптов
Проверьте себя: агент написал скрипт для анализа логов. Скрипт содержит ; вместо ;. Без навыка агент повторяет ошибку. С навыком — исправляет. Почему навык не гарантирует отсутствие ошибок? (Ответ: 14B-модель не всегда «вспоминает» все правила — для критичного кода лучше использовать облачную модель).
9. Этап 4. VPN-туннели в тестовые зоны
9.1. Зачем нужен VPN и тестовые зоны
Простыми словами: VPN (Virtual Private Network) — это «защищённый кабель через интернет». Представьте, что вы протянули сетевой провод из вашего офиса в дата-центр на другом конце города. Весь трафик по этому проводу зашифрован, и никто не может его перехватить.
Тестовая зона — изолированная лабораторная сеть, куда нет доступа из обычного интернета. Там стоят серверы для экспериментов, тестирования и обучения. Подключение к ним — только через VPN.
Почему это важно: в реальной работе системный администратор редко имеет физический доступ к серверам. Большинство операций выполняются удалённо через VPN.
9.2. Две зоны — два подключения
В нашем проекте две тестовые зоны:
9.3. Подключение к Зоне 2: стандартный путь
Зона 2 подключается через openconnect — стандартный клиент для Cisco AnyConnect:
9.4. Подключение к Зоне 1: битва с устаревшим оборудованием
Инженерная логика: если современный клиент не может подключиться к старому серверу — проблема не обязательно в пароле. Часто проблема в несовместимости протоколов и криптографических библиотек.
Зона 1 использует Cisco ASA 815 — оборудование примерно 2015 года выпуска. Версия протокола AnyConnect 4.2 использует криптографию, которая больше не поддерживается современными библиотеками OpenSSL (версия 3.x в Ubuntu 24.04).
Что мы пробовали (безуспешно):
- Понижение минимальной версии TLS в конфигурации OpenSSL
- Прокси-туннелирование через stunnel
- Разные протоколы (IPSec, Fortinet)
- Сборку openconnect из исходников
Решение: Docker-контейнер на Ubuntu 22.04 (где OpenSSL ещё поддерживает старые шифры) + expect-скрипт для автоматизации интерактивного входа.
Почему Docker? Docker позволяет запустить программу в изолированном окружении со старой версией Ubuntu, не затрагивая основную систему. Это распространённый инженерный приём для решения проблем совместимости.
Почему expect? OpenConnect требует интерактивного ввода пароля. Expect — программа, которая имитирует действия человека в терминале: ждёт появления строки «Password:» и автоматически отправляет пароль.
9.5. Два VPN одновременно
Обе зоны работают параллельно:
Маршруты добавляются автоматически. Конфликтов нет, потому что сети не пересекаются.
Рис. 4: Два VPN-туннеля в изолированные тестовые зоны
9.6. Проверка маршрутов после подключения
Типичная ошибка: VPN подключился, но сети не пингуются. Причины: маршруты конфликтуют (одна сеть доступна через оба туннеля), Docker-контейнер не пробросил маршруты на хост, или удалённый хост фильтрует ICMP-пакеты.
10. Этап 5. Сканирование инфраструктуры через nmap
10.1. Что такое nmap и зачем он нужен
Простыми словами: nmap — это программа-«разведчик» для компьютерных сетей. Она позволяет узнать, какие компьютеры включены в заданной сети и какие сервисы (программы) на них запущены.
Два режима сканирования:
10.2. Что такое порт
Простыми словами: IP-адрес — это «адрес дома». А порт — это «номер квартиры» в этом доме. Каждая сетевая служба (веб-сервер, SSH, база данных) «слушает» свой порт:
ПортСлужбаЧто означает, если порт открыт22/tcpSSHМожно подключиться к серверу удалённо80/tcpHTTPНа сервере работает веб-сайт443/tcpHTTPSЗащищённый веб-сайт3389/tcpRDPУдалённый рабочий стол (Windows)
Этическое предупреждение: сканировать можно только те сети, на которые у вас есть явное разрешение. В статье рассматривается учебная и тестовая инфраструктура. Сканирование чужих сетей без разрешения — нарушение закона.
10.3. Результаты сканирования
Мы просканировали подсети обеих тестовых зон. Результаты:
Что нашли и что это может означать:
10.4. Обнаружение гипервизоров
В зоне 2 обнаружены два хоста с тремя сетевыми интерфейсами каждый — признак гипервизоров (серверов для запуска виртуальных машин):
Три интерфейса на одном сервере — типовая архитектура для гипервизора:
- один для управления,
- один для трафика виртуальных машин,
- один для системы хранения данных.
11. Типовые ошибки и диагностика
12. Что получилось в результате
Мы собрали рабочую лабораторную среду, в которой AI-агент может:
- использовать локальную LLM (qwen3:14b) на RTX 5080 для быстрых, приватных и бесплатных ответов;
- переключаться на облачную DeepSeek v4 Pro для сложных задач;
- сохранять навыки (skills) и переиспользовать их;
- подключаться к двум изолированным тестовым зонам через VPN;
- сканировать инфраструктуру через nmap прямо из командной строки агента.
Ключевые цифры:
13. Практические задания
- Объясните своими словами, зачем нужен гипервизор Proxmox в этой задаче.
- Нарисуйте схему (от руки или в любом редакторе), показывающую путь данных: пользователь → Hermes Agent → Ollama → локальная LLM → GPU → ответ.
- Сравните локальную и облачную LLM по трём критериям на ваш выбор. В каком случае вы бы выбрали облачную модель, а в каком — локальную?
- Объясните, что делает VPN-интерфейс tun0. Почему он называется «виртуальным»?
- Чем отличается nmap -sn от nmap -sS? Какой из них вы бы использовали для первичной разведки сети и почему?
- Почему nmap не обнаружил открытых портов на большинстве хостов в подсети xxx.100.10.0/24? Предложите минимум две возможные причины.
- Инженерная задача: у вас есть Docker-контейнер с openconnect, который успешно подключился к VPN, но маршруты не появились на хосте. Назовите три возможные причины и способы их проверки.
- Этический вопрос: ваш коллега предлагает просканировать сеть соседнего отдела «просто из любопытства». Объясните, почему это недопустимо, даже если технически возможно.
- Творческое задание: придумайте свой навык (skill) для Hermes Agent, который помог бы системному администратору. Опишите, какие правила он должен содержать.
- Проектное мышление: эта система создавалась как фундамент для AIOps-платформы. Предложите два сценария, в которых AI-агент мог бы автоматически обнаружить и диагностировать проблему в тестовой зоне.
14. Контрольные вопросы
- Что такое гипервизор? Чем Proxmox отличается от VirtualBox?
- Почему языковые модели работают быстрее на GPU, чем на CPU?
- Что означает «проброс GPU» (GPU Passthrough)? Зачем нужен драйвер VFIO?
- Объясните разницу между Ollama и Hermes Agent. Может ли Hermes работать без Ollama?
- Что такое «токен» в контексте языковых моделей? Почему скорость измеряется в токенах/с?
- Что означает «холодный старт» модели? Почему TTFT на холодном старте выше?
- Зачем нужен флаг set -euo pipefail в начале bash-скрипта?
- Что такое VPN-туннель? Почему маршруты важны после подключения VPN?
- Чем опасно сканирование чужих сетей без разрешения?
- В чём преимущество гибридного подхода (локальная + облачная LLM)?
- Как Docker помог решить проблему совместимости с Cisco ASA 815?
- Что такое expect и зачем он нужен при автоматизации?
- Что означает «порт открыт» в выводе nmap? Приведите пример.
- Почему массовая фильтрация портов не обязательно означает, что хост выключен?
15. Дорожная карта проекта
Рис. 5: Дорожная карта — от текущего этапа к AIOps
16. Заключение
В этой главе мы прошли путь от «голого» физического сервера до работающей лабораторной среды с AI-ассистентом, который видит тестовую инфраструктуру и может помогать инженеру. На этом пути мы:
- разобрались с технологией GPU Passthrough и поняли, почему видеокарта так важна для ИИ;
- запустили локальную языковую модель и сравнили её с облачной;
- настроили AI-агента Hermes с навыками, памятью и инструментами;
- проложили два VPN-туннеля в тестовые зоны, включая решение проблемы с 10-летним оборудованием;
- провели разведку инфраструктуры и обнаружили гипервизоры для дальнейшей работы.
Главная ценность этого проекта не в том, что «всё заработало». Ценность в том, что вы увидели реальный инженерный путь:
Постановка задачи → сборка среды → ошибки → диагностика → решение → результат → развитие.
Этот проект объединяет несколько важных IT-направлений — виртуализацию, сети, искусственный интеллект, безопасность и автоматизацию — и служит фундаментом для дальнейшего развития в сторону AIOps.
Приложение А. Полный список команд этапа
Приложение Б. Dockerfile для Cisco ASA 815
Запуск контейнера: