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

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(Автоматический скрипт для запуска из pmagic)
(Очистка pve ноды от кластерных настроек)
 
(не показаны 33 промежуточные версии этого же участника)
Строка 1: Строка 1:
 
=Подготовка PVE ноды после клонирования из базового образа=
 
=Подготовка PVE ноды после клонирования из базового образа=
  
=Автоматический скрипт для запуска из pmagic=
+
Где лежит базовый образ?
 +
 
 +
apve3: /mnt/samba/fdisk3/pve-template-xx-15gb.dd
 +
 
 +
=Скрипт переименования машин=
 +
 
 +
==Выполнить из pve==
 +
 
 +
Сначала нужно войти в рута. Для этого нужно открыть терминал и набрать
 +
 
 +
su -
 +
 
 +
затем ввести пароль от пользователя root
 +
 
 +
Далее в рутовой консоли выполнить сначала команду
 +
 
 +
MACHINE_NAME='pve-prdb-XX'
 +
 
 +
, где XX -- это реальный номер машины из диапазона 01-14
 +
 
 +
Далее выделить весь набор команд ниже и бросить их в тот же терминал, в котором выполнялась предыдущая команда
  
 
<pre>
 
<pre>
MACHINE_NAME='pve-prdb-01'
 
 
DISK='/dev/nvme0n1'
 
DISK='/dev/nvme0n1'
DISKDIR='/mnt/d'
 
 
# fix
 
gdisk $DISK <<EOF
 
x
 
e
 
w
 
Y
 
EOF
 
  
 
# resize lvm partition
 
# resize lvm partition
gdisk $DISK <<EOF
+
fdisk $DISK <<EOF
 
d
 
d
3
+
2
 
n
 
n
3
+
p
 
+
2
  
  
 +
N
 
w
 
w
Y
 
 
EOF
 
EOF
  
Строка 33: Строка 43:
  
 
# resize pv
 
# resize pv
pvresize "${DISK}p3"
+
pvresize "${DISK}p2"
  
 
# rescan volume groups
 
# rescan volume groups
Строка 39: Строка 49:
  
 
# create lvm and zfs pool in this
 
# create lvm and zfs pool in this
lvcreate pve-vg --name vmstorage -L 400g
+
lvcreate -y debian-vg --name vmstorage -L 400g
zpool create zfspool /dev/mapper/pve--vg-vmstorage -f
+
 
 +
zpool create zfspool /dev/mapper/debian--vg-vmstorage -f
 
zfs set compression=off zfspool
 
zfs set compression=off zfspool
 
zfs set sync=disabled zfspool
 
zfs set sync=disabled zfspool
  
 
+
mkdir /zfspool/storage
# check rootfs and mount
+
chown storage:storage /zfspool/storage -R
fsck.ext4 -y /dev/mapper/pve--vg-root
 
mkdir $DISKDIR
 
mount /dev/mapper/pve--vg-root $DISKDIR
 
  
 
# detect ip
 
# detect ip
IP=$(ip a | grep eth0 | tail -1 | awk {'print $2'} | awk -F '/' {'print $1'})
+
IP=$(ip a | grep vmbr0 | tail -1 | awk {'print $2'} | awk -F '/' {'print $1'})
 
 
# replace template config
 
cd $DISKDIR/opt/node_template_config
 
 
 
mv $DISKDIR/var/lib/rrdcached/db/pve2-node/pve-analise-xx $DISKDIR/var/lib/rrdcached/db/pve2-node/$MACHINE_NAME
 
mv $DISKDIR/var/lib/rrdcached/db/pve2-storage/pve-analise-xx $DISKDIR/var/lib/rrdcached/db/pve2-storage/$MACHINE_NAME
 
 
 
cd $DISKDIR/
 
tar -xzpf $DISKDIR/opt/node_template_config/etc.tgz
 
 
 
  
sed -i "s/TEMPLATENAME/$MACHINE_NAME/g" $DISKDIR/etc/hosts
+
systemctl stop pve-cluster
sed -i "s/TEMPLATEIPADDR/$IP/g" $DISKDIR/etc/hosts
 
sed -i "s/TEMPLATENAME/$MACHINE_NAME/g" $DISKDIR/etc/hostname
 
sed -i "s/TEMPLATENAME/$MACHINE_NAME/g" $DISKDIR/etc/mailname
 
sed -i "s/TEMPLATENAME/$MACHINE_NAME/g" $DISKDIR/etc/postfix/main.cf
 
  
cd /
+
mv /var/lib/rrdcached/db/pve2-node/pve-template-xx /var/lib/rrdcached/db/pve2-node/$MACHINE_NAME
 +
mv /var/lib/rrdcached/db/pve2-storage/pve-template-xx /var/lib/rrdcached/db/pve2-storage/$MACHINE_NAME
  
umount $DISKDIR
+
sed -i "s/pve-template-xx/$MACHINE_NAME/g" /etc/hosts
 +
sed -i "s/172.16.224.227/$IP/g" $DISKDIR/etc/hosts
 +
sed -i "s/pve-template-xx/$MACHINE_NAME/g" /etc/hostname
 +
sed -i "s/pve-template-xx/$MACHINE_NAME/g" /etc/mailname
 +
sed -i "s/pve-template-xx/$MACHINE_NAME/g" /etc/postfix/main.cf
  
 
reboot
 
reboot
Строка 79: Строка 78:
 
=Доустановить и настроить SAMBA=
 
=Доустановить и настроить SAMBA=
  
apt-get install samba
+
Это если вдруг самба не была установлена в базовый образ. В образе
adduser storage
 
smbpasswd -a storage
 
smbpasswd -e storage
 
  
=Где лежит базовый образ?=
+
apve3: /mnt/samba/fdisk3/pve-template-xx-15gb.dd
  
apve3: /mnt/samba/fdisk3/pve-node-template-image.dd
+
она уже установлена и настроена на каталог
  
=Набор действий (вручную) для настройки одного узла=
+
/zfspool/storage
  
Всё из-под пользователя
+
поэтому каталог этот нужно создать после создания пула zfs (см. в скрипте создание этого каталога -- это для этого)
  
root
 
  
==Переименовать машину==
+
apt-get install samba
   
+
  adduser storage
  export NEWNAME='pve-prdb-xx'
+
  smbpasswd -a storage
  hostnamectl set-hostname $NEWNAME
+
  smbpasswd -e storage
  
, где:
+
mkdir /zfspool/storage
 +
chown storage:storage /zfspool/storage -R
  
xx
+
положить это в
  
это порядковый номер машины
+
/etc/samba/smb.conf
  
==Подвинуть раздел lvm до конца физического диска==
+
<pre>
 
+
# Global parameters
#############
+
[global]
# Внимание! #
+
log file = /var/log/samba/log.%m
#############
+
logging = file
Операции из этого раздела лучше сразу выполнить из partedmagic, чтобы не перезагружаться
+
map to guest = Bad User
 
+
max log size = 1000
===Вручную===
+
obey pam restrictions = Yes
 
+
pam password change = Yes
Запустить gparted и подвинуть раздел с lvm до конца физического диска
+
panic action = /usr/share/samba/panic-action %d
 +
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
 +
passwd program = /usr/bin/passwd %u
 +
server role = standalone server
 +
server string = %h server (Samba, Ubuntu)
 +
unix password sync = Yes
 +
usershare allow guests = Yes
 +
idmap config * : backend = tdb
  
===Командой===
+
[storage]
 +
browseable = Yes
 +
comment = storage
 +
valid users = storage
 +
create mask = 0755
 +
directory mask = 0755
 +
path = /zfspool/storage
 +
