Установка "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"
+++++++++++++++++Eсли у Вас не ноут то, пропускаем этот пункт!++++++++++++++++++++++
Теперь, если закрыть крышку ноута то, он удейт в сон режим! Что бы это не произошло
На самом ноуте где установлен "Proxmox" логинимся, пользователь "root" а пароль из пункта установки №6
далее
nano /etc/systemd/logind.conf
строку #HandleLidSwitch=suspend
приводим к такому виду
HandleLidSwitch=ignore
Ну, или по ssh логинимся в моем случае ssh root@192.168.18.100 и проделываем выше указанные шаги.
Далее нужно перезагрузить ноут, что бы изменения вступили в силу!
Все, теперь ноут нам не нужен! Можно его закинуть под стол/кровать или на шифонер главное, что бы с глаз долой! Это "Proxmox" Вам не скоро понадобиться этот ноут физически! А вот веб интерфейс его, который уже доступен 24/7 нам еще понадобиться.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Теперь создаем контейнер в который установим "MD" целиком.
apt update
apt upgrade
#PermitRootLogin prohibit-password
PermitRootLogin yes
Прежде чем развернуть "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”!
Следующие шаги делаем как в пункте “Устанавливаем MajorDoMo” https://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 -ы) для каждого контейнера.
Для создания резервной копии контейнра
Восстанавливаем из созданной ранее резервной копии (BackUp)
Еще немного нужностей!
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
Если эта статья "зайдет" то, могу в будущем так же пошагово расписать установку чего либо из того что я умею.
Yashalta, Россия
На форуме: Yashalta