Установка Rudder на Debian 10: сервер и агент

Rudder — это бесплатный open-source инструмент непрерывного аудита и управления конфигурацией, предназначенный для автоматизации IT-инфраструктуры. Это веб-ориентированное кроссплатформенное решение, которое упрощает управление и повышает надёжность инфраструктуры. Rudder включает набор правил для применения шаблонов низкоуровневой конфигурации и контроля соответствия. Среди ключевых возможностей — автоматический инвентарь хостов, встроенный редактор политик, удобный веб-интерфейс, поддержка Git как бэкенда, динамические группы, повторно используемые политики и автообновляемые группы.
Ключевые компоненты Rudder:
- Rudder Server: определяет конфигурации и собирает отчёты приложений.
- Агент Rudder: устанавливается на каждом управляемом узле; быстрый — проверка сотни правил занимает порядка секунд; работает на широком наборе устройств.
- Relay Servers: позволяют управлять узлами в разных сетях через единый вход.
Кому полезно
- Системным администраторам и инженерам DevOps, которые автоматизируют контроль конфигураций.
- Командам, которым важно централизованно поддерживать соответствие политик и собирать инвентарь.
Требования
- Два сервера с Debian 10 (один для сервера Rudder, другой для агента или тестовой ноды).
- Пароль root настроен на каждом сервере.
- Доступ из браузера к порту HTTPS сервера Rudder (обычно 443).
Перед началом
Всегда обновите систему перед установкой:
apt-get update -y
apt-get upgrade -yПосле обновления перезагрузите систему, если это требуется, чтобы применить изменения.
Установка Rudder Server
- Установите зависимости:
apt-get install apt-transport-https ca-certificates wget dirmngr gnupg software-properties-common -y- Добавьте публичный ключ репозитория Rudder:
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | apt-key add -- Добавьте репозиторий Rudder. Команда автоматически подставит кодовое имя дистрибутива (lsb_release -cs):
sh -c 'echo "deb http://repository.rudder.io/apt/6.0/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list'- Обновите индексы и установите пакет сервера:
apt-get update -y
apt-get install rudder-server-root -yВо время установки пакет dbconfig-common может предложить настроить базу данных для rsyslog-pgsql. На запрос конфигурации выберите “No” (Нет), чтобы продолжить автоматическую установку по умолчанию и не менять существующие настройки базы вручную.

После успешной установки в выводе вы увидите подсказку, что веб-интерфейс доступен по адресу вида https://<ваш-хост>/rudder и сообщения запуска служб Rudder и Apache.
Пример важных сообщений в логе установки (сокращено):
You can access it via https://debian10/rudder
INFO: Make sure Rudder webapp is started... Done
INFO: Make sure Apache HTTPd is started... Done
Setting up rudder-server-root (6.0.2-debian10) ...
Created symlink /etc/systemd/system/multi-user.target.wants/rudder-server.service → /lib/systemd/system/rudder-server.service.Версии, встречающиеся в примерах: Rudder 6.0.2, CFEngine Core 3.10.2, Debian 10. Эти версии зависят от времени публикации репозитория: перед развёртыванием проверьте актуальные версии в репозитории Rudder.
Доступ к веб-интерфейсу Rudder
Откройте браузер и перейдите по адресу:
https://your-server-ip/rudder/
Вы увидите страницу входа в систему.

По умолчанию используйте логин и пароль admin/admin. Нажмите кнопку SIGN IN, чтобы войти. После входа откроется панель управления Rudder.

Важно: сразу смените пароль администратора. Также настройте список разрешённых сетей в Settings → General → Allowed Networks, чтобы разрешить присоединение узлов из других подсетей.
Установка и настройка Rudder Agent
На каждой управляевой системе (ноды) выполните следующие шаги.
- Добавьте публичный ключ и репозиторий (те же команды, что для сервера):
wget --quiet -O- "https://repository.rudder.io/apt/rudder_apt_key.pub" | apt-key add -
sh -c 'echo "deb http://repository.rudder.io/apt/6.0/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/rudder.list'- Установите агент:
apt-get update -y
apt-get install rudder-agent -y- Укажите IP-адрес Rudder Server в конфигурационном файле агента:
nano /var/rudder/cfengine-community/policy_server.datВ файл добавьте строку с IP-адресом вашего Rudder Server, например:
192.0.2.10Сохраните изменения и перезапустите службу агента:
systemctl restart rudder-agent.serviceПроверьте статус службы:
systemctl status rudder-agent.serviceОжидаемый пример вывода:
? rudder-agent.service - Rudder agent umbrella service
Loaded: loaded (/lib/systemd/system/rudder-agent.service; enabled; vendor preset: enabled)
Active: active (exited) since Fri 2020-01-31 08:00:37 UTC; 8min ago
Docs: man:rudder(8)
https://docs.rudder.io
Main PID: 5177 (code=exited, status=0/SUCCESS)Принятие нового узла в Rudder Server
На сервере Rudder перейдите: Node Management → Accept new nodes. Новый агент появится в списке ожидающих.

Выберите узел и нажмите Accept.

После принятия узел появится в общем списке узлов. Для нового узла обычно отображается 100% несоответствия, так как политики ещё не применялись.

Чтобы отправить инвентарь и запустить проверку политик на ноде, выполните локально на ноде:
rudder agent inventoryПример вывода успешного инвентаря:
Rudder agent 6.0.2-debian10 (CFEngine Core 3.10.2)
Node uuid: 20200203-072526-c88cf5a0-8211-8a30bs00ffa9
Start execution with config [30471213-214835-13b4se13]
M| State Technique Component Key Message
E| compliant Inventory inventory The inventory has been successfully sent
## Summary #####################################################################
=> 1 components in Enforce mode
-> 1 compliant
execution time: 11.27s
################################################################################Быстрая проверка и отладка (playbook)
Шаги при проблемах с подключением агента:
- Убедитесь, что в /var/rudder/cfengine-community/policy_server.dat указан корректный IP/хост сервера Rudder.
- Проверьте сетевые правила (firewall, security groups) на портах 443/80 и других, если вы изменяли конфигурацию веб-сервера.
- Перезапустите службы на ноде: systemctl restart rudder-agent.service, затем systemctl status rudder-agent.service.
- На сервере Rudder проверьте логи: /var/log/rudder/ и логи Apache (обычно /var/log/apache2/).
- Если агент не появляется в списке ожидающих — проверьте, отправляет ли он инвентарь (rudder agent inventory) и нет ли ошибок в выводе.
Короткий runbook при неудачной проверке политик:
- Шаг 1: Проверьте, доступны ли политики в веб-интерфейсе (Policies).
- Шаг 2: На ноде выполните rudder agent inventory и rudder agent run (если доступна команда run).
- Шаг 3: Сравните UUID ноды в выводе агента и в списке узлов на сервере.
- Шаг 4: При необходимости удалите и заново примите узел в веб-интерфейсе.
Ролевые контрольные списки
Administrator (сконфигурировать сервер):
- Установить и обновить Rudder Server.
- Настроить HTTPS и валидный сертификат (не самоподписанный для прод-среды).
- Сменить пароль admin и настроить RBAC.
- Добавить Allowed Networks.
- Настроить резервное копирование конфигураций и Git-бэкенд, если используется.
Operator (добавление узлов):
- Установить Rudder Agent.
- Вставить IP Rudder Server в policy_server.dat.
- Перезапустить агент и выполнить rudder agent inventory.
- Принять узел через Node Management и запустить первичную проверку.
Developer/DevOps (работа с политиками):
- Создавать политики в редакторе политик Rudder.
- Использовать Git бэкенд для версионирования.
- Тестировать политики на тестовой группе узлов перед применением на проде.
Критерии приёмки
- Веб-интерфейс Rudder доступен по HTTPS и отвечает.
- Агенты подключены и видны в Node Management.
- Выполнен рабочий инвентарь rudder agent inventory без ошибок.
- Минимум одна политика применена в Enforce режиме и её статус — compliant или соответствует ожиданиям.
Тестовые сценарии и контроль качества
- Тест 1: Установка сервера и вход в веб-интерфейс с admin/admin → пройти вход и сменить пароль.
- Тест 2: Установка агента на тестовой машине → проверить, что node появляется в Accept new nodes.
- Тест 3: Принятие узла и запуск rudder agent inventory → проверить, что инвентарь отправлен.
- Тест 4: Создать простую политику, применить в Enforce → убедиться, что состояние nod’а меняется на compliant.
Рекомендации по безопасности
- Не используйте admin/admin в проде. Сразу смените пароль и настройте двухфакторную аутентификацию, если Rudder интегрирован с LDAP/SSO.
- Настройте HTTPS с валидным сертификатом от доверенного центра сертификации.
- Ограничьте доступ к интерфейсу Rudder по IP (Allowed Networks) и настройте VPN/ашут-канал для удалённых узлов.
- Регулярно обновляйте Rudder и операционную систему, чтобы закрывать уязвимости.
Миграция и совместимость
- Репозиторий в инструкциях ориентирован на ветку 6.0. Перед миграцией на новую версию проверьте совместимость политик и обратитесь к официальной документации Rudder.
- Если у вас есть Relay Servers, спланируйте их развёртывание до массовой регистрации клиентов, чтобы снизить нагрузку на главный сервер.
Когда этот подход не работает
- Если инфраструктура изолирована без доступа к внешним репозиториям — вам потребуется локальный mirror репозитория Rudder.
- Для очень мелких установок (1–2 хоста) полное развёртывание Rudder может быть избыточным; рассмотрите лёгкие конфигурационные инструменты в зависимости от задач.
Короткая методология при подключении новых узлов
- Подготовить ноду (обновления, сеть, root доступ).
- Установить агент по инструкциям и прописать IP сервера.
- Перезапустить агент и отправить инвентарь.
- Принять узел в веб-интерфейсе и назначить ему предварительные политики.
- Наблюдать статус и корректировать политики для достижения compliance.
Минимальные показатели и факты
- Примерная версия в примерах: Rudder 6.0.2, CFEngine Core 3.10.2.
- Debian 10 (Buster) — целевая платформа примера.
- Команды управления службой: systemctl restart/status rudder-agent.service.
Цитата эксперта: “Управление конфигурацией — это не только автоматизация, но и процесс контроля соответствия; Rudder упрощает оба аспекта благодаря комбинации политики и инвентаризации.”
Диаграмма принятия узла (Mermaid)
flowchart TD
A[Установка агента] --> B{policy_server.dat корректен?}
B -- Да --> C[Перезапуск агента]
B -- Нет --> D[Исправить IP и повторить]
C --> E[Отправка инвентаря]
E --> F{Нода появилась в Rudder?}
F -- Да --> G[Accept new nodes]
F -- Нет --> H[Проверить логи агента и сеть]
G --> I[Назначить политики и наблюдать статус]Заключение
В статье показаны все необходимые шаги для развёртывания Rudder Server и Rudder Agent на Debian 10: от подготовки системы и добавления репозитория до приёма узла и отправки инвентаря. Следуйте чек-листам и runbook’у при обнаружении проблем, обязательно обеспечьте безопасность доступа и используйте Git-бэкенд для версионирования политик. Если у вас остались вопросы по настройке конкретных политик или интеграции с LDAP/CI — задайте их, и я помогу с деталями.
Important: Перед развёртыванием в проде протестируйте политики на изолированной группе узлов.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента