{{description>Описание простой установки и первоначальной настройки MeshCentral на CentOS Linux.}}
====== Установка MeshCentral в Centos 7+ ======
[[http://wiki.mihanik.net/doku.php?id=web-серверы_и_движки:meshcentral:установка_meshcentral_в_centos_7&do=export_pdf|Экспорт в PDF ]] ~~ODT~~
Дата создания: 2022/12/05 13:13 (C) mihanik
===== Определяем имя и адрес сервера в файле hosts =====
Добавляем информацию об имени и IP нашего сервера в файл **/etc/hosts**.
Для этого узнаём имя сервера
hostname
У меня имя сервера получилось такое: **meshcentral.mihanik.net**
и его адрес в локальной сети
ifconfig
В моём случае адрес оказался таким: **192.168.69.94**
Теперь добавляем информацию о нашем сервере непосредственно в файл **/etc/hosts**
echo 192.168.69.94 meshcentral meshcentral.mihanik.net >> /etc/hosts
Важно! \\ Если этого не сделать, то чуть позже мы можем получить проблемы при запуске MeshCentral
Заметьте, что в файл **/etc/hosts** имя сервера вносится в двух видах: просто имя сервера, имя сервера с указанием его домена!
Если предположить, что адресация в вашей сети начинается с триады **192.**, и у вас есть виртуальная сеть **192.168.122.0/24**, которую не нужно брать в расчёт, то можно всё автоматизировать одной командой
echo `ifconfig | grep '192\.[0-9]*\.[0-9]*\.[0-9]*' -o | grep -v .255 | grep -v .122.` `hostname` >> /etc/hosts
===== Устанавливаем зависимости =====
Для работы MeshCentral необходимы пакеты nodejs и npm.
yum -y install nodejs npm
===== Настроим межсетевой экран =====
Откроем порты 80 (HTTP) и 443 (HTTPS)
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload
===== Установим MeshCentral =====
mkdir /opt/meshcentral
cd /opt/meshcentral
npm install meshcentral
===== Делаем пробный запуск MeshCentral =====
cd /opt/meshcentral
node node_modules/meshcentral
===== Проверяем работу MeshCentral =====
Для проверки работы MeshCentral достаточно подключиться к нему с помощью браузера. В моём случае я открываю в браузере адрес [[https://meshcentral.mihanik.net]]
{{ :web-серверы_и_движки:meshcentral:meshcentral-01.png?direct&600 |}}
Важно! При первом входе нужно создать учётную запись администратора, которая будет иметь полные права в этой системе.
После успешного подключения к MeshCentral и создания учётной записи администратора можно остановить его работу переключившись в консоль и подав комбинацию клавишей **+**
===== Делаем минимальные настройки MeshCentral =====
Открываем вашим любимым текстовым редактором файл **/opt/meshcentral/meshcentral-data/config.json**. Мне нравится **mcedit**, поэтому я подаю команду
**Важно!** \\ Файл с именем **/opt/meshcentral/meshcentral-data/config.json** создается **ТОЛЬКО ПОСЛЕ ТЕСТОВОГО ЗАПУСКА**!!! Если вы не делали тестовый запуск, то этого файла вы не найдёте!!!
mcedit /opt/meshcentral/meshcentral-data/config.json
Ищем в файле раздел **domains** и указываем там значение **title**
В моём случае получилось так:
"domains": {
"": {
"title": "meshcentral.mihanik.net",
"_title2": "Servername",
"_minify": true,
"_newAccounts": true,
"_userNameIsEmail": true
}
После этого в разделе **settings** устанавливаем значение **cert**.
В моём случае получилось так:
"settings": {
"cert": "meshcentral.mihanik.net",
"_WANonly": true,
"_LANonly": true,
"_sessionKey": "MySuperSycretPassw0rd",
"_port": 443,
"_aliasPort": 443,
"_redirPort": 80,
"_redirAliasPort": 80,
"ignoreagenthashcheck": true
},
**Важно!** \\ Если не установить значение **cert**, то MeshCentral будет работать только в LAN-mode, т.е. сервер и агенты MeshCentral будут друг друга искать **ТОЛЬКО с помощью широковещательных запросов**, что возможно только в локальной сети. Если же у вас несколько подсетей и между ними не настроен обмен широковещательными пакетами, то агенты MeshCentral из соседних сетей **НЕ СМОГУТ** найти сервер MeshCentral и, соответственно, зарегистрироваться на нём.
===== Настроим автозапуск MeshCentral в качестве демона =====
cat > /usr/lib/systemd/system/meshcentral.service <<_EOF_
[Unit]
Description=My MeshCentral Server
After=network.target remote-fs.target nss-lookup.target syslog.target
[Service]
Type=simple
LimitNOFILE=1000000
ExecStart=/usr/bin/node node_modules/meshcentral
WorkingDirectory=/opt/meshcentral
Environment=NODE_ENV=production
User=root
Group=root
Restart=always
# Restart service after 10 seconds if node service crashes
RestartSec=10
# Set port permissions capability
AmbientCapabilities=cap_net_bind_service
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
TimeoutSec=300
KillSignal=SIGINT
PrivateTmp=true
[Install]
WantedBy=multi-user.target
_EOF_
systemctl daemon-reload
systemctl enable meshcentral.service
systemctl start meshcentral.service
===== Все команды одним куском =====
# Устанавливаем зависимости
yum -y install nodejs npm
# Настраиваем межсетевой экран
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload
# Устанавливаем meshcentral
mkdir /opt/meshcentral
cd /opt/meshcentral
npm install meshcentral
# Тестовый запуск
node node_modules/meshcentral
# Делаем настройки meshcentral
mcedit /opt/meshcentral/meshcentral-data/config.json
# Настраиваем запуск meshcentral в качестве демона, а потом его запускаем
cat > /usr/lib/systemd/system/meshcentral.service <<_EOF_
[Unit]
Description=My MeshCentral Server
After=network.target remote-fs.target nss-lookup.target syslog.target
[Service]
Type=simple
LimitNOFILE=1000000
ExecStart=/usr/bin/node node_modules/meshcentral
WorkingDirectory=/opt/meshcentral
Environment=NODE_ENV=production
User=root
Group=root
Restart=always
# Restart service after 10 seconds if node service crashes
RestartSec=10
# Set port permissions capability
AmbientCapabilities=cap_net_bind_service
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
TimeoutSec=300
KillSignal=SIGINT
PrivateTmp=true
[Install]
WantedBy=multi-user.target
_EOF_
systemctl daemon-reload
systemctl enable meshcentral.service
systemctl start meshcentral.service
===== Всё =====
Как видим, всё устанавливается очень просто.
;-)
===== UPD =====
С недавнего времени рекомендую устанавливать Meshcentral на Centos 8, т.к разработчик перешёл на использование более новой версии **npm**, которая по умолчанию отсутствует в Centos 7.
[[#top| Наверх ]]