Yashalta2

 
<<< Назад

MD на Proxmox!

Установка "MajorDomo" на "Proxmox" для ночичков от новичка!

Конструктивная критика приветсвуется, т.к. я новичек в MD!

Что такое "Proxmox" и какие нужны минимальные требования смотрите здесь https://ru.wikipedia.org/wiki/Proxmox_Virtual_Envi...
Ниже пример с картинками для понимания как работает "Proxmox". У меня нет опыта установки "Proxmox" на какой либо "RAID". Поэтому в данной инструкции весь диск испытуемого ноутбука отдаем под "Proxmox".
Ставить "Proxmox" будем на мой диназаврик "HP" Presario CQ60 с 2-я GB оперативки но, можно разогнать аж до 4-х! По дефолту шел с "Windows Wista" и т.д. кому интересно полное описание ноута здесь https://www.nix.ru/autocatalog/hp/hp_compaq_notebo...

План изучения "Proxmox":
a. Установим "Proxmox".
b. В "Proxmox" создим контейнер в который установлю "MD" целиком. (В будущем планирую вытащить MySQL отдельно в другой контейнер)
c. Создам резервные копии (BackUp -ы) для каждого контейнера.
d. Научимся восстанавливать из "BackUp-ов".

Устанавливаем "Proxmox"

  1. Скачиваем последнюю версию .iso образа https://ibb.co/kXMkW1r на данный момент это "Proxmox VE 6.1 ISO Installer" сылка на официальный сайт https://www.proxmox.com/en/downloads
  2. Записывайте скаченный образ на флешку. Вставляете в ноут/комп и грузитесь с флешки! https://ibb.co/cLTsKg9
    HDD ноута подготавливать ни как не нужно для установки "Proxmox" т.к. весь жесткий диск отфармотируется и перераспределится сам!
  3. При первом запуске Вас попросят прочитать соглашение, соглашаемся с ним жмем кнопку "I agree" https://ibb.co/fChRKvt
  4. Проверяем, что правильно указан выбранный "HDD", жмем кнопку "NEXT". https://ibb.co/YBgz6Hk
  5. Указываем местоположение и раскладку клавиатуры, жмем кнопку "NEXT". https://ibb.co/WfcppXJ
  6. Прописываем будущий пароль к web морде "Proxmox", и ваш "email", жмем кнопку "NEXT". https://ibb.co/31W0Lhh
  7. Прописываем "IP" по каторому в будущем будет web интерфейс "Proxmox"! так же правильно указываем "IP" Вашего шлюза и маску сети, жмем кнопку "NEXT". https://ibb.co/Jj8Z8t4
  8. Проверяем, что желаемый "IP" и т.п. нужности указанны верно и жмем кнопку "Install". https://ibb.co/23nRY6d
  9. Все, далее Ваше участие в процессе установки "Proxmox" не нужно! Все само настроится https://ibb.co/MhN5xQB
  10. В конце установки Вас попросят перезагрузиться но, сначала выньте установочную флешку и запомните по какому адресу будет доступен "Proxmox"! ВНИМАНИЕ: сейчас вставляем сетевой кабель в ноут если он не вставлен и помним, что доступ будет по httpS://... https://ibb.co/DttFQHK
  11. Перезагружаемся, видим приветственное окно GRUB2, ничего не делаем либо жмем "ENTER" https://ibb.co/thdNsBY
    И на ноуте появиться такая надпись https://ibb.co/nQr3PR4
  12. Открываем на другом компе браузер и в адрессной строке браузера вводим адресс из пункта 10. Браузер заругается, у всех браузеров предупреждение будет по разному, вот к примеру как выглядит в Firefox https://ibb.co/PmDgsnx далее жмем кнопку "Дополнительно..." и жмем кнопку "Принять риск и продолжить" https://ibb.co/cw8pSQ6
  13. В браузере нужно ввести пароль и логин но, сначала выберите русский язык! Далее пользователь "root" и пароль который Вы указали во время установки в пункте №6, жмем кнопку "Вход". https://ibb.co/jwtD73S
  14. Вас встретит предупреждение, просто игнорим его! По поводу этого предупреждения ведуться споры уже не первый год! Я после покажу как от него избавиться если не забуду! https://ibb.co/KmJncgg
    На этом уставнока "Proxmox" закончена!

+++++++++++++++++Eсли у Вас не ноут то, пропускаем этот пункт!++++++++++++++++++++++

Теперь, если закрыть крышку ноута то, он удейт в сон режим! Что бы это не произошло
На самом ноуте где установлен "Proxmox" логинимся, пользователь "root" а пароль из пункта установки №6
далее
nano /etc/systemd/logind.conf
строку #HandleLidSwitch=suspend
приводим к такому виду
HandleLidSwitch=ignore
Ну, или по ssh логинимся в моем случае ssh root@192.168.18.100 и проделываем выше указанные шаги.
Далее нужно перезагрузить ноут, что бы изменения вступили в силу!
Все, теперь ноут нам не нужен! Можно его закинуть под стол/кровать или на шифонер главное, что бы с глаз долой! Это "Proxmox" Вам не скоро понадобиться этот ноут физически! А вот веб интерфейс его, который уже доступен 24/7 нам еще понадобиться.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Теперь создаем контейнер в который установим "MD" целиком.

  1. Скачиваем "Шаблон" Debian 10 из официального репозитория "Proxmox". Для этого выделяем "Local" в моем случае это Local (zerg) - Содержимое - Жмем кнопку "Шаблоны" https://ibb.co/mNd4VNB Далее выбираем "Debian 10" и жмем кнопку "Загрузка" https://ibb.co/j5cZ4mD
  2. Создаем контейнер в который установим "Debian 10" и после на дебиан установим "MD"!
    Жмем кнопку "Создать CТ" https://ibb.co/TLy2ywF Выскочит окшко "Создать: Контейнер LXC" В котором пропишите имя будущего хоста и придумайте пароль, в моем случае "MajorDomo" и пароль "12345", жмем кнопку "Далее" https://ibb.co/rv7HTnM
  3. Выбираем скаченный ранее шаблон "Debian 10", жмем кнопку "Далее" https://ibb.co/fS3ZcFC
  4. Указываем желаемое количество "GB" под систему, жмем кнопку "Далее" https://ibb.co/WFpR3pN
  5. Указываем количество ядер под этот контейнер, если не знаем сколько всего ядер подключаемся по ssh к "Proxmox" и в терминале вводм команду nproc https://ibb.co/0Bv8Ng8
  6. Указываем сколько памяти выделяем этому контейнру, так же подключаемся по ssh к "Proxmox" и в терминале вводм команду к примеру "Htop" но, сначала его нужно будет установить apt install htop https://ibb.co/k8D6jph
  7. Далее устанавливаем настройси сети для этого контейнра! Ставим статический "IP", и пропишем его в таком виде 192.168.18.8/24, так же укажем шлюз и жмем кнопку "Далее" https://ibb.co/T49vysV
  8. В пункте DNS жмем кнопку "Далее". https://ibb.co/DMPJ4J8
  9. На последнем этапе создания контейнера проверяем правильно ли указанны сведения "IP" и т.п. и жмем кнопку "Готово" https://ibb.co/0cKy5Ck
  10. После завершения создания контейнера выдаст "Task OK" далее жмем кнопку "Выход" или крестик https://ibb.co/rd21Hbc
  11. Теперь, что бы увидеть наш созданный контейнер нужно нажать на стрелочку и развернуть элименты https://ibb.co/D4csBjx
  12. Теперь нам нужно включить нами созданный контейнер "MajorDomo", выделяем его и жмем кнопку "Запуск" https://ibb.co/MVRysTG
  13. Этот пункт не обязательный! Но, из моего опыта я бы Вам посоветовал бы, записывать важную информацию в пункте "Заметки" т.к. через пару лет у вас будет n-е количество контейнеров и будет сложно вспомнить пароль от root или т.п. важную информацию, если вдруг Вы захотите, что то добавить в этом контейнере! Дважды кликните мышкой по заметкам... https://ibb.co/ZMWKcHW
  14. Теперь когда мы создали контейнер с "Debian 10" на борту нам нужно к нему подключиться! Из вне мы пока не можем этого сделать из за политики безопасности Debian! Поэтому, открываем консоль из веб. морды "Proxmox" для этого выделяем "консоль" из пункта меню и воодим логин и пароль от контейнера! Пользователь "root" и пароль в моем случае "12345" https://ibb.co/ns0YG6R (Бывает, что консоль открылась но, на черном экране нет ни чего! просто, понажимайте пару раз "Enter")
  15. Далее в консоле вводим команды
    apt update
    и
    apt upgrade
    после открываем файл nano /etc/ssh/sshd_config и раскоментируем строку
    #PermitRootLogin prohibit-password
    и приводим её к такому виду
    PermitRootLogin yes
    Перезагружаем контейнер либо при помощи команды в консоли "reboot" либо при помощи web. морды "Proxmox", правой кнопкой мышы (ПКМ) на созданном контейнере https://ibb.co/3mNmt9s
  16. Теперь можно подключатся к созданному контейнеру из вне! К примеру по ssh root@192.168.18.8 и ставить MD.

Прежде чем развернуть "MD" в нашем контейнере нужно сначала установить нужности такие как LAMP!
Аббревиатура LAMP расшифровывается как Linux, Apache, MySQL, PHP. Данный стек технологий по праву является одним из наиболее популярных в сфере web разработки.

Делайте все как сказанно в инструкции! Там с картинками, не думаю, что возникнут проблемы!
Начните с пукнта "Step 2: Install Apache Web Server on Debian 10"
и до пункта "How to Run PHP-FPM with Apache" его т.е. пункт "How to Run PHP-FPM with Apache" не делаем!
ссылка на инструкцию https://www.linuxbabe.com/debian/install-lamp-stac...

После того как уставнолен "LAMP" устанавливаем phpMyAdmin!
Так же проделайте все указанные шаги по инструкции для установки phpMyAdmin!
Начните с пукнта "Step 1: Download phpMyAdmin on Debian 10 Server"
ПУНКТ 2 НЕ ДЕЛАЕМ! "Step 2: Create a MariaDB Database and User for phpMyAdmin"
Делаем подряд с шага 3 "Step 3: Install Required and Recommended PHP Modules."
и до пункта "Step 5: Access phpMyAdmin From a Sub-domain" его т.е. пункт "Step 5: Access phpMyAdmin From a Sub-domain" не делаем!
ссылка на инструкцию https://www.linuxbabe.com/debian/install-phpmyadmi...

Теперь когда у нас установлен "LAMP" и " phpMyAdmin" создаем пользователя и БД MySQL
Ниже инструкция честно стыренная, автору СПАСИБО!!! Смотрим пункт "Создание пользователя и БД MySQL:" https://kb.mjdm.ru/kak-ustanovit-majordomo-na-linu...
Для начала создадим БД командой:
sudo mysql -uroot -p -e "CREATE DATABASE db_terminal;"
sudo mysql -uroot -p -e "CREATE DATABASE db_terminal;"
После выполнения этой команды, и далее по параграфу, MySQL будет просить ввести пароль пользователя root, который мы указывали выше. Вводим его где будет необходимо и нажимаем Enter.
Важно!!! При вводе пароля символы не будут отображены на экране.
Далее создаём пользователя для работы с этой БД:
sudo mysql -uroot -p -e "CREATE USER 'majordomo'@'%' IDENTIFIED BY 'password';"
sudo mysql -uroot -p -e "CREATE USER 'majordomo'@'%' IDENTIFIED BY 'password';"
password - необходимо заменить на ваш пароль, который тоже необходимо запомнить. Этот пароль будет использоваться для работы MajorDoMo с БД, а так же для входа в phpMyAdmin ниже по инструкции.
Важно!!! Рекомендуется использовать сложный пароль, так как в случае если будет открыт доступ к MajorDoMo и phpMyAdmin извне, то есть вероятность того, что простой пароль будет взломан и тот, кто это сделает, сможет получить доступ к важным данным в Вашей MajorDoMo.
Для предоставления только что созданному пользователю привилегий, необходимо выполнить команду:
sudo mysql -uroot -p -e "GRANT ALL PRIVILEGES ON *.* TO 'majordomo'@'%';"
sudo mysql -uroot -p -e "GRANT ALL PRIVILEGES ON *.* TO 'majordomo'@'%';"
И в завершение, необходимо обновить привилегии:
sudo mysql -uroot -p -e "FLUSH PRIVILEGES;"
sudo mysql -uroot -p -e "FLUSH PRIVILEGES;"

Включаем mod_rewrite
sudo a2enmod rewrite
Перезапускаем Апач
sudo apache2ctl restart

В пункте Настройка PHP Внимание тут немного другие пути до файлов в отличае от инструкции которая здесь! https://kb.mjdm.ru/kak-ustanovit-majordomo-na-linu...
В обоих конфигурационных файлах для web сервера:
sudo nano /etc/php/7.3/apache2/php.ini
И файл запуска php скриптов из командной строки:
sudo nano /etc/php/7.3/cli/php.ini
Строку error_reporting привести к виду
error_reporting = E_ALL & ~E_NOTICE
А так же строки:
max_execution_time - С 30 меняем на 90
max_input_time - С 60 на 180
post_max_size - С 8M на 200M
upload_max_filesize - С 2M на 50M
max_file_uploads - С 20 на 150
Для применения изменений, необходимо перезапустить Apache:
sudo /etc/init.d/apache2 restart

И только сейчас ставим "MajorDoMo”!
Следующие шаги делаем как в пункте “Устанавливаем MajorDoMohttps://kb.mjdm.ru/kak-ustanovit-majordomo-na-linu...
делаем все до красного текста "Дальнейшие команды нужно использовать только в случае если у Вас по какой-то причине система не работает совсем или не работает частично."

Теперь импортируем базу данных в phpmyadmin!
Повторяем все из пункта "Импорт базы данных" https://kb.mjdm.ru/kak-ustanovit-majordomo-na-linu...
ВАЖНО!!! На сайт http://192.168.18.8/phpmyadmin/ Входим под пользователем majordomo тогда будет видна база данных db_terminal !!!
где 192.168.18.8 - это "IP" контейнера на котором установлен phpmyadmin в данной инструкции это тот же контейнер, что и "MD".

Далее делаем все из пункта "Правим основной конфиг" https://kb.mjdm.ru/kak-ustanovit-majordomo-na-linu...
Что бы файл index.html от apache нам жить не мешал удалите его!
sudo rm -f /var/www/html/index.html

Далее пробуем запустить "MD"
В браузере вводим "IP" адрес контейнера с "MD" в моем случе это
http://192.168.18.8/
Веб. морда "MD" поднялась но, отображается не полностью! https://ibb.co/McmV4ST
Это потому, что mod_rewrite не настроен в apache!
Что бы все отображалось нужно содержимое файла 000-default.conf
sudo nano /etc/apache2/sites-available/000-default.conf
привести к такому виду:

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf

        <Directory /var/www/html>
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        AllowOverride All
        </Directory>

</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

После правки файла веб. интерфейс заработает! и в результате Вы получите такой вид https://ibb.co/BNvnrNY и https://ibb.co/HzQjVPb
И как Вы заметели у нас проблемка с webvars цикл остановлен и Нет доступа в Интернет С этим вопросом я обратился на форум и мне все разложили по полочками! Решение тут https://mjdm.ru/forum/viewtopic.php?f=24&t=7053&p=...
Возможно, что после выше описанных шагов у Вас будет выдавать ошибку
main цикл остановлен.. exec цикл остановлен.. scheduler цикл остановлен.. ping цикл остановлен.. webvars цикл остановлен
тогда войдите в консоль и введите команду!
/usr/bin/php /var/www/html/cycle.php
или
sudo php /var/www/html/cycle.php
Посмотри что мешает запускаться!
Так возможно нужно будет добавить команду запуска main цикла в атозагрузку. Создайте скрипт с таким телом

#!/usr/bin/env bash
/usr/bin/php /var/www/html/cycle.php

И добавьте этот скрипт либо в systemd либо в cron!

Создаём резервные копии (BackUp -ы) для каждого контейнера.
Для создания резервной копии контейнра

  1. Выделяем нужный контейнер
  2. Выделяем пункт меню "Резервная копия"
  3. Жмем кнопку "Создать резервную копию сейчас"
    Здесь наглядная картинка https://ibb.co/nDFZ74Y

Восстанавливаем из созданной ранее резервной копии (BackUp)

  1. Останавливаем выбранный контейнер "ПКМ" выключть!
  2. Выделяем пункт меню "Резервная копия"
  3. Выделяем резервную копию.
  4. Жмем кнопку "Восстановить"
    Тут смотрим https://ibb.co/0yTgncY

Еще немного нужностей!
a) Вы всегда можете посмотреть правильно ли Вы указали количетсво ядер или количество оперативной памяти при создании контейнера! https://ibb.co/jTczt5C
b) Если глядя на графики вы поняли, что нужно добавить/убавить что либо то, без проблем в любое время! Дважды кликнув к примеру на "Ядра" установите прямо на "горячую" нужное количествое ядер! https://ibb.co/3pnZTK8
c) Важная фишка! Если Вам нужно, чтобы контейнер запускался сразу после подачи питания на ноут то, нужно установить значение "Да" в пункте "Запуск при загрузке" https://ibb.co/wKF6gCV

Мое мнение после нескольких лет опыта с "Proxmox":
Как по мне это просто Круть! Установил какой либо сервер, настроил его и не трогать! И проработает он до тех пор пока ноут не сломается физически! Если будете обновлять то, будут прилетать новые библиотеки которые не дружат с какими то старыми библиотеками и отсюда падение сервера!
У моего знакомого на "Proxmox -е" установлены сервера с тех времен когда был "Debian 8" как сейчас "Debian 10" и все работает и ни жу-жу!

Ниже список того, что я реализовывал на "Proxmox".
MajorDomo
OpenVPN
Nextcloud
samba
DNLA
Zoneminder
volumio

Если эта статья "зайдет" то, могу в будущем так же пошагово расписать установку чего либо из того что я умею.

Обсуждение (2) (9)

Смотрите так же:
03.07.2021 Ngrok - получаем доступ к web странице MajorDoMo
18.07.2020 Node-red
06.07.2020 NodeMCU прошиваем Tasmota и подключаем к MD.
20.03.2020 Нейронные цветочки (допилено "API"!)

Yashalta, Россия

На форуме: Yashalta