Skip to content

Latest commit

 

History

History
293 lines (203 loc) · 14.4 KB

README.ru.md

File metadata and controls

293 lines (203 loc) · 14.4 KB

SmallServerAdmin (SSA)

Веб-панель управления для небольших серверов Debian и Ubuntu.

Панель написана на PHP, взаимодействие с сервером осуществляется по SSH.

Панель имеет модульную структуру и позволяет легко добавлять новые и улучшать уже имеющиеся модули.

Особенности

  • Управление пользователями:
    • просмотр, создание, редактирование и удаление пользователей.
  • Управление сайтами:
    • схема работы Nginx или Nginx + Apache;
    • просмотр списка сайтов;
    • редактор файлов конфигурации сайтов;
    • включение и отключение сайтов;
    • создание файлов конфигурации из динамичных шаблонов;
    • удаление сайтов.
  • Управление файлами:
    • просмотр списка файлов и папок;
    • создание новых папок и текстовых файлов;
    • просмотр и редактирование текстовых файлов;
    • перемещение, копирование и удаление файлов и папок;
    • управление разрешениями.
  • Управление сервером SVN:
    • просмотр и редактирование списка пользователей и групп;
    • создание и удаление репозиториев.
  • Мониторинг:
    • просмотр списка процессов;
    • удаление процессов;
    • индикаторы использования ЦП, ОЗУ и жестких дисков.
  • Управление службами: запуск, остановка и перезагрузка служб;
  • Клиент SSH: одностороннее исполнение простых команд.

Лицензия

Исходный код SmallServerAdmin предоставляется на условиях лицензии Apache License Version 2.0.

См. также условия использования компонентов третьих лиц.

Системные требования

Требования к управляемому серверу:

  • Debian 7 или Debian 8, или Ubuntu Server 16;
  • OpenSSH >= 6.7;
  • sudo >= 1.8.10;
  • sysstat >= 11.0.1;
  • Nginx >= 1.6 и/или Apache >= 2.4;
  • htan-runner для ASP.NET FastCGI;
  • См. также файлы README конкретных модулей.

Сама панель управления (SmallServerAdmin) может быть размещена на любом другом сервере.

Требования к серверу для размещения панели управления:

  • Linux, Windows, Mac OS/OS X;
  • Apache и/или Nginx, или IIS, или другой веб-сервер с поддержкой PHP;
  • PHP5 >= 5.5 или PHP7 с модулем ssh2;

Примечание: Работа с младшими версиями не проверялась, но в теории возможна.

Примечание: Для Windows требуется PHP v5.5, с более старшими версиями могут быть проблемы.

Установка и настройка

Настройка управляемого сервера

Если SmallServerAdmin будет располагаться на управляемом сервере, то для её установки и настройки рекомендуется использовать HTAN:

Debian

# требуются права root
su -l root

# обновляем сервер
apt-get update && apt-get upgrade

# устанавливаем необходимые компоненты
apt-get install -y less libpcre3 git

# получаем htan в папку /usr/lib/htan
git clone https://github.com/adminstock/htan.git /usr/lib/htan

# создаем символьные ссылки на htan
[[ -f /sbin/htan ]] || ln -s /usr/lib/htan/run /sbin/htan
[[ -f /usr/sbin/htan ]] || ln -s /usr/lib/htan/run /usr/sbin/htan

# устанавливаем необходимые разрешения
chmod u=rwx /usr/lib/htan/run

# запускаем установку SmallServerAdmin
htan --yes --install=ssa --lang=ru

Ubuntu Server

# обновляем сервер
sudo apt-get update && sudo apt-get upgrade

# устанавливаем необходимые компоненты
sudo apt-get install -y less libpcre3 git

# получаем htan в папку /usr/lib/htan
sudo git clone https://github.com/adminstock/htan.git /usr/lib/htan

# создаем символьные ссылки на htan
[[ -f /sbin/htan ]] || sudo ln -s /usr/lib/htan/run /sbin/htan
[[ -f /usr/sbin/htan ]] || sudo ln -s /usr/lib/htan/run /usr/sbin/htan

# устанавливаем необходимые разрешения
sudo chmod u=rwx /usr/lib/htan/run

# запускаем установку SmallServerAdmin
sudo htan --yes --install=ssa --lang=ru

Установка вручную

Если автоматическая установка для вас не подходит или не работает, панель можно установить вручную.

Для серверов Debian нужно установить sudo:

su -l root -c 'apt-get -y install sudo'

Для Debian и Ubuntu требуется установить пакеты openssh-server и sysstat:

sudo apt-get -y install openssh-server sysstat

Также рекомендуется установить etckeeper:

sudo apt-get -y install etckeeper
[[ ! -d "/etc/.git" ]] && cd /etc && sudo etckeeper init

Для безопасности лучшим решением будет создание отдельного пользователя, от имени которого панель будет работать с сервером.

Например, создадим для SmallServerAdmin пользователя с именем ssa:

sudo adduser ssa --shell /bin/bash --no-create-home --gecos 'SmallServerAdmin'

Примечание: Вы можете использовать любое другое имя.

Предупреждение: Запишите пароль, он понадобится для настройки панели.

Затем необходимо добавить пользователя в группу sudo:

sudo usermod -a -G sudo ssa

И перезапустить sudo:

sudo service sudo restart

Если в настройках сервера SSH ограничен список пользователей, которым разрешено подключение к серверу, то необходимо добавить разрешение для созданного пользователя.

Отктройте файл /etc/ssh/sshd_config:

sudo nano /etc/ssh/sshd_config

Найдите параметр AllowUsers и добавьте туда созданного пользователя:

AllowUsers ssa

Если параметра AllowUsers нет, то ничего делать не нужно.

Примечание: Список пользователей разделяется пробелами. Например: user1 user2 ssa userN.

Настройка SmallServerAdmin

Общие настройки панели располагаются в файле ssa.config.php в переменной $config.

Помимо этого, каждый сервер может иметь собственные настройки, которые располагаются в папке /servers.

Панель имеет модульную структуру и каждый модуль может иметь собственный набор параметров. Настройки модулей могут быть общими для всех серверов (в файле ssa.config.php), либо отдельными для каждого сервера.

Информацию о параметрах модулей можно найти в файлах README конкретных модулей.

SSH

Примечание: Если вы использовали HTAN для установки SmallServerAdmin, то менять параметры SSH не требуется.

Для правильной работы панели, необходимо настроить параметры соединения по SSH.

При первом открытии панели в браузере, вас должно перебросить на страницу управления серверами, где можно добавить и настроить новый сервер. Если этого не произошло, откройте или создайте файл /servers/default.php, и укажите параметры соединения с сервером.

// адрес ssh-сервера (сервер, которым требуется управлять)
$config['ssh_host'] = '192.168.56.139';
// ssh-порт (по умолчанию: 22)
$config['ssh_port'] = '22';
// имя пользователя (например: ssa)
$config['ssh_user'] = 'username';
// пароль пользователя
$config['ssh_password'] = 'password';
// требуется ввод пароля для пользователя sudo или нет
$config['ssh_required_password'] = TRUE;

Если панель испытывает трудности с подключением к серверу, то следует проверить правильность настройки сервера.

Все команды панель выполняются через sudo. Если значение параметра ssh_required_password равняется TRUE, то для каждой команды будет вводится пароль (ssh_password).

Если на сервере нет других пользователей, то можно отключить постоянный ввод пароля. Тогда значение параметра ssh_required_password может равняться FALSE. Помимо этого, необходимо настроить sudo, чтобы он не требовал ввод пароля для пользователя:

sudo bash -c 'echo "ssa ALL=(ALL) NOPASSWD:ALL" | (EDITOR="tee -a" visudo)'

Примечание: В любом случае, для подключения к серверу будет использоваться пароль.

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

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

Модули

В параметре modules можно указать список необходимых модулей, через запятую. Указанный модули будут выводиться в меню навигации.

$config['modules'] = 'users,svn,sites,files,monitoring,services,ssh';

Отсутствие модулей в списке не ограничивает к ним доступ. Просто модуль не будет выводиться в меню.

В файле ssa.config.php указывается список модулей по умолчанию, который будет использоваться для всех серверов, у которых не прописан собственный список модулей.

Модули в меню будет выводиться в том порядке, в котором они указаны в списке.

Виджеты

Некоторые модули могут иметь виджеты, которые выводятся на главной странице панели.

Параметры виджетов находятся в корневом элементе - widgets, где дочерним элементом является имя модуля, к которому принадлежит виджет: $config['widgets']['имяМодуля'].

В настройках каждого виджета обязательно должен присутствовать параметр Enabled, который указывает допустимость вывода виджета на главной странице.

Дополнительно может быть указан параметр Format, который определяет формат вывода виджета.

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

$config['widgets']['monitoring'] = ['Enabled' => TRUE];
$config['widgets']['services'] = [
  'Enabled' => TRUE, 
  'Format' => '<div>%s</div>', 
  'NgInit' => 'SearchString = \'nginx,apache\'; Load()' 
];
$config['widgets']['sites'] = [
  'Enabled' => TRUE, 
  'Format' => '<div>%s</div>'
];

Смотрите также