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

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(Установка PVE)
(Установка PVE)
Строка 54: Строка 54:
  
 
  MACHINE_NAME='altedu-pve-a-XX'
 
  MACHINE_NAME='altedu-pve-a-XX'
  MACHINE_IP_AND_MASK='172.16.224.198/16'
+
  MACHINE_IP='172.16.224.198'
MACHINE_GATEWAY='172.16.1.1'
 
MACHINE_DNS='172.16.1.1'
 
MACHINE_ETH_DEVICE='eth0'
 
 
 
Перенастраиваем сеть в режим "мост":
 
 
 
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="$MACHINE_ETH_DEVICE"
 
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
 
  hostnamectl set-hostname $MACHINE_NAME
  IP=$(ip a | grep vmbr0 | tail -1 | awk {'print $2'} | awk -F '/' {'print $1'})
+
  IP=$MACHINE_IP
 
  HOST=$(hostname)
 
  HOST=$(hostname)
 
  echo "127.0.0.1 localhost" > /etc/hosts
 
  echo "127.0.0.1 localhost" > /etc/hosts
Строка 111: Строка 88:
 
  systemctl start lxc lxc-net lxc-monitord pvedaemon pve-firewall pvestatd pve-ha-lrm pve-ha-crm spiceproxy pveproxy
 
  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
 
  systemctl enable corosync lxc lxc-net lxc-monitord pve-cluster pvedaemon pve-firewall pvestatd pve-ha-lrm pve-ha-crm spiceproxy pveproxy pve-guests
 +
 +
Перенастраиваем сеть в режим "мост":
 +
 +
MACHINE_IP='172.16.224.198'
 +
MACHINE_MASK='/16'
 +
MACHINE_GATEWAY='172.16.1.1'
 +
MACHINE_DNS='172.16.1.1'
 +
MACHINE_ETH_DEVICE='eth0'
 +
 +
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="$MACHINE_ETH_DEVICE"
 +
EOF
 +
echo "$MACHINE_IP/$MACHINE_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
 
   
 
   
 
Перезагружаемся (чтобы убедиться, что после полного рестарта все сервисы были запущены и система готова).
 
Перезагружаемся (чтобы убедиться, что после полного рестарта все сервисы были запущены и система готова).

Версия 12:03, 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='172.16.224.198'

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

hostnamectl set-hostname $MACHINE_NAME
IP=$MACHINE_IP
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

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

MACHINE_IP='172.16.224.198'
MACHINE_MASK='/16'
MACHINE_GATEWAY='172.16.1.1'
MACHINE_DNS='172.16.1.1'
MACHINE_ETH_DEVICE='eth0'
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="$MACHINE_ETH_DEVICE"
EOF
echo "$MACHINE_IP/$MACHINE_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

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

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

http://localhost:8006

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

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