Подготовка управляющего сервера к работе
Установка дополнительных пакетов
Для подготовки управляющего сервера к работе необходимо установить следующие пакеты: - puppet-agent; - exmt.
Подготовка xCAT к работе
Для подготовки к работе с xCAT необходимо выполнить следующие действия:
-
Установить пакеты xCAT-client, xCAT-genesis-base-x86_64 и xCAT-genesis-scripts-x86_64.noarch. Установка выполняется командой:
# yum install xCAT-client xCAT-genesis-base-x86_64 xCAT-genesis-scripts-x86_64.noarch
-
Создать netboot-образ, выполнив команду:
# mknb x86_64
-
Подготовить репозитории пакетов и профилей инсталляции ОС для установки на вычислительные узлы. Для этого необходимо загрузить образ CentOS-7-x86_64-Everything-XXXX.iso (для CentOS 7.7 образ CentOS-7-x86_64-Everything-1908.iso) и разместить его в директории /install, после чего запустить команду:
В результате будет создана директория /install/cenots7.7 с конфигурациями и репозиторием.copycds /install/CentOS-7-x86_64-Everything-1908.iso
-
Создать базовый профиль устанавливаемого образа ОС для установки на вычислительные узлы. Для этого в качестве шаблона выбирается один из созданных ранее профилей, но при этом заменяются значения атрибутов profile, pkglist и template. Создание выполняется командой:
mkdef -t osimage -o centos7.9-x86_64-install-base --template centos7.9-x86_64-install-compute profile=base pkglist=/install/custom/install/centos/base.pkglist template=/install/custom/install/centos/base.tmpl
-
Дополнить список постустановочных скриптов по умолчанию для вычислительных узлов. Для этого с помощью команды tabedit необходимо отредактировать таблицу xCAT postscripts. В таблице для записи xcatdefaults в поле postscripts необходимо дописать hardeths и puppet_setup. Отредактированная запись будет выглядеть следующим образом:
"xcatdefaults","syslog,remoteshell,syncfiles,hardeths,puppet_setup","otherpkgs",,
Создание шаблона xCAT для вычислительного комплекса
Необходимо создать шаблон конфигурации xcat-server, который должен содержать минимально необходимую информацию о вычислительном комплексе, его сетях и сервере управления для корректной работы xCAT-сервера. Имена некоторых переменных xCAT, которые имеют уникальные значения для каждого вычислительного комплекса, и примеры значений приведены в таблице.
Переменные для определения Ethernet сети вычислительного комплекса
Переменная | Описание | Пример |
---|---|---|
dhcpserver | Адрес DHCP сервера сети | 10.0.0.2 |
domain | Имя домена в сети | hpc |
dynamicrange | Диапазон адресов DHCP | 10.0.1.1-10.0.1.253 |
gateway | Адрес шлюза сети | 10.0.0.2 |
mask | Маска сети | 255.255.248.0 |
mgtifname | Имя интерфейса, на котором настроена сеть | no1.40 |
nameservers | Адреса DNS-серверов | 10.0.0.2 |
net | Адрес сети | 10.0.0.0 |
Переменные для определения сети интерконнекта
Переменная | Описание | Пример |
---|---|---|
mask | Маска сети | 255.255.255.0 |
nameserver | Адреса DNS-серверов | 10.0.8.2 |
net | Адрес сети | 1.0.8.0 |
Переменные для определения внешней по отношению к вычислительному комплексу вычислительной сети
Переменная | Описание | Пример |
---|---|---|
gateway | Адрес шлюза сети | 172.16.1.253 |
mask | Маска сети | 255.255.0.0 |
mgtifname | Имя интерфейса, на котором настроена сеть | eno2 |
net | Адрес сети | 172.16.0.0 |
Переменные для настройки работы xCAT сервера на управляющем сервере
Переменная | Описание | Пример |
---|---|---|
dhcpinterfaces | Интерфейсы, на которых работает DHCP сервер | eno1.40, eno1.44 |
domain | Имя домена вычислительного комплекса | hpc |
forwarders | Внешние по отношению к вычислительному комплексу DNS сервера | 10.10.0.1,172.16.1.253 |
installdir | Директория, в которой xCAT хранит образы и скрипты для работы с управляемыми хостами | /install |
master | Адрес xCAT-сервера | 10.0.0.2 |
nameservers | Адреса DNS серверов в вычислительном комплексе | 10.0.0.2 |
tftpdir | Директория, в которой хранятся образы сетевой загрузки | /tftpboot |
Пример файла docker-compose.xcat.yml
/opt/exmt/docker-compose.d/docker-compose.xcat.yml:
version: '3'
services:
xcat:
image: 'git.rsc-tech.ru:4567/docker/exmt/xcat/server:${XCAT_VERSION}'
network_mode: host
privileged: true
restart: always
tty: true
environment:
VAULT_TOKEN: '${VAULT_TOKEN:-changeme}'
NFS_EXPORT_DIR_HOME: /home
NFS_EXPORT_DIR_OPT_BASIS: /opt/basis
NFS_EXPORT_DIR_OPT_SOFTWARE: /opt/software
tmpfs:
- /var/run
- /run
- /tmp
volumes:
- '/sys/fs/cgroup:/sys/fs/cgroup:ro'
- '/etc/localtime:/etc/localtime:ro'
- '/root:/root'
- 'xcat:/etc/xcat'
- '/install:/install'
- '/home:/home'
- 'named:/var/named'
- 'dhcpd_data:/var/lib/dhcpd'
- 'dhcpd_conf:/etc/dhcp'
- '/tftpboot:/tftpboot'
- '/var/log/xcat:/var/log'
- '/opt/basis:/opt/basis'
- '/opt/software:/opt/software'
logging:
driver: json-file
options:
max-size: 10m
max-file: '5'
xcatdb:
image: 'git.rsc-tech.ru:4567/docker/exmt/xcat/db:${XCATDB_POSTGRES_VERSION}'
restart: always
environment:
VAULT_TOKEN: '${VAULT_TOKEN:-changeme}'
volumes:
- '/etc/localtime:/etc/localtime:ro'
- 'xcatdb:/var/lib/postgresql/data'
ports:
- '65432:5432'
logging:
driver: json-file
options:
max-size: 10m
max-file: '5'
xcat_repo:
image: 'git.rsc-tech.ru:4567/xcat/xcat-core:${XCAT_VERSION}'
restart: always
ports:
- 80
logging:
driver: json-file
options:
max-size: 10m
max-file: '5'
xcat_agent:
image: 'git.rsc-tech.ru:4567/exmt/go-xcat-agent:${XCAT_AGENT_VERSION}'
restart: always
environment:
VAULT_TOKEN: '${VAULT_TOKEN:-changeme}'
XCAT_KEEP_DELETED: 'true'
logging:
driver: json-file
options:
max-size: 10m
max-file: '5'
volumes:
xcatdb: {}
xcat: {}
named: {}
dhcpd_data: {}
dhcpd_conf: {}