AltEduPve: различия между версиями

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(Установка PVE)
Строка 30: Строка 30:
  
 
==Установка PVE==
 
==Установка PVE==
 +
 +
Представим, что после установки ваша операционная система доступна в сети по адресу:
 +
 +
172.16.224.198
 +
 +
, в системе имеется единственный обычный пользователь
 +
 +
student
 +
 +
с паролем, который вам известен. Также вам известен пароль от суперпользователя (он же root).
 +
 +
Представили? Тогда продолжим с этими исходными данными.
 +
 +
Входим на сервер по ssh:
 +
 +
ssh student@172.16.224.198
 +
 +
Переключаемся в суперпользователя:
 +
 +
su -
 +
 +
Заводим переменные, в которых будем хранитьс наше имя хоста и сетевые параметры:
 +
 +
MACHINE_NAME='altedu-pve-a-XX'
 +
MACHINE_IP_AND_MASK='172.16.224.198/16'
 +
MACHINE_GATEWAY='172.16.1.1'
 +
MACHINE_DNS='172.16.1.1'
 +
 +
Перенастраиваем сеть в режим "мост":
 +
 +
rm -rf /etc/net/ifaces/*
 +
mkdir /etc/net/ifaces/vmbr0
 +
cat << EOF > /etc/net/ifaces/vmbr0/options
 +
TYPE=bri
 +
ONBOOT=yes
 +
DISABLED=no
 +
NM_CONTROLLED=no
 +
CONFIG_WIRELESS=no
 +
CONFIG_IPV4=yes
 +
CONFIG_IPV6=no
 +
BOOTPROTO=static
 +
HOST="eth0"
 +
EOF
 +
echo $MACHINE_IP_AND_MASK > /etc/net/ifaces/vmbr0/ipv4address
 +
echo "default via $MACHINE_GATEWAY" > /etc/net/ifaces/vmbr0/ipv4route
 +
echo "nameserver $MACHINE_GATEWAY" > /etc/resolve.conf
 +
service network restart
 +
 +
Переименовываем машину и настраиваем определённым образом хост-файл:
 +
 +
hostnamectl set-hostname $MACHINE_NAME
 +
IP=$(ip a | grep vmbr0 | tail -1 | awk {'print $2'} | awk -F '/' {'print $1'})
 +
HOST=$(hostname)
 +
echo "127.0.0.1 localhost" > /etc/hosts
 +
echo "$IP $HOST.nntc.nnov.ru $HOST" >> /etc/hosts
 +
 +
Перезагружаемся и подключаемся заново
 +
 +
reboot
 +
 +
ssh student@172.16.224.198
 +
su -
 +
 +
Обновляем систему
 +
 +
apt-get update -qq
 +
apt-get dist-upgrade
 +
 +
Устанавливаем необходимые пакеты и включаем необходимые сервисы
 +
 +
apt-get install -qq -y pve-manager kernel-modules-zfs-std-def
 +
 +
systemctl start rrdcached ksmtuned crond lxcfs openvswitch nfs-client.target
 +
systemctl enable rrdcached ksmtuned crond lxcfs openvswitch nfs-client.target
 +
 +
systemctl start pve-cluster
 +
systemctl enable pve-cluster
 +
 +
systemctl start lxc lxc-net lxc-monitord pvedaemon pve-firewall pvestatd pve-ha-lrm pve-ha-crm spiceproxy pveproxy
 +
systemctl enable corosync lxc lxc-net lxc-monitord pve-cluster pvedaemon pve-firewall pvestatd pve-ha-lrm pve-ha-crm spiceproxy pveproxy pve-guests
 +
 +
Перезагружаемся (чтобы убедиться, что после полного рестарта все сервисы были запущены и система готова).
 +
 +
Веб-интерфейс системы должен находиться по адресу:
 +
 +
http://localhost:8006
 +
 +
Для доступа в систему по ssh от пользователя root рекомендуется использовать ключи доступа ssh. Если же по каким-либо причинам необходимо разрешить доступ под суперпользователем по паролю, то это можно включить следующими командами (выполнять их нужно из-под суперпользователя):
 +
 +
sed -i 's/#PermitRootLogin without-password/PermitRootLogin yes/g' /etc/openssh/sshd_config
 +
systemctl restart sshd

Версия 09:21, 2 июня 2021

Зачем и почему

Этот раздел не технический. Если цели и задачи понятны, то его можно пропустить :)

Что это?

Это статья, описывающая процесс развёртывания Proxmox Virtual Environment (PVE) в дистрибутиве Alt Education (Альт Образование)

Для чего?

При современных возможностях вычислительной техники при обучении IT-специальностям (и не только им) полезно бывает использовать виртуальные окружения для проведения лабораторных работ.

PVE является отличной альтернативой средам настольной виртуализации и превосходит по возможностям, важным с точки зрения получения обучающимися практических навыков работы с различным спектром программного обеспечения, начиная от базовых основ операционных систем, заканчивая высокоуровневыми языками программирования и платформами разработки программного обеспечения.

Среди ключевых важных и полезных возможностей PVE при использовании с образовательных целях следует отметить следующие:

  • Веб-интерфейс управления (обучающемуся не обязательно находиться физически на компьютере, чтобы иметь полный доступ к виртуальной машине)
  • Разграничение прав доступа (ресурсы одной аппаратной машины посредством механизма пользователей и ролей можно распределить между несколькими обучающимися)
  • Шаблонизация и связанные копии (на базе шаблонов виртуальных машин можно быстро (очень быстро, секунды) создавать клонов, диски которых будут представлять из себя связанные копии относительно диска шаблона) -- это позволяет экономить дисковые и временнЫе ресурсы (проверено при работе с хранилищами на ZFS)
  • Удобный интерфейс взаимодействия с внешними хранилищами (всё настраивается из Веб-интерфейса). При использовании нескольких физических машин с PVE посредством подключения хранилищ можно легко организовать обмен резервными копиями и шаблонами
  • Возможность предоставления доступа к виртуальным машинам извне (вынеся порт Веб-интерфейса за пределы шлюза веб интерфейс со всем функционалом доступа к виртуальным машинам будет доступен извне) -- может быть актуально при полностью или частично дистанционном подходе к практическому обучению
  • Возможность кластеризации решения. Кластеризация даёт удобный механизм управления группой физических машин из одного Веб-интерфейса (из любого из Веб-интерфейсов на любой машине-узле кластера). Помимо единого "командного пункта" кластеризация даёт возможность миграции виртуальных машин между физическими узлами (без необходимости ввода команд в консоли (мышкой из веб интерфейса), без остановки машин - всё автоматизировано (опять же: без консоли, мышкой))
  • Наверняка, что-то важное из плюсов данного решения, должного быть здесь, упущено...

Установка

Важная информация

Установка операционной системы

Установка PVE

Представим, что после установки ваша операционная система доступна в сети по адресу:

172.16.224.198

, в системе имеется единственный обычный пользователь

student

с паролем, который вам известен. Также вам известен пароль от суперпользователя (он же root).

Представили? Тогда продолжим с этими исходными данными.

Входим на сервер по ssh:

ssh student@172.16.224.198

Переключаемся в суперпользователя:

su -

Заводим переменные, в которых будем хранитьс наше имя хоста и сетевые параметры:

MACHINE_NAME='altedu-pve-a-XX'
MACHINE_IP_AND_MASK='172.16.224.198/16'
MACHINE_GATEWAY='172.16.1.1'
MACHINE_DNS='172.16.1.1'

Перенастраиваем сеть в режим "мост":

rm -rf /etc/net/ifaces/*
mkdir /etc/net/ifaces/vmbr0
cat << EOF > /etc/net/ifaces/vmbr0/options
TYPE=bri
ONBOOT=yes
DISABLED=no
NM_CONTROLLED=no
CONFIG_WIRELESS=no
CONFIG_IPV4=yes
CONFIG_IPV6=no
BOOTPROTO=static
HOST="eth0"
EOF
echo $MACHINE_IP_AND_MASK > /etc/net/ifaces/vmbr0/ipv4address
echo "default via $MACHINE_GATEWAY" > /etc/net/ifaces/vmbr0/ipv4route
echo "nameserver $MACHINE_GATEWAY" > /etc/resolve.conf
service network restart

Переименовываем машину и настраиваем определённым образом хост-файл:

hostnamectl set-hostname $MACHINE_NAME
IP=$(ip a | grep vmbr0 | tail -1 | awk {'print $2'} | awk -F '/' {'print $1'})
HOST=$(hostname)
echo "127.0.0.1 localhost" > /etc/hosts
echo "$IP $HOST.nntc.nnov.ru $HOST" >> /etc/hosts

Перезагружаемся и подключаемся заново

reboot
ssh student@172.16.224.198
su -

Обновляем систему

apt-get update -qq
apt-get dist-upgrade

Устанавливаем необходимые пакеты и включаем необходимые сервисы

apt-get install -qq -y pve-manager kernel-modules-zfs-std-def
systemctl start rrdcached ksmtuned crond lxcfs openvswitch nfs-client.target
systemctl enable rrdcached ksmtuned crond lxcfs openvswitch nfs-client.target
systemctl start pve-cluster
systemctl enable pve-cluster
systemctl start lxc lxc-net lxc-monitord pvedaemon pve-firewall pvestatd pve-ha-lrm pve-ha-crm spiceproxy pveproxy
systemctl enable corosync lxc lxc-net lxc-monitord pve-cluster pvedaemon pve-firewall pvestatd pve-ha-lrm pve-ha-crm spiceproxy pveproxy pve-guests

Перезагружаемся (чтобы убедиться, что после полного рестарта все сервисы были запущены и система готова).

Веб-интерфейс системы должен находиться по адресу:

http://localhost:8006

Для доступа в систему по ssh от пользователя root рекомендуется использовать ключи доступа ssh. Если же по каким-либо причинам необходимо разрешить доступ под суперпользователем по паролю, то это можно включить следующими командами (выполнять их нужно из-под суперпользователя):

sed -i 's/#PermitRootLogin without-password/PermitRootLogin yes/g' /etc/openssh/sshd_config
systemctl restart sshd