Содержание

Skip to end of metadata
Go to start of metadata

состав стенда

п/п

FQDN

Hostname

IP

address

Сервисы/Роли/

Назначение

Admin

login/pass

User

login/pass

Comment/

Notes

1srv1.brest0.local192.168.44.99

opennebula front,

ald server, ntp server

PostgreSQL server,

iscsi-инициатор.

u/1

brestadmin/1


2node1.brest0.local192.168.44.101

opennebula node

ald client, ntp client,

iscsi-инициатор.

u/1

IPMI:

192.168.44.11

3node2.brest0.local192.168.44.102

opennebula node

ald client, ntp client,

iscsi-инициатор.

u/1

IPMI:

192.168.44.9

4stor1.brest0.local192.168.44.110

storage iscsi,

ald client, ntp client,

iscsi-таргет.

u/1

Введение

ПК СВ Брест устанавливается в среде ОС Astra Linux SE 1.6 с установленным вторым обновлением безопасности

1.srv1 - настройка фронтальной машины

1.1 подготовка к развертыванию БРЕСТ
1.1.1. настройка сети

На всех узлах OpenNebula необходимо создать соединение типа мост с одинаковым именем.

В данном примере используется имя моста br0 и его настройка осуществляется путем редактирования файла /etc/network/interfaces.

(можно использовать и network-manager, но не рекомендуется)

установить пакет bridge-utils командой:

sudo apt install bridge-utils

Далее необходимо настроить созданное соединение типа мост с названием br0 для opennebula

Редактируем файл /etc/network/interfaces, добавляя в него следующие строки:

auto br0 
iface br0 inet static
	bridge_ports eth0
	address 192.168.44.99
	netmask 255.255.255.0

При копировании проверяйте правильность указанных имен портов для моста/наименований сетевых интерфейсов/IP адресов/масок подсетей

DNS/hosts записи в файле /etc/hosts должны выглядеть следующим образом:

192.168.44.99 srv1.brest0.local srv1
192.168.44.101 node1.brest0.local node1
192.168.44.102 node2.brest0.local node2
192.168.44.110 stor1.brest0.local stor1

При копировании проверяйте правильность указанных имен IP адресов/FQDN имен/hostname

в случае редактирования файла /etc/hosts (а не программы network-manager) закомментировать строку:

127.0.1.1   srv1
1.1.2. настройка сервера NTP

 в файле /etc/ntp.conf закомментировать следующие строки:

pool 0.debian.pool.ntp.org iburst
pool 1.debian.pool.ntp.org iburst
pool 2.debian.pool.ntp.org iburst
pool 3.debian.pool.ntp.org iburst

и добавить после них:

server 127.127.1.0
fudge 127.127.1.0 stratum 2
restrict 192.168.44.0 mask 255.255.255.0 nomodify notrap

включить в автозагрузку ntp:

sudo systemctl enable ntp

и запустить сервис ntp:

sudo systemctl start ntp

проверить работоспособность ntp командой:

sudo watch ntpq -p
1.1.3. ALD-сервер

Установить мета-пакет ALD сервера:

sudo apt install ald-server-common

добавить группы:

disk, kvm, libvirt, libvirt-admin, libvirt-qemu, astra-admin, astra-console

в строке: ALLOWED_LOCAL_GROUPS файла /etc/ald/ald.conf

Далее инициализировать домен командой:

sudo ald-init init
1.1.4. Postgresql
Установить СУБД postgresql-9.6:
sudo apt install postgresql-9.6

зайти в интерфейс управления psql

sudo -u postgres psql

Создать БД "onedb" командой:

# create database onedb;

создать пользователя postgres с паролем postgres:

# alter user postgres password 'postgres';

Выйти из интерфейса управления psql:

# \q
1.1.5. повышение уровня целостности до 127

в файле /etc/default/grub отредактировать сроку:

GRUB_CMDLINE_LINUX_DEFAULT="parsec.max_ilev=127 parsec.ccnr_relax=1 quiet net.ifnames=0"

Присвоить пользователю максимальный уровень целостности:

sudo pdpl-user -i 127 <user>

Обновить  GRUB:

sudo update-grub

Обязательно сразу после этого перезагрузиться

1.2. развертывание БРЕСТ (opennebula)
1.2.1. установка
sudo apt install brestcloud


Обязательно после этого перезагрузиться

1.2.2. настройка opennebula

остановить службы OpenNebula:

sudo systemctl stop opennebula
sudo systemctl stop unicorn-opennebula

в конфигурационном файле /etc/one/oned.conf в секции DB закомментировать строку sqlite и раскоментировать строку pgsql, добавить указанные данные для авторизации postgresql;

 Было:
DB = [ BACKEND = "sqlite" ]


# rbt: Sample configuration for Postgresql with default credentials
# DB = [ BACKEND = "pgsql",    
#        SERVER  = "localhost",
#        PORT    = 5432,      
#        USER    = "USERNAME",
#        PASSWD  = "PASSWORD",
#        DB_NAME = "DB_NAME" ]
 Стало:
# DB = [ BACKEND = "sqlite" ]
                             
# rbt: Sample configuration for Postgresql with default credentials
DB = [ BACKEND = "pgsql",     
        SERVER  = "localhost",
        PORT    = 5432,       
        USER    = "postgres",
        PASSWD  = "postgres",
        DB_NAME = "onedb" ]

удалить все файлы в /var/lib/one/.one кроме one_auth

запустить службы OpenNebula:

sudo systemctl start opennebula
sudo systemctl start unicorn-opennebula

сконфигугировать облако и создать пользователя командами:

sudo brestcloud-configure
sudo ald-libvirt-qemu-configure
При выполнении следующей команды На вопрос "Пользователь будет администратором (по умолчанию Нет)?" ответить "Да"
sudo brestuser create brestadmin

Обязательно после этого перезагрузиться

1.2.3. Настройка firefox

Войти в графику пользователем brestadmin.

В адресной строке firefox ввести about:config

для параметров

network.negotiate-auth.delegation-uris
network.negotiate-auth.trusted-uris

выставить значение "http://" (без кавычек).

Перейти в интерфейс OpenNebula: http://srv1

1.2.4. Добавление Datastores

В разделе "Storage" подраздела "Datastores" создать 2 датастора - 2х разных типов - system и images. 

в /var/lib/one/datastores появятся две директории с номерами >= 100

1.3 монтирование хранилища (делать после создания и форматирования iscsi-таргетов)
1.3.1 инициатор
Установить open-iscsi командой:
sudo apt install open-iscsi

определить ID хоста:

cat /etc/iscsi/initiatorname.iscsi

прописать в /etc/iscsi/iscsid.conf строку:

node.startup = automatic

ID хоста потребуется при настройке доступа на таргете - для продолжения необходимо добавить ID инициатора в ACL таргета:

sudo iscsiadm -m discovery -t st -p <stor1>
sudo iscsiadm -m node -l

проверить в /etc/iscsi/nodes/<id>/<ip>/default наличие строки:

node.startup = automatic
1.3.3 настройка кластерной ФС ocfs2

установить пакет ФС командой:

sudo apt install ocfs2-tools


Обязательно после этого перезагрузиться

создать файл /etc/ocfs2/cluster.conf (в качестве образца необходимо взять фрагмент из /usr/share/doc/ocfs2/README.Debian и отредактировать, не делайте copy-paste из приведенного ниже фрагмента):

cluster:
        node_count = 3
        name = ocfs2

node:
        number = 1
        cluster = ocfs2
        ip_port = 7777
        ip_address = 192.168.44.101
        name = node1

node:
        number = 2
        cluster = ocfs2
        ip_port = 7777
        ip_address = 192.168.44.102
        name = node2

node:
        number = 3
        cluster = ocfs2
        ip_port = 7777
        ip_address = 192.168.44.99
        name = srv1

выполнить команду:

sudo dpkg-reconfigure ocfs2-tools

в запустившемся мастере установить автоматическую загрузку сервиса ocfs2, остальное оставить по-умолчанию.

Выполнить перезагрузку:

sudo systemctl restart o2cb

создать файловую систему на iscsi-томах <sdX1> и <sdX2> командами:

sudo mkfs.ocfs2 --cluster-stack=o2cb --cluster-name=ocfs2 /dev/<sdX1>
sudo mkfs.ocfs2 --cluster-stack=o2cb --cluster-name=ocfs2 /dev/<sdX2>
1.3.2 монтирование

определить UUID-ы  подключенных iscsi-дисков:

blkid

прописать монтирование в /etc/fstab добавив в конец файла строки:

UUID=<id1> /var/lib/one/datastores/100 ocfs2 _netdev,x-systemd.requires=o2cb.service 0 0
UUID=<id2> /var/lib/one/datastores/101 ocfs2 _netdev,x-systemd.requires=o2cb.service 0 0
1.4 настройка беспарольного доступа SSH (делать после поднятия нод)
KEY=$(sudo cat /root/.ssh/id_rsa.pub)
ssh u@<node1> "sudo bash -c \"echo $KEY >> /root/.ssh/authorized_keys\""
ssh u@<node2> "sudo bash -c \"echo $KEY >> /root/.ssh/authorized_keys\""

2. stor1 - настройка хранилища (наполняется)

2.1. подготовка
2.1.1 настройка сети - IP адрес
2.1.2 разметка дисков

для работы opennebula нужны 2 раздела, которые будут экспортироваться с хранилища по iscsi.
выделить 2 неформатированных раздела, определить их имена в /dev/ (далее они - <sd1>, <sd2>)

2.2 iscsi
2.2.1 Установка Таргета и Инициатора:

установить таргет и инициатор командой:

sudo apt install targetcli-fb open-iscsi


Обязательно после этого перезагрузиться

2.2.3 настройка таргета в командном интерфейсе утилиты target-cli
Пошагово выполнить команды:
sudo targetcli
ls
cd /backstores/block
create name=disk1 dev=/dev/<sd1>
create name=disk2 dev=/dev/<sd2>
ls /
cd /iscsi
create
ls /

Сохранить внесенные изменения:

/ saveconfig

на инициаторах (клиентах iscsi) необходимо посмотреть их идентификаторы (далее - <iscsi-id>).

для этого на node1, node2, srv1 после установки патека open-iscsi (см. пункт 3.3.1) выполнить:

cat /etc/iscsi/initiatorname.iscsi

далее эти идентификаторы прописать на таргете (stor1) выполнив:

sudo targetcli
cd /iscsi/<scsi-id>/tpgt1/luns
create /backstores/block/disk1
create /backstores/block/disk2
cd /iscsi/<scsi-id>/tpgt1/acls
create <node-id1>
create <node-id2>
create <node-id3>

Сохранить внесенные изменения:

/ saveconfig

3. nodes - настройка узлов

3.1 подготовка
3.1.1. настройка сети

установить пакет bridge-utils

sudo apt install bridge-utils

IP. сразу настраиваем bridge для nebula. /etc/network/interfaces:

auto br0 
iface br0 inet static
	bridge_ports eth0
	address <ip>
	netmask <mask>

DNS-записи:

192.168.44.99 srv1.brest0.local srv1
192.168.44.101 node1.brest0.local node1
192.168.44.102 node2.brest0.local node2
192.168.44.110 stor2.brest0.local stor1

в случае редактирования файла hosts закомментировать строку:

127.0.1.1   <hostname>
3.1.2. настройка NTP

 в /etc/ntp.conf закомментировать строки:

pool 0.debian.pool.ntp.org iburst
pool 1.debian.pool.ntp.org iburst
pool 2.debian.pool.ntp.org iburst
pool 3.debian.pool.ntp.org iburst

и добавить после них:

server srv1

включить в автозагрузку ntp:

sudo systemctl enable ntp

и запустить сервис ntp:

sudo systemctl start ntp

проверить работоспособность ntp командой:

sudo watch ntpq -p

3.1.3. ALD ввод в домен

Установить мета-пакет ALD клиента:

sudo apt install ald-client-common

Ввести клиента в домен командой:

