Skip to content

Распространение агента

Распространение агента предназначено для доставки агентского ПО на целевые хосты, а также для последующего подключения агента к серверу 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_HOST192.168.0.2IP-адрес или DNS-имя сервера NRunner, доступное целевым хостам в локальной сети.
AGENT_DEPLOYMENT_CERT_PORT4000Порт сервиса, через который агент получает сертификат для дальнейшего взаимодействия с сервером.
AGENT_DEPLOYMENT_SERVER_GRPC192.168.0.2:50051Полный адрес gRPC endpoint сервера NRunner в формате <host>:<port>, который агент использует после установки.
AGENT_DEPLOYMENT_HEARTBEAT_TIMEOUT5mТаймаут 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 необходимо указать значения, соответствующие фактически опубликованным портам:

env
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

Проверка перед эксплуатацией

Перед передачей сценария распространения агента пользователям системы администратор должен выполнить следующие проверки:

  1. Убедиться, что контейнер nrunner-agent-export успешно подготовил агентские артефакты.
  2. Проверить наличие артефактов агента в каталоге, указанном в AGENT_DEPLOYMENT_ARTIFACTS_DIR.
  3. Проверить доступность адреса AGENT_DEPLOYMENT_SERVER_HOST с целевых хостов.
  4. Проверить доступность порта AGENT_DEPLOYMENT_CERT_PORT с целевых хостов.
  5. Проверить доступность gRPC endpoint, указанного в AGENT_DEPLOYMENT_SERVER_GRPC.

После этих проверок пользователи могут создавать задачи типа Распространение агента в пользовательском интерфейсе NRunner.

Документация NRunner