Немного полезных заметок по Proxmox

Оцените статью

Так-как я все же решился перенести заметки со старого блога на xWiki сюда, то объединим старые заметки по Proxmox в одну кучу. Часть было написано на этапе внедрения кластера и CEPH, часть просто небольшие заметки на тему украшательства.

Использование логического тома как хранилища для OSD

# ceph auth get client.bootstrap-osd > /var/lib/ceph/bootstrap-osd/ceph.keyring
# ceph-volume lvm create --data pve/ceph
# ceph-volume lvm list
# ceph-volume lvm activate --all

Использование сертификата Let’s encrypt вместо типового (самоподписанного)

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

# apt-get install python3-certbot nginx python3-certbot-nginx

 Обязательно добавляем DNS-запись для хоста который мы будем использовать

Получаем ssl-сертификат в ручном режиме

# certbot certonly --nginx -d srv-prod-pve-01.interlan.xyz

Добавляем в crontab раз в месяц обновление сертификатов

52 6    1 * *   root    certbot renew

Устанавливаем полученный сертификат для хоста Proxmox

Скрипт установки сертификата

#!/bin/sh

cat /etc/letsencrypt/live/srv-prod-pve-01.interlan.xyz/fullchain*.pem > /etc/pve/nodes/srv-prod-pve-01/pve-ssl.pem
cat /etc/letsencrypt/live/srv-prod-pve-01.interlan.xyz/privkey*.pem > /etc/pve/nodes/srv-prod-pve-01/pve-ssl.key
service pveproxy restart

exit 0

Аналогично добавляем в crontab обновление сертификатов в проксмоксе после обновления летс-енкриптовых

527    1 * *   root    /opt/scripts/update-ssl.sh

Теперь можем ходить в web-интерфейс проксмокс без предупреждений, что этот сайт подделка

Ошибка при обновлении без подписки (Enterprise repository needs valid subscription)

Описание проблемы

В типовой установке без активированной коммерческих подписок невозможно обновить Proxmox, так как доступ к репозитарию заблокирован. Это приводит к ежедневным ошибкам, которые несколько подбешивают (мне для тестов коммерческий саппорт не нужен).

В консоли это соответственно выглядит следующим образом.

# apt-get update
Hit:1 http://security.debian.org bullseye-security InRelease                                                        
Hit:2 http://ftp.ru.debian.org/debian bullseye InRelease                                                            
Get:3 http://ftp.ru.debian.org/debian bullseye-updates InRelease [44,1 kB]
Err:4 https://enterprise.proxmox.com/debian/pve bullseye InRelease                                                                              
  401  Unauthorized [IP: 212.224.123.70 443]
Reading package lists... Done                                                                                                                   
E: Failed to fetch https://enterprise.proxmox.com/debian/pve/dists/bullseye/InRelease  401  Unauthorized [IP: 212.224.123.70 443]
E: The repository 'https://enterprise.proxmox.com/debian/pve bullseye InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Решение проблемы

Удаляем коммерческий репозитарий:

# rm /etc/apt/sources.list.d/pve-enterprise.list

Приводим список репозитариев в файле /etc/apt/sources.list к виду:

deb http://ftp.debian.org/debian bullseye main contrib
deb http://ftp.debian.org/debian bullseye-updates main contrib
# PVE pve-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription
# security updates
deb http://security.debian.org/debian-security bullseye-security main contrib

Обновляем репозитарии и систему:

# apt-get update
# apt-get upgrade

Разблокировка виртуальной машины (TASK ERROR: VM is locked (clone))

В консоли хоста выполните команду:

# qm unlock 107

Где 107 в моем случае это идентификатор заблокированной машины.

Сообщение «A newer version was installed but old version still running» в CEPH

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

Первым делом запрашиваем названия сервисов на проблемных узлах.

# systemctl | grep ceph-
...
  ceph-mds@sms-pve-02.service                                                              loaded active     running   Ceph metadata server daemon
  ceph-mgr@sms-pve-02.service                                                              loaded active     running   Ceph cluster manager daemon
  ceph-mon@sms-pve-02.service                                                              loaded active     running   Ceph cluster monitor daemon

...

Перезапускаем сервисы (им необходимо отправить именно restart)

# systemctl restart ceph-mds@sms-pve-02.service
# systemctl restart ceph-mgr@sms-pve-02.service
# systemctl restart ceph-mon@sms-pve-02.service

Проверяем, что все позеленело.

Удаление хранилища local-lvm и создание раздела для ceph

Удаление раздела в GUI

  1. Datacenter > Storage.
  2. Выбираем local-lvm.
  3. Нажимаем удалить и подтверждаем.

Удаляем том pve-data:

# lvremove /dev/mapper/pve-data

Устранение дублирования IP-адресов при клонировании виртуальной машины

Удаляем текущий уникальный идентификатор виртуальной машины

# rm /etc/machine-id

Генерируем новый уникальный идентификатор

# systemd-machine-id-setup

Устранение ошибки NO_PUBKEY 0D9A1950E2EF0603

# sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0D9A1950E2EF0603
# apt-get update

Устранение ошибки «unable to find VM» при резервном копировании

Правим в консоли файл /etc/pve/jobs.cfg:

vzdump: backup-36d495b0-326f
        schedule 21:40
        compress gzip
        enabled 1
        mailnotification always
        mailto tech@smsfinance.ru
        mode snapshot
        prune-backups keep-last=3,keep-monthly=1
        storage backup-nfs
        vmid 104,111,113,116,114,102,110

 Изменения через corosync автоматически распространяются на все узлы кластера.

Похожие записи

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

GlusterFS — это масштабируемая, распределённая файловая система с открытым исходным кодом, которая объединяет хранилища нескольких серверов в единое пространство имён. Она идеально подходит для создания отказоустойчивых и высокопроизводительных хранилищ, особенно…

Разворачиваем Managed Kubernetes в облаке Selectel

В предыдущих статьях я уже писал подробную инструкцию как развернуть Managed Kubernetes в облаке Cloud.ru и сегодня давайте рассмотрим аналогичную операцию, но уже для облака Selectel. Kubernetes — популярный инструмент…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Как проверить работу камеры в Ubuntu Linux: диагностика USB и встроенных веб-камер

Как проверить работу камеры в Ubuntu Linux: диагностика USB и встроенных веб-камер

Полное руководство по установке Docker, Docker Compose, kubectl, Helm и k9s в Linux

Полное руководство по установке Docker, Docker Compose, kubectl, Helm и k9s в Linux

Настройка маршрутизации через VipNet: пошаговое руководство для RedOS

Настройка маршрутизации через VipNet: пошаговое руководство для RedOS