Установка и настройка Rancher на Ubuntu 16.04
Rancher — платформа управления контейнерами. В этой инструкции показано, как установить Docker, запустить Rancher Server в контейнере, включить локальную авторизацию, подключить хост-агент и развернуть приложение из каталога (пример: Ghost). Приведены чеклисты, методика тестирования и рекомендации по отладке.
Преимущества и назначение
Rancher упрощает создание и управление Docker/Kubernetes средами. Он предоставляет сетевые сервисы, балансировку нагрузки и управление томами. Этот гид ориентирован на установку Rancher 1.x в контейнере на Ubuntu 16.04 и добавление удалённого хоста с Docker.
Пререквизиты
- Сервер Ubuntu 16.04 для Rancher Server — hakase-labs — 192.168.33.10
- Сервер Ubuntu 16.04 для агента — rancher-host01 — 192.168.33.11
- Привилегии root или sudo на обоих серверах
- Подключение по сети между серверами
Важно: Ubuntu 16.04 давно использовалась в продакшн; при планировании новых установок рассмотрите более свежие релизы Ubuntu и Rancher 2.x.
Что мы сделаем
- Установим Docker на Ubuntu 16.04
- Запустим Rancher Server в контейнере
- Включим локальную авторизацию для Rancher
- Добавим новый хост-агент
- Развернём контейнер из каталога (Ghost)
Шаг 1 — Установка Docker на Ubuntu 16.04
Rancher работает как набор контейнеров: сервер и агенты. Поэтому Docker должен быть установлен на всех хостах.
Обновите пакеты и установите Docker:
sudo apt update
sudo apt upgrade -y
sudo apt install -y docker.ioЗапустите сервис Docker и включите автозагрузку:
sudo systemctl start docker
sudo systemctl enable dockerПроверьте статус и версию:
sudo systemctl status docker
docker --versionРезультат должен выглядеть примерно как на скриншоте:

Совет: если у вас старый пакет docker.io, можно установить docker-ce из официального репозитория Docker для актуальной версии.
Шаг 2 — Установка Rancher Server
Rancher Server запускается в контейнере. На сервере hakase-labs создайте каталог для хранения данных MySQL, используемой Rancher Server:
HOST_VOLUME=$HOME/rancher-data/mysql
mkdir -p $HOST_VOLUMEЗапустите контейнер Rancher Server:
sudo docker run -d -v $HOST_VOLUME:/var/lib/mysql --restart=unless-stopped -p 8080:8080 rancher/serverПодождите пока контейнер загрузится и проинициализируется. В веб-браузере откройте:
Если всё в порядке, вы увидите страницу установки Rancher:

Далее вы попадёте на первичную страницу:

Важно: в продакшне используйте отдельный том для данных и настройте резервное копирование каталога $HOST_VOLUME.
Шаг 3 — Настройка контроля доступа Rancher
Rancher поддерживает несколько провайдеров авторизации: Active Directory, Azure AD, GitHub, OpenLDAP, SAML и Local Authentication. В этом руководстве включим локальную аутентификацию.
Откройте интерфейс Rancher по адресу:
Перейдите в меню «ADMIN» и выберите «Access Control» (Контроль доступа).

Выберите метод Local Authentication, задайте имя пользователя и пароль и нажмите «Enable Local Auth».

После включения вы попадёте в панель Rancher уже с включенной локальной авторизацией.

Советы по безопасности:
- Используйте сложные пароли и ограничьте доступ по IP, если возможно.
- Для корпоративной инфраструктуры предпочтительнее интеграция с LDAP/AD или SAML.
Шаг 4 — Добавление нового хоста
Хосты в Rancher — это Linux-серверы с установленным Docker. Добавим rancher-host01 (192.168.33.11).
Подключитесь по SSH к rancher-host01:
ssh root@rancher-host01Установите Docker, если он не установлен:
sudo apt update
sudo apt install -y docker.io
sudo systemctl start docker
sudo systemctl enable dockerПроверьте установку:

На Rancher Dashboard перейдите в меню «INFRASTRUCTURE» → «Hosts» и нажмите «Add Host».

В поле Host Registration URL оставьте значение по умолчанию и сохраните.

Выберите тип хоста «Custom», укажите IP и скопируйте команду для запуска агента.

На rancher-host01 выполните команду агента. Пример (замените на вашу команду из интерфейса, если она отличается):
sudo docker run -e CATTLE_AGENT_IP='192.168.33.11' --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.9 http://192.168.33.10:8080/v1/scripts/C7871D15E9CE6FFA892F:1514678400000:T9qDygb2pHroTMBuqA9Jylol8tUКоманда загрузит и запустит контейнер Rancher Agent на хосте. После успешной регистрации в интерфейсе Rancher вы увидите новый хост в списке:


После этого Rancher Server может управлять контейнерами на rancher-host01.
Шаг 5 — Развёртывание контейнера через каталог Rancher
Rancher предоставляет каталоги приложений: Library (сертифицированные шаблоны) и Community (пользовательские шаблоны). Развернём Ghost из Community Catalog.
Перейдите в «CATALOG» → Community Catalog.

В поле поиска введите Ghost и откройте детали шаблона.

Задайте имя и описание для стека и нажмите Launch.

После успешного запуска в интерфейсе вы увидите контейнер в статусе Running:

Проверьте, что контейнер запущен на нужном хосте:

Откройте в браузере IP rancher-host01, чтобы увидеть сайт Ghost:

Поздравляем — Rancher Server и агент успешно установлены, а приложение развернуто.
Рекомендации по эксплуатации и безопасность
- Резервное копирование: регулярно создавайте бэкапы каталога $HOST_VOLUME и /var/lib/rancher на агенте.
- Сеть: закройте ненужные порты, разрешите доступ к портам Rancher только с доверенных адресов.
- TLS: в продакшне обязательно настроить TLS для веб-интерфейса Rancher.
- Обновления: планируйте обновление Rancher и Docker; проверяйте совместимость версий.
Альтернативные подходы
- Rancher 2.x + Kubernetes: если нужна нативная поддержка Kubernetes и современная архитектура, рассматривайте Rancher 2.x и запуск k3s или RKE-кластеров.
- k3s для легких сред: k3s — оптимизированный Kubernetes от Rancher, подходит для edge/IoT.
- Compose / Swarm: для простых окружений Docker Compose может быть достаточен, но Rancher добавляет централизованное управление.
Когда этот подход не подходит
- Нужен современный Kubernetes API и инструменты Helm 3 — лучше использовать Rancher 2.x или управляемые кластеры.
- Требуется высокая отказоустойчивость базы данных Rancher Server — одноконтейнерная схема с локальным MySQL не подходит, нужна внешняя БД и кластерная конфигурация.
Ментальные модели и эвристики
- Разделение ответственности: Rancher Server — контроль и UI, агенты — выполнение контейнеров.
- Данные важнее контейнеров: обеспечьте надёжное хранилище для БД Rancher.
- Минимальный жизнеспособный кластер: один сервер Rancher + один агент для тестов; для prod — минимум 3 узла и внешняя БД.
Чек-листы
Чек-лист администратора перед установкой:
- Есть доступ к обоим серверам по SSH
- Настроен статический IP или DNS
- Установлен и запущен Docker
- Запланировано резервное копирование данных Rancher
- Быстрый доступ к веб-интерфейсу (порты открыты)
Чек-лист разработчика при развёртывании приложения:
- Проверены переменные окружения приложения
- Настроено persistent storage если нужно
- Настроен мониторинг и логирование
- Прописываются health checks и restart policies
Роль-based checklist (операции):
- Оператор: установка Docker, запуск агента, проверка статуса хостов.
- Администратор платформы: резервные копии, конфигурация Access Control, TLS.
- Разработчик: публикация в каталоге, тесты контейнера, подготовка конфигурации.
SOP: быстрый порядок установки (короткая инструкция для повторяемых развёртываний)
- На каждом узле: apt update && apt install -y docker.io
- На сервере Rancher: mkdir -p $HOME/rancher-data/mysql
- Запустить rancher/server контейнер с пробросом порта 8080
- Включить access control, создать первого администратора
- На каждом хосте запустить rancher/agent с адресом сервера
- В Rancher UI добавить хосты и запустить нужные стеки
Incident runbook — распространённые проблемы и быстрые решения
Проблема: Rancher Server контейнер не стартует
- Проверить логи контейнера: sudo docker logs
- Проверить права на каталог $HOST_VOLUME
- Убедиться, что порт 8080 не занят
Проблема: Агент не может зарегистрироваться
- Проверить доступность http://192.168.33.10:8080/ из хоста агента
- Проверить правильность команды агента и токена регистрации
- Убедиться, что на хосте открыт исходящий 8080
Проблема: Приложение в статусе Error
- Проверить логи контейнера через Rancher UI или docker logs
- Проверить переменные окружения и монтирование томов
Критерии приёмки
- Rancher Server доступен по HTTP/HTTPS
- Пользователь-администратор может войти через локальную авторизацию
- rancher-host01 отображается в списке хостов и доступен
- Ghost контейнер в статусе Running и отвечает на HTTP-запросы
Тест-кейсы и приёмочные проверки
- Установка Docker: docker –version возвращает версию
- Запуск Rancher Server: HTTP 200 на / от сервера
- Регистрация агента: хост появляется в Rancher UI за < 5 минут
- Развёртывание Ghost: страница приложения отвечает 200
Совместимость и миграция
- Rancher 1.x использует собственные агенты и API; при будущем переходе на Rancher 2.x требуется миграция рабочих нагрузок и пересоздание кластеров под Kubernetes.
- План действий при миграции: экспорт конфигураций, настройка кластера Kubernetes (RKE/k3s), развертывание приложений через Helm или katalog.
Безопасность и приватность
- Ограничьте доступ к Rancher UI с помощью сетевых списков доступа и VPN.
- Настройте TLS сертификаты для веб-интерфейса.
- Если в шаблонах используются секреты, храните их в безопасном хранилище (Vault, секреты Kubernetes).
Частые ошибки и когда они возникают
- Использование локального БД в продакшне — риск потери данных при сбое хоста.
- Открытие Rancher порта в интернет без TLS и защиты — критический риск.
Советы по отладке и оптимизации
- Логи: используйте centralized logging (ELK/EFK) для быстрого анализа.
- Мониторинг: интегрируйте Prometheus и alerting для своевременного реагирования.
- Автообновления: тестируйте обновления в staging перед продакшном.
Часто задаваемые вопросы
Как обновить Rancher Server из контейнера?
Обновление контейнерного Rancher обычно выполняется через остановку старого контейнера, резервное копирование данных и запуск новой версии контейнера с теми же параметрами тома. Всегда тестируйте обновление на стенде.
Можно ли использовать внешнюю базу данных?
Да. Для продакшн-сценариев рекомендуется внешняя СУБД (MySQL/MariaDB) с репликацией и бэкапами.
Что лучше: Rancher 1.x или 2.x?
Если вам нужен современный Kubernetes-стек и поддержка Helm 3, выбирайте Rancher 2.x. Для простых сценариев управления Docker-контейнерами может быть достаточно Rancher 1.x, но это устаревающая ветка.
Краткое резюме
- Проверили Docker, запустили Rancher Server в контейнере, включили локальную авторизацию.
- Добавили хост-агент и развернули приложение из Community Catalog (Ghost).
- Привели чек-листы, SOP, runbook для типичных инцидентов и рекомендации по безопасности.
Если нужно, могу подготовить краткое объявление для команды, шаблоны для резервного копирования или автоматизированный скрипт установки для повторяемой развертки.
Ссылки и ресурсы
- Официальная документация Rancher: http://rancher.com/docs/
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента