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

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску
(Автоматический скрипт для запуска из pmagic)
(Автоматический скрипт для запуска из pmagic)
Строка 4: Строка 4:
  
 
<pre>
 
<pre>
 +
MACHINE_NAME='pve-prdb-01'
 
DISK='/dev/nvme0n1'
 
DISK='/dev/nvme0n1'
 
DISKDIR='/mnt/d'
 
DISKDIR='/mnt/d'
Строка 40: Строка 41:
 
mount /dev/mapper/pve--vg-root $DISKDIR
 
mount /dev/mapper/pve--vg-root $DISKDIR
  
 
+
# detect ip
 
 
 
 
 
 
TEMPLATENAME=$1
 
 
IP=$(ip a | grep eth0 | tail -1 | awk {'print $2'} | awk -F '/' {'print $1'})
 
IP=$(ip a | grep eth0 | tail -1 | awk {'print $2'} | awk -F '/' {'print $1'})
  
 +
# replace template config
 
cd $DISKDIR/opt/node_template_config
 
cd $DISKDIR/opt/node_template_config
tar -czpf $DISKDIR/opt/node_template_config/etc_backup_$(date +%s).tgz \
 
/etc/hosts /etc/hostname /etc/mailname \
 
/etc/postfix/main.cf \
 
/var/lib/rrdcached/db/pve2-node \
 
/var/lib/rrdcached/db/pve2-storage
 
 
rm -r /var/lib/rrdcached/db/pve2-node/$TEMPLATENAME
 
rm -r /var/lib/rrdcached/db/pve2-storage/$TEMPLATENAME
 
  
mv /var/lib/rrdcached/db/pve2-node/pve-analise-xx /var/lib/rrdcached/db/pve2-node/$TEMPLATENAME
+
rm -r $DISKDIR/var/lib/rrdcached/db/pve2-node/$MACHINE_NAME
mv /var/lib/rrdcached/db/pve2-storage/pve-analise-xx /var/lib/rrdcached/db/pve2-storage/$TEMPLATENAME
+
rm -r $DISKDIR/var/lib/rrdcached/db/pve2-storage/$MACHINE_NAME
  
rm -r /var/lib/rrdcached/db/pve2-node/pve-analise-xx
+
mv $DISKDIR/var/lib/rrdcached/db/pve2-node/pve-analise-xx $DISKDIR/var/lib/rrdcached/db/pve2-node/$MACHINE_NAME
rm -r /var/lib/rrdcached/db/pve2-storage/pve-analise-xx
+
mv $DISKDIR/var/lib/rrdcached/db/pve2-storage/pve-analise-xx $DISKDIR/var/lib/rrdcached/db/pve2-storage/$MACHINE_NAME
  
cd /
+
cd $DISKDIR/
tar -xzpf /opt/node_template_config/etc.tgz
+
tar -xzpf $DISKDIR/opt/node_template_config/etc.tgz
  
sed -i "s/TEMPLATENAME/$TEMPLATENAME/g" /etc/hosts
+
sed -i "s/MACHINE_NAME/$MACHINE_NAME/g" $DISKDIR/etc/hosts
 
sed -i "s/TEMPLATEIPADDR/$IP/g" /etc/hosts
 
sed -i "s/TEMPLATEIPADDR/$IP/g" /etc/hosts
sed -i "s/TEMPLATENAME/$TEMPLATENAME/g" /etc/hostname
+
sed -i "s/MACHINE_NAME/$MACHINE_NAME/g" $DISKDIR/etc/hostname
sed -i "s/TEMPLATENAME/$TEMPLATENAME/g" /etc/mailname
+
sed -i "s/MACHINE_NAME/$MACHINE_NAME/g" $DISKDIR/etc/mailname
sed -i "s/TEMPLATENAME/$TEMPLATENAME/g" /etc/postfix/main.cf
+
sed -i "s/MACHINE_NAME/$MACHINE_NAME/g" $DISKDIR/etc/postfix/main.cf
 
 
echo "Please reboot system!"
 
 
 
 
 
  
  
 +
#reboot
  
 
</pre>
 
</pre>

Версия 13:04, 31 мая 2021

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

Автоматический скрипт для запуска из pmagic

MACHINE_NAME='pve-prdb-01'
DISK='/dev/nvme0n1'
DISKDIR='/mnt/d'

# fix
gdisk $DISK <<EOF
x
e
w
Y
EOF

# resize lvm partition
gdisk $DISK <<EOF
d
3
n
3



w
Y
EOF

# refresh partitions
partprobe

# resize pv
pvresize "${DISK}p3"


# check rootfs and mount
fsck.ext4 -y /dev/mapper/pve--vg-root
mkdir $DISKDIR
mount /dev/mapper/pve--vg-root $DISKDIR

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

# replace template config
cd $DISKDIR/opt/node_template_config

rm -r $DISKDIR/var/lib/rrdcached/db/pve2-node/$MACHINE_NAME
rm -r $DISKDIR/var/lib/rrdcached/db/pve2-storage/$MACHINE_NAME

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/MACHINE_NAME/$MACHINE_NAME/g" $DISKDIR/etc/hosts
sed -i "s/TEMPLATEIPADDR/$IP/g" /etc/hosts
sed -i "s/MACHINE_NAME/$MACHINE_NAME/g" $DISKDIR/etc/hostname
sed -i "s/MACHINE_NAME/$MACHINE_NAME/g" $DISKDIR/etc/mailname
sed -i "s/MACHINE_NAME/$MACHINE_NAME/g" $DISKDIR/etc/postfix/main.cf


#reboot

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

apve3: /mnt/samba/fdisk3/pve-node-template-image.dd

Набор действий (вручную) для настройки одного узла

Всё из-под пользователя

root

Переименовать машину

export NEWNAME='pve-prdb-xx'
hostnamectl set-hostname $NEWNAME

, где:

xx

это порядковый номер машины

Подвинуть раздел lvm до конца физического диска

#############
# Внимание! #
#############
Операции из этого раздела лучше сразу выполнить из partedmagic, чтобы не перезагружаться

Вручную

Запустить gparted и подвинуть раздел с lvm до конца физического диска

Командой

fdisk /dev/nvme0n1 <<EOF
d
3
n
3


N
w
EOF

Далее из под рута дать команды:

lvcreate pve-vg --name vmstorage -L 400g
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 corosync
pmxcfs -l
cp -rp /etc/pve/nodes/pve-analise-xx /etc/pve/nodes/ИМЯ_УЗЛА
killall pmxcfs
reboot

Внимание! Имя узла должно быть такое же, как в команде переименования!