обзор
RancherOS - это невероятно легкая операционная система (всего около 60 МБ), которая запускает «системный» демон Docker PID 0для запуска системных служб (сеть, консольный доступ и т. Д.), А также «пользовательский» демон Docker для запуска не системные контейнеры, (MySQL, Rancher и многое другое).
Rancher - это управляемая контейнером платформа для управления контейнерами, а также для более широких аспектов инфраструктуры, таких как хосты, среды и многое другое. Сервер Rancher контролирует оркестровку, и агент Rancher развертывается на каждом хосте, который управляется Rancher.
В этой статье мы рассмотрим следующие шаги для развертывания сервера Rancher:
	- Cloud-init script- Опубликовать файл cloud-init для установки и запуска сервера Rancher.
- PXE script- Напишите PXE-скрипт для получения файла cloud-init и загрузки хоста в первый раз.
- Firewall- Создайте группу межсетевого экрана, потому что безопасность имеет первостепенное значение.
- Start it up- Предоставить хост и установить Rancher.
Требования
	- VPS с минимум 1 ГБ ОЗУ - мы установим сервер Rancher на этом хосте.
- Блокировка хранилища - для постоянного хранения данных сервера Rancher, его настроек, пользователей и многого другого.
- 1 Зарезервированный IP-адрес - чтобы дать агентам Rancher согласованный IP-адрес для использования в среде Rancher.
Cloud-init скрипт
Сохраните следующий скрипт в месте, доступном для вашего хоста, HTTP/HTTPSчтобы он мог ссылаться на него из своего скрипта PXE.
Замените ssh-...детали вашим открытым ключом SSH, чтобы вы могли подключить SSH к хосту.
#cloud-config
ssh_authorized_keys:
  - ssh-...
write_files:
  - path: /cloud-config.yml
    permissions: "0700"
    owner: root
    content: |
      #cloud-config
      ssh_authorized_keys:
        - ssh-...
      mounts:
       - ["/dev/vdb1", "/mnt", "ext4", ""] 
      rancher:
        services:
          rancher-server:
            image: rancher/server:stable
            ports:
              - 8080:8080
            restart: always
            volumes:
              - /mnt/rancher-server-mysql:/var/lib/mysql
  - path: /opt/rancher/bin/start.sh
    permissions: "0700"
    owner: root
    content: |
      #!/bin/bash
      echo y | ros install -f -c /cloud-config.yml -d /dev/vda
Обратите внимание, что это на самом деле посадка cloud-config.ymlвнутри другого cloud-config.yml. Внешний загружается, когда iPXE загружает хост в первый раз, и устанавливает Rancher на диск хоста /dev/vda. Внутренняя конфигурация предназначена для последующих загрузок и фактически запускает сервер Rancher.
Данные MySQL хранятся в блочном хранилище /dev/vdb, поэтому критические данные и конфигурации сервера Rancher могут выдержать замену хоста VPS.
Вы можете загрузить сценарий в любое количество бесплатных мест, доступных для публичного доступа в виде URL-адреса, или разместить его на другом VPS, чтобы его могли использовать только ваши хосты через частную сеть.
PXE скрипт
Скопируйте следующее в качестве сценария запуска PXE, называемого « Rancher Server», и замените CLOUD_CONFIG_URLего URL-адресом cloud-config.ymlфайла (что-то вроде https://example.com/cloud-config.yml).
#!ipxe
# Location of Kernel/Initrd images
set base-url https://releases.rancher.com/os/latest
kernel ${base-url}/vmlinuz rancher.state.dev=LABEL=RANCHER_STATE -- rancher.cloud_init.datasources=[url:CLOUD_CONFIG_URL]
initrd ${base-url}/initrd
boot
Это вытянет последнюю версию RancherOS ISO и загрузит ее в память, используя ваш скрипт cloud-init. Ваш скрипт cloud-init затем продолжит установку RancherOS на диск, и при второй загрузке будет запущен контейнер сервера Rancher.
Межсетевой экран
Когда Rancher впервые станет доступен, любой, кто попадет в конечную точку, сразу же получит права администратора.
Чтобы предотвратить захват вашего сервера Rancher посторонними лицами, создайте брандмауэр под названием «Rancher Server» со следующими правилами:
	- TCP 22на ваш IP, так что вы можете SSH в хост.
- TCP 8080на ваш IP, так что вы можете загрузить веб-страницу сервера Rancher.
- TCP 8080для любых хостов агента Rancher, чтобы они могли зарегистрироваться на сервере Rancher.
Начни это
Предоставьте хосту 1+ ГБ в том же регионе, что и блочное хранилище, и установите его Server Typeдля пользовательского сценария запуска iPXE «Rancher Server».
После загрузки обязательно преобразуйте его IP-адрес в зарезервированный IP-адрес, чтобы у ваших агентов Rancher была конечная точка, с которой они могли бы последовательно регистрироваться.
IPXE потребуется ~ 4 минуты для загрузки ISO-образа RancherOS, первой загрузки для установки RancherOS /dev/vda, и второй загрузки для загрузки rancher/server:stableобраза Docker и запуска его контейнеров.
Как только это произойдет, вы сможете достичь его в http://YOUR_RESERVED_IP:8080.
Поздравляем, вы только что настроили сервер Rancher на RancherOS.
Вы можете перезапустить свой экземпляр или даже уничтожить / переустановить его, и блочное хранилище сохранит ваши данные и конфигурации, в то время как ваш зарезервированный IP позволит новым агентам Rancher знать, где найти ваш сервер.
Несколько следующих шагов:
	- Set up access control- как минимум, создать локального администратора с надежным паролем.
- Add hosts- в- Add Hosts -> Customразделе скопируйте URL-адрес, содержащий длинный токен, специфичный для вашего сервера Rancher. Это необходимо для регистрации агентов Rancher на вашем сервере.
- Exploreпоследний Rancher сервер документации .