Skip to content

Подготовка управляющего сервера к работе

Установка дополнительных пакетов

Для подготовки управляющего сервера к работе необходимо установить следующие пакеты: - puppet-agent; - exmt.

Подготовка xCAT к работе

Для подготовки к работе с xCAT необходимо выполнить следующие действия:

  1. Установить пакеты 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
    

  2. Создать netboot-образ, выполнив команду:

    # mknb x86_64
    

  3. Подготовить репозитории пакетов и профилей инсталляции ОС для установки на вычислительные узлы. Для этого необходимо загрузить образ CentOS-7-x86_64-Everything-XXXX.iso (для CentOS 7.7 образ CentOS-7-x86_64-Everything-1908.iso) и разместить его в директории /install, после чего запустить команду:

    copycds /install/CentOS-7-x86_64-Everything-1908.iso
    
    В результате будет создана директория /install/cenots7.7 с конфигурациями и репозиторием.

  4. Создать базовый профиль устанавливаемого образа ОС для установки на вычислительные узлы. Для этого в качестве шаблона выбирается один из созданных ранее профилей, но при этом заменяются значения атрибутов 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
    

  5. Дополнить список постустановочных скриптов по умолчанию для вычислительных узлов. Для этого с помощью команды 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: {}