read only = No
 +
        veto files = /._*/.DS_Store/.T*/Thumbs.db/Network Trash Folder/Temporary Items/*.exe/*.bat/*.msi
 +
        delete veto files = yes
  
<pre>fdisk /dev/nvme0n1 <<EOF
 
d
 
3
 
n
 
3
 
 
 
N
 
w
 
EOF
 
 
</pre>
 
</pre>
  
Далее из под рута дать команды:
+
=Очистка pve ноды от кластерных настроек=
  
lvcreate pve-vg --name vmstorage -L 400g
+
Актуально только когда на ноде нет виртуальных машин. Если есть, то чуть сложнее. Описано здесь: https://pve.proxmox.com/wiki/Cluster_Manager
zpool create zfspool /dev/mapper/pve--vg-vmstorage -f
 
zfs set compression=off zfspool
 
zfs set sync=disabled zfspool
 
 
 
/opt/node_template_config/apply_rename.sh ИМЯ_УЗЛА
 
 
 
Пример
 
 
 
/opt/node_template_config/apply_rename.sh pve-analise-01
 
 
 
Или
 
 
 
/opt/node_template_config/apply_rename.sh pve-ml-01
 
 
 
Далее нужно запустить один костыль (костыль №1). Это команда:
 
  
 
  systemctl stop pve-cluster
 
  systemctl stop pve-cluster
 
  systemctl stop corosync
 
  systemctl stop corosync
 
  pmxcfs -l
 
  pmxcfs -l
  cp -rp /etc/pve/nodes/pve-analise-xx /etc/pve/nodes/ИМЯ_УЗЛА
+
  rm /etc/pve/corosync.conf
 +
rm -r /etc/corosync/*
 
  killall pmxcfs
 
  killall pmxcfs
  reboot
+
  systemctl start pve-cluster
 
 
Внимание! Имя узла должно быть такое же, как в команде переименования!
 

Текущая версия на 18:41, 1 июня 2021

Подготовка PVE ноды после клонирования из базового образа

Где лежит базовый образ?

apve3: /mnt/samba/fdisk3/pve-template-xx-15gb.dd

Скрипт переименования машин

Выполнить из pve

Сначала нужно войти в рута. Для этого нужно открыть терминал и набрать

su -

затем ввести пароль от пользователя root

Далее в рутовой консоли выполнить сначала команду

MACHINE_NAME='pve-prdb-XX'

, где XX -- это реальный номер машины из диапазона 01-14

Далее выделить весь набор команд ниже и бросить их в тот же терминал, в котором выполнялась предыдущая команда

DISK='/dev/nvme0n1'

# resize lvm partition
fdisk $DISK <<EOF
d
2
n
p
2


N
w
EOF

# refresh partitions
partprobe

# resize pv
pvresize "${DISK}p2"

# rescan volume groups
vgchange -ay

# create lvm and zfs pool in this
lvcreate -y debian-vg --name vmstorage -L 400g

zpool create zfspool /dev/mapper/debian--vg-vmstorage -f
zfs set compression=off zfspool
zfs set sync=disabled zfspool

mkdir /zfspool/storage
chown storage:storage /zfspool/storage -R

# detect ip
IP=$(ip a | grep vmbr0 | tail -1 | awk {'print $2'} | awk -F '/' {'print $1'})

systemctl stop pve-cluster

mv /var/lib/rrdcached/db/pve2-node/pve-template-xx /var/lib/rrdcached/db/pve2-node/$MACHINE_NAME
mv /var/lib/rrdcached/db/pve2-storage/pve-template-xx /var/lib/rrdcached/db/pve2-storage/$MACHINE_NAME

sed -i "s/pve-template-xx/$MACHINE_NAME/g" /etc/hosts
sed -i "s/172.16.224.227/$IP/g" $DISKDIR/etc/hosts
sed -i "s/pve-template-xx/$MACHINE_NAME/g" /etc/hostname
sed -i "s/pve-template-xx/$MACHINE_NAME/g" /etc/mailname
sed -i "s/pve-template-xx/$MACHINE_NAME/g" /etc/postfix/main.cf

reboot

Доустановить и настроить SAMBA

Это если вдруг самба не была установлена в базовый образ. В образе

apve3: /mnt/samba/fdisk3/pve-template-xx-15gb.dd

она уже установлена и настроена на каталог

/zfspool/storage

поэтому каталог этот нужно создать после создания пула zfs (см. в скрипте создание этого каталога -- это для этого)


apt-get install samba
adduser storage
smbpasswd -a storage
smbpasswd -e storage
mkdir /zfspool/storage
chown storage:storage /zfspool/storage -R

положить это в

/etc/samba/smb.conf
# Global parameters
[global]
	log file = /var/log/samba/log.%m
	logging = file
	map to guest = Bad User
	max log size = 1000
	obey pam restrictions = Yes
	pam password change = Yes
	panic action = /usr/share/samba/panic-action %d
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	passwd program = /usr/bin/passwd %u
	server role = standalone server
	server string = %h server (Samba, Ubuntu)
	unix password sync = Yes
	usershare allow guests = Yes
	idmap config * : backend = tdb

[storage]
	browseable = Yes
	comment = storage
	valid users = storage
	create mask = 0755
	directory mask = 0755
	path = /zfspool/storage
	read only = No
        veto files = /._*/.DS_Store/.T*/Thumbs.db/Network Trash Folder/Temporary Items/*.exe/*.bat/*.msi
        delete veto files = yes

Очистка pve ноды от кластерных настроек

Актуально только когда на ноде нет виртуальных машин. Если есть, то чуть сложнее. Описано здесь: https://pve.proxmox.com/wiki/Cluster_Manager

systemctl stop pve-cluster
systemctl stop corosync
pmxcfs -l
rm /etc/pve/corosync.conf
rm -r /etc/corosync/*
killall pmxcfs
systemctl start pve-cluster