Распространение агента
Распространение агента предназначено для доставки агентского ПО на целевые хосты, а также для последующего подключения агента к серверу NRunner. На стороне администратора этот сценарий зависит от корректной публикации артефактов агента, выдачи сертификата и доступности gRPC endpoint сервера из локальной сети, где находятся целевые хосты.
В текущей реализации значения адресов, передаваемых агенту, должны быть явно приведены к адресам, доступным из локальной сети. Если оставить шаблонные или недоступные значения, агент сможет быть установлен, но не сможет получить доступ к серверу NRunner для получения сертификата, регистрации, обмена heartbeat и выполнения агентных задач.
Назначение административных параметров
Параметры распространения агента задаются в compose/main/env.server. Они используются сервером при подготовке данных, которые получает агент во время установки и первичного подключения.
| Переменная | Пример значения | Назначение |
|---|---|---|
AGENT_DEPLOYMENT_ARTIFACTS_DIR | /app/dist | Каталог внутри контейнера nrunner-server, из которого сервер получает агентские артефакты для распространения. |
AGENT_DEPLOYMENT_CA_PATH | /app/tmp/caCert.pem | Путь внутри контейнера к CA-сертификату, который используется агентным контуром при установлении доверенного соединения. |
AGENT_DEPLOYMENT_SERVER_HOST | 192.168.0.2 | IP-адрес или DNS-имя сервера NRunner, доступное целевым хостам в локальной сети. |
AGENT_DEPLOYMENT_CERT_PORT | 4000 | Порт сервиса, через который агент получает сертификат для дальнейшего взаимодействия с сервером. |
AGENT_DEPLOYMENT_SERVER_GRPC | 192.168.0.2:50051 | Полный адрес gRPC endpoint сервера NRunner в формате <host>:<port>, который агент использует после установки. |
AGENT_DEPLOYMENT_HEARTBEAT_TIMEOUT | 5m | Таймаут heartbeat агента. При отсутствии heartbeat в течение этого интервала сервер считает связь с агентом нарушенной. |
Требования к сетевой доступности
Перед запуском распространения агента необходимо проверить, что адреса и порты из env.server доступны не только с сервера NRunner, но и с целевых хостов.
Минимальные требования:
AGENT_DEPLOYMENT_SERVER_HOSTдолжен указывать на реальный IP-адрес или DNS-имя сервера NRunner в локальной сети;- порт
AGENT_DEPLOYMENT_CERT_PORTдолжен быть доступен целевым хостам для получения сертификата; - адрес
AGENT_DEPLOYMENT_SERVER_GRPCдолжен указывать на доступный gRPC endpoint сервера; - firewall, сетевые ACL и правила маршрутизации должны разрешать соединения с целевых хостов на указанные порты.
WARNING
На данном этапе реализации агент не выполняет автоматическую коррекцию недоступных адресов сервера. Если AGENT_DEPLOYMENT_SERVER_HOST или AGENT_DEPLOYMENT_SERVER_GRPC оставлены как localhost, адрес контейнера Docker или другой недоступный для целевого хоста адрес, агент не сможет подключиться к серверу NRunner.
Рекомендуемый пример для локальной сети
Если сервер NRunner доступен в локальной сети по адресу 192.168.20.187, в compose/main/env.server необходимо указать значения, соответствующие фактически опубликованным портам:
AGENT_DEPLOYMENT_ARTIFACTS_DIR=/app/dist
AGENT_DEPLOYMENT_CA_PATH=/app/tmp/caCert.pem
AGENT_DEPLOYMENT_SERVER_HOST=192.168.0.2
AGENT_DEPLOYMENT_CERT_PORT=4000
AGENT_DEPLOYMENT_SERVER_GRPC=192.168.0.2:50051
AGENT_DEPLOYMENT_HEARTBEAT_TIMEOUT=5mПроверка перед эксплуатацией
Перед передачей сценария распространения агента пользователям системы администратор должен выполнить следующие проверки:
- Убедиться, что контейнер
nrunner-agent-exportуспешно подготовил агентские артефакты. - Проверить наличие артефактов агента в каталоге, указанном в
AGENT_DEPLOYMENT_ARTIFACTS_DIR. - Проверить доступность адреса
AGENT_DEPLOYMENT_SERVER_HOSTс целевых хостов. - Проверить доступность порта
AGENT_DEPLOYMENT_CERT_PORTс целевых хостов. - Проверить доступность gRPC endpoint, указанного в
AGENT_DEPLOYMENT_SERVER_GRPC.
После этих проверок пользователи могут создавать задачи типа Распространение агента в пользовательском интерфейсе NRunner.