Ручная установка на каждое устройство нецелесообразна в инфраструктурах с десятками и сотнями хостов. В комплекте с дистрибутивом MaxPatrol EDR поставляется
Ansible-плейбук, который позволяет автоматизировать:
- массовую установку агентов на Windows и Linux;
- удаление агентов;
- переподключение агентов к другому серверу агентов (только для Linux).
Шаг 1. Подготовка окружения AnsibleЗапуск плейбука рекомендуется производить с сервера с ролью Deployer — там уже есть распакованный дистрибутив MaxPatrol EDR.
Требования к серверу Ansible:- Ansible Core ≥ 2.15.13
- Python ≥ 3.9
- pywinrm (для операций с Windows)
- Коллекция ansible.windows (для операций с Windows)
Установка компонентов:sudo apt updatesudo apt upgrade -ysudo apt install python3-pip -ysudo pip3 install ansible-core==2.15.13 --break-system-packagessudo pip3 install pywinrm --break-system-packagesansible-galaxy collection install ansible.windowsПлейбук можно запускать с любого узла, имеющего сетевой доступ к конечным устройствам: по SSH (порт 22) для Linux и WinRM (порт 5985) для Windows. В этом случае из дистрибутива скопируйте на этот узел файл ansible.cfg и каталог ansible с плейбуком sample_agent_install.yml и ролью deploy_agent.
Шаг 2. Подготовка инвентарного файлаСоздайте в каталоге дистрибутива файл agents.yaml. В нём описываются группы устройств, к каким серверам агентов они подключаются и учётные данные для доступа.
Пример структуры файла:
all: children: <Название группы 1>: hosts: <IP-адрес или FQDN узла 1>: <IP-адрес или FQDN узла 2>: <IP-адрес или FQDN узла 3>: vars: vxserver: "<IP-адрес сервера агентов 1>:<Порт>" <Название группы 2>: hosts: <IP-адрес или FQDN узла 4>: <IP-адрес или FQDN узла 5>: <IP-адрес или FQDN узла 6>: vars: vxserver: "<IP-адрес сервера агентов 2>:<Порт>" ansible_connection: winrm ansible_port: 5985 ansible_winrm_transport: basic ansible_winrm_server_cert_validation: ignore В нашем примере инвентарный файл состоит из двух групп (linux и windows), в каждой из которых указано по одному узлу, и учетные данные для подключения к узлам (
ansible_user и
ansible_password) и для повышения привилегий для Linux-устройств (
ansible_become_password):
all: children: linux: hosts: 10.3.0.7: vars: vxserver: "edr.tssolution.local:8443" ansible_user: yoda ansible_password: P@ssw0rd ansible_become_password: P@ssw0rd windows: hosts: 10.3.0.2: vars: vxserver: "edr.tssolution.local:8443" ansible_connection: winrm ansible_port: 5985 ansible_winrm_transport: ntlm ansible_winrm_server_cert_validation: ignore ansible_user: yoda ansible_password: P@ssw0rdБезопасность учётных данных. Если в инфраструктуре используется множество административных учётных записей — не храните их в открытом виде. Используйте встроенную утилиту
Ansible Vault для шифрования чувствительных данных в инвентарном файле.
Требования к конечным устройствам:- Linux: Python ≥ 3.5, сетевой доступ до сервера агентов по порту 8443.
- Windows: настроенная служба WinRM, сетевой доступ до сервера агентов по порту 8443.
Шаг 3. Получение токена доступаПлейбук выгружает дистрибутивы агентов с управляющего сервера — для этого нужен токен доступа. Сгенерируйте его на управляющем сервере:
sudo ./register_client –privileges pt.edr.ui.agents.downloads –client-id deployagentКаталог для запуска: /opt/edr/.