Hive OS Deploy PXE

ru
en
pxe
deploy
#1

:uk: Hive OS Deploy PXE Guide

Introduction

If you own a large farm with hundreds or thousands of GPU rigs and you are planning to migrate to HiveOS, Hive OS Deploy PXE can significantly reduce migration time and gain complete control over the deployment process.
Hive OS Deploy uses PXE Network Boot technology to deploy HiveOS to your rigs.

System and hardware requirements:

  • Any computer running Ubuntu 16.04 (tested)
  • Dual-core processor
  • Static IP address over cable Ethernet
  • At least 4 Gb of RAM
  • At least 6 Gb of free disk space

You must set up a DHCP server by adding next-server option to CLONEDEPLOY_SERVER_IP (static IP address of host where you install Hive OS Deploy PXE).
Read more in “Network infrastructure configuration” section.

Network infrastructure configuration

Depending on the configuration of your local network, the clients in your network receive IP addresses and other necessary information either dynamically using DHCP or configured statically on each client.

LAN with dynamic IP addresses

This is the default case or when you plan to setup a DHCP server anywhere in your network.
Please note you should provide a set of dhcp-options:

  • dhcp-server ip address. Example: 192.168.1.1
  • dhcp network address. Example: 192.168.1.0
  • dhcp addresses range OR network mask. Example: 192.168.1.10-192.168.1.200 OR 192.168.1.0/24 (NOTE: different tools and hardware (routers) has it own syntax)
  • dhcp broadcast address. Example: 192.168.1.255
  • gateway (also known as router in dnsmasq). Example: 192.168.1.1
  • tftp-root (your tftp folder for storing kernels, initrds, pxe configs and binaries). Example: /tftp
  • dhcp-boot (PXE binary file PATH relative to tftp-root). Must be ,,CLONEDEPLOY_SERVER_IP
  • dns-server
  • next-server (dhcp option 66)

NOTE: you must specify next-server with your CloneDeployServer IP address. It’s the only option that you must define if you have a DHCP-server already running.
By default, most routers have predefined dhcp options and the ability to change them, so you must specify next-server option only.

LAN with static IP addresses

In case of STATIC network: you must configure dhcp-server and tftp-server anywhere in your network to use PXE technology. For example, you could use dnsmasq - lightweight DNS, DHCP and TFTP server.

DHCP configuration examples

See examples of configuration files in the examples/ folder

  • dnsmasq: example/dnsmasq.conf
  • dnsmasq : examples/same-server.dnsmasq.conf - all-in-one config example dhcp и deploy server on the same computer

Installation of deploy server

Installation procedure

All installation commands and scripts in shell must be executed with root credentials by using sudo command.

1 Download the installation package

curl https://git.tor.ph/hivedeploy/cd_package/raw/master/get-clonedeploy.sh | bash && cd /opt/cd_package

2 Run the installation script

./install-ubuntu.sh -f

It will start the installation procedure by downloading and installing the necessary packages.
During installation, you should answer some questions.
Follow these steps:
3.1. Enter the Deploy server’s IP address in prompt window
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5
Let’s assume that our host has IP address 192.168.1.2 then you will see
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5
3.2. Prompt default DB connection string with pressing “Enter”
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5
default settings will be used if no custom DB is given.
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

3.3. Wait until mysql-server sets up, then prompt default root password by empty string (Press Enter).


^This screen can appear several times during this step.

3.4. Enter SMB passwords for read-only and read-write roles: password
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

3.5. Download and update HiveOS image
The latest stable HiveOS image will be downloaded and extracted by default.

3.6 Wait until the installation finishes the setup and then confirm reboot in the prompt window by entering “y”.

4 The following steps are done through the web interface.

Browse to http://<server_ip>/clonedeploy for example if your server has ip address 192.168.1.2 then type in browser with http://192.168.1.2/clonedeploy
and you will see the login screen

Login with default credentials:
Login: admin
Password: admin

5 Go to Admin → PXE and press Update PXE settings

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

6 Go to Admin → “Boot menu” and press “Create Boot Files”

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

7 Go to Groups → deploy → Computer Properties.

Change the following fields:
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5 %D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5
7.1 Custom Attribute 2 - NETWORK. Enter your network with netmask, for example 192.168.1.0/24
7.2 Custom Attribute 3 - GATEWAY. Enter the gateway, for example 192.168.1.1
7.3 Custom Attribute 4 - HIVEOS_API. Enter hiveos-api url, for example http://api.hiveos.farm
7.4 Custom Attribute 5 - FARM_HASH. Enter your farm hash, for example 0a188b553e98efba264e7bc61dee
Note: Make sure the checkboxes near these fields are enabled.
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5
and click on the “Update Properties” button
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5
Now the server part installation is over.

Checking installation and services

Deploy server contains several packages including dhcp proxy, apache2, mysql and tftpd-hpa.
Apache2 and MySQL - used for the web interface and tftpd-hpa used for TFTP server. So if you want to check the installation and make sure these services are running properly, use the following commands:
for DHCP Proxy:

service cd_proxy status

for Apache2:

service apache2 status

for MySQL server:

service mysql status

for TFTP server:

service tftpd-hpa status

Deploy Rigs

Prepare to Deploy

You can organize your network according to certain rules.

  1. Assign rig name with MAC address
  2. Assign rig name with MAC address and IP address

You can import a prepared rigs list (see examples in the examples/clientlists folder)
Go to “Computers”
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5
Click “Import” and then click “Browse” and select the file


and then click the “Upload” button
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5
File format (see examples/clientlists folder for variants) is:

rig-001	08:00:27:4A:29:BB	192.168.1.19

Check imported rigs

Deploy Task

Click “Task”
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5
then “Click Computer Task” -> Start Computer Task -> select workers for Deploy


and press “Deploy Selected”

Deploy process rig side


Progress can be followed through the browser

After downloading the necessary files, Hive OS Deploy will flash the Hive image to the storage device.

After the flashing process, the rig will reboot automatically followed by a boot menu with default target “Boot To Local Machine” which will boot your rig after a 5 second delay

When the boot process is done, we’ll be able to see our rig on the Hive Dashboard
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5 %D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

Appendix

  • install-ubuntu.sh - script for install HiveOS Deploy PXE script options
    %D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

  • download.sh - script for upload new images to HiveOS Deploy PXE
    %D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

  • HiveOS Deploy PXE repository

1 Like
#3

:ru: Руководство по Hive OS Deploy PXE

Вступление

Если у вас есть большая ферма с сотнями или тысячами графических процессоров, и вы планируете перейти на HiveOS, в этом случае использование Hive OS Deploy PXE может значительно сократить время миграции и получить полный контроль над процессом развертывания.
Hive OS Deploy PXE использует технологию сетевой загрузки PXE для развертывания HiveOS на ваших ригах.

Системные и аппаратные требования:

  • Операционная система: Ubuntu 16.04 (протестировно)
  • 2х ядерный процессор
  • Статический IP адрес и кабельный Ethernet
  • Минимум 4 Гб ОЗУ
  • Минимум 6 Гб свободного места на диске

Вы должны настроить DHCP-сервер, добавив параметр next-server со значением CLONEDEPLOY_SERVER_IP (статический IP-адрес хоста, на котором вы устанавливаете Hive OS Deploy PXE).
Подробнее читайте в разделе “Конфигурация сетевой инфраструктуры”.

Конфигурация сетевой инфраструктуры

В зависимости от конфигурации вашей локальной сети риги (клиенты) в вашей сети получают IP-адреса и другую сопутствующую информацию либо динамически с использованием DHCP, либо статически настраиваются для каждого клиента.

Сеть с динамическими IP-адресами

Это случай по умолчанию или когда вы планируете настроить DHCP-сервер в любой точке вашей сети.
Обратите внимание, что вы должны предоставить набор параметров dhcp-options:

  • dhcp-server ip address. Пример: 192.168.1.1
  • dhcp network address. Пример: 192.168.1.0
  • dhcp addresses range ИЛИ network mask. Пример: 192.168.1.10-192.168.1.200 или 192.168.1.0/24
  • dhcp broadcast address. Пример: 192.168.1.255
  • gateway (также известный router в dnsmasq). Пример: 192.168.1.1
  • tftp-root (your tftp folder for storing kernels, initrds, pxe configs and binaries). Пример: /tftp
  • dhcp-boot (PXE загрузчик относительно tftp-root). Должен иметь значение ,,CLONEDEPLOY_SERVER_IP
  • dns-server
  • next-server (dhcp option 66)

Примечание: Вы должны указать next-server с адресом компьютера на который установлен HiveOS Deploy PXE. Это единственная опция, которую вы должны определить, если у вас уже работает DHCP-сервер.
По умолчанию большинство маршрутизаторов имеют предопределенные параметры dhcp и возможность их изменять, поэтому необходимо указывать только параметр next-server.

Сеть со статическими IP-адресами

В случае сети статической сети вы должны сконфигурировать dhcp-сервер в любой точке вашей сети для использования технологии PXE. Например, вы можете использовать dnsmasq - облегченный сервер DNS, DHCP и TFTP.

Примеры конфигурации DHCP

Смотрите примеры файлов конфигурации в папке examples /

  • dnsmasq: example/dnsmasq.conf
  • dnsmasq: examples/same-server.dnsmasq.conf - установка dhcp и развертывание сервера на одном компьютере

Установка сервера развертывания

Процедура установки

Все команды установки и сценарии в оболочке должны выполняться с правами суперпользователя с помощью команды sudo.

1 Скачать установочный пакет

curl https://git.tor.ph/hivedeploy/cd_package/raw/master/get-clonedeploy.sh | bash && cd /opt/cd_package

2 Запустите установочный скрипт

./install-ubuntu.sh -f

Он запустит процедуру установки, загрузив и установив необходимые пакеты.
Во время установки вы должны ответить на несколько вопросов.
Следуй этим шагам:
3.1. Введите IP-адрес сервера развертывания в окне приглашения
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

Давайте предположим, что наш хост имеет IP-адрес 192.168.1.2, тогда вы увидите
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

3.2. Запросит строку подключения БД по умолчанию, нажмите «Enter»
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

настройки по умолчанию будут использоваться, если пользовательская БД не указана.
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

3.3 Подождите, пока mysql сервер установится, а затем запросит пароль root по умолчанию с пустой строкой (нажмите Enter).


^Этот экран может появляться несколько раз на этом этапе.

3.4. Ведите SMB пароли для ролей только для чтения и чтения-записи: password
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

3.5. Скачать и обновить образ HiveOS
Последний стабильный образ HiveOS будет загружен и извлечен по умолчанию.

3.6 Подождите, пока скрипт завершит установку, а затем подтвердите перезагрузку в окне приглашения, введя “y”.

4 Следующие шаги выполняются через веб-интерфейс.

Перейдите по адресу http://<server_ip>/clonedeploy например, если ваш сервер имеет IP-адрес 192.168.1.2, введите в браузере http://192.168.1.2/clonedeploy
и вы увидите экран входа

Войти с учетными данными по умолчанию:
Логин: admin
Пароль: admin

5 Переходим Admin → PXE и нажмите “Update PXE settings”

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

6 Переходим Admin → “Boot menu” и нажмите “Create Boot Files”

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

7 Переходим Groups → deploy → Computer Properties.

Измените следующие поля:
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5 %D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

7.1 Custom Attribute 2 - NETWORK. Введите вашу сеть с маской сети, например, 192.168.1.0/24
7.2 Custom Attribute 3 - GATEWAY. Введите шлюз, например 192.168.1.1
7.3 Custom Attribute 4 - HIVEOS_API. Введите hiveos-api url, например http://api.hiveos.farm
7.4 Custom Attribute 5 - FARM_HASH. Введите Ваш Farm hash, например 0a188b553e98efba264e7bc61dee

Примечание: Убедитесь, что флажки рядом с этими полями отмечены.
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

и нажмите кнопку “Update Properties”
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5
На этом установка серверной части завершена.

Проверка установки

Сервер развертывания содержит несколько пакетов, включая dhcp proxy, apache2, mysql, tftpd-hpa.
Apache2 и MySQL - используется для веб-интерфейса, tftpd-hpa используется для TFTP сервера. Поэтому, если вы хотите проверить установку и убедиться, что эти службы работают правильно, используйте следующие команды:

  • DHCP Proxy:
service cd_proxy status
  • Apache2:
service apache2 status
  • MySQL server:
service mysql status
  • TFTP server:
service tftpd-hpa status

Развертывание ригов

Подготовка к развертыванию

Вы можете организовать свою сеть в соответствии с определенными правилами.

  1. Связать имя рига с MAC адресом
  2. Связать имя рига с MAC адресом и IP адресом

Вы можете импортировать подготовленный список установок (см. Примеры в папке examples/clientlists )
Идем в “Computers”
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

Жмем “Import” и потом “Обзор” указываем файл для импорта

и нажать кнопку “Upload”
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

Формат файла (смотрите примеры в examples/clientlists) для привязки MAC+IP:

rig-001	08:00:27:4A:29:BB	192.168.1.19

Проверьте импортированные риги

Процесс развертывания

Нажмите “Task”
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

потом “Click Computer Task” -> Start Computer Task -> выбрать риги для развертывания


и нажать “Deploy Selected”

Процесс развертывания на риге …

За прогрессом можно следить через браузер

После загрузки необходимых файлов HiveOS Deploy PXE запишет образ Hive на носитель.

После процесса перепрошивки, риг будет автоматически перезагружен, после чего при загрузке появится меню с целью по умолчанию «Boot To Local Machine», которая загрузит ваш риг после 5-секундной задержки.

Когда процесс загрузки будет завершен, мы сможем увидеть наш риг в веб интерфейсе Hive.
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5 %D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

Приложение

  • install-ubuntu.sh - скрипт для сценария установки HiveOS Deploy PXE
    %D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

  • download.sh - скрипт для загрузки образов на сервер HiveOS Deploy PXE
    %D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

  • HiveOS Deploy PXE репозиторий

listed #4