sudo ald-client join
3.1.4 повышение уровня целостности до 127

в файле /etc/default/grub отредактировать сроку:

GRUB_CMDLINE_LINUX_DEFAULT="parsec.max_ilev=127 parsec.ccnr_relax=1 quiet net.ifnames=0"

Присвоить пользователю максимальный уровень целостности:

sudo pdpl-user -i 127 <user>

Обновить  GRUB:

sudo update-grub


Обязательно сразу после этого перезагрузиться

3.2 развертывание ноды
3.2.1 установка

Установить необходимые для работы ноды пакеты:

sudo apt install ald-libvirt-qemu opennebula-node ipmitool


Обязательно сразу после этого перезагрузиться

выполнить конфигурационный скрипт:

sudo ald-libvirt-qemu-configure
3.3 монтирование хранилища (делать после создания и форматирования iscsi-таргетов)
3.3.1 инициатор

установить инициатор командой:

sudo apt install open-iscsi


Обязательно после этого перезагрузиться

прописать в /etc/iscsi/iscsid.conf :

node.startup = automatic

ID хоста потребуется при настройке доступа на таргете - для продолжения необходимо добавить ID инициатора в ACL таргета:

sudo iscsiadm -m discovery -t st -p <stor1>
sudo iscsiadm -m node -l

проверить в /etc/iscsi/nodes/<id>/<ip>/default наличие строки:

node.startup = automatic
3.3.2 конфигурирование кластерной ФС ocfs2

установить пакет ФС командой:

sudo apt install ocfs2-tools


Обязательно после этого перезагрузиться

создать файл /etc/ocfs2/cluster.conf (в качестве образца необходимо взять фрагмент из /usr/share/doc/ocfs2/README.Debian и отредактировать, не делайте copy-paste из приведенного ниже фрагмента):

cluster:
        node_count = 3
        name = ocfs2

node:
        number = 1
        cluster = ocfs2
        ip_port = 7777
        ip_address = 192.168.44.101
        name = node1

node:
        number = 2
        cluster = ocfs2
        ip_port = 7777
        ip_address = 192.168.44.102
        name = node2

node:
        number = 3
        cluster = ocfs2
        ip_port = 7777
        ip_address = 192.168.44.99
        name = srv1

выполнить команду:

sudo dpkg-reconfigure ocfs2-tools

в запустившемся мастере установить автоматическую загрузку сервиса ocfs2, остальное оставить по-умолчанию.

Выполнить перезагрузку:

sudo systemctl restart o2cb
3.3.3 монтирование

определить UUID-ы  подключенных iscsi-дисков:

blkid

прописать монтирование в /etc/fstab добавив в конец файла строки:

UUID=<id1> /var/lib/one/datastores/100 ocfs2 _netdev,x-systemd.requires=o2cb.service 0 0
UUID=<id2> /var/lib/one/datastores/101 ocfs2 _netdev,x-systemd.requires=o2cb.service 0 0
3.4 настройка беспарольного доступа SSH (делать после поднятия нод)
KEY=$(sudo cat /root/.ssh/id_rsa.pub)
ssh u@<srv1> "sudo bash -c \"echo $KEY >> /root/.ssh/authorized_keys\""

Необходимо сделать обмен ключами между нодами после их подняться.


4. создание и управление виртуальными машинами (раздел в начальной стадии наполнения)

залогиниться как brestadmin в графику, открыть http://srv1 в браузере, залогиниться в интерфейс opennebula

4.1 хранилища - datastores
4.1.1 создать image - образ жесткого диска ВМ
4.1.2 создать image - загрузить ISO-образ для установки
4.2 виртуальная сеть
4.2.1 простое мостовое соединение виртуальной машины к сетевому адаптеру хоста

создать виртуальную сеть, режим bridge

добавить пул MAC-адресов (просто указать количество)

4.3 создание шаблона ВМ
4.4 создание ВМ на основе шаблона


  • No labels

1 Comment

  1. Михаил Кучеренко Необходимо уточнить, что версию 2.3 надо устанавливать на систему с четвертым обновлением.