До настоящего момента из более менее удачных веб-консолей для управления основными элементами сервера на базе FreeBSD был только Webmin — поставил и забыл, да еще и бесплатно) Но что стало раздражать — каждая установка это несколько новых папок в совершенно неожиданных местах.. захотелось порядка! (сразу оговорюсь — Ajenti не намного в этом плане ушел от Webmin)
Сейчас появилась альтернатива, пока правда в процессе создания чего то полезного и удобного — Ajenti
Стандартного пакета для FreeBSD у Ajenti нет, но есть способ установки!
И так:
- Обновляем свою FreeBSD
freebsd-update fetch, freebsd-update install
- Обновляем дерево портов и установленные пакеты
portsnap fetch update, portupgrade -a
- Проверяем /etc/hosts на предмет указания имени нашего сервера в формате
servername.domain, а так же наличии 127.0.0.1 localhost
- В /etc/rc прописываем пути для всех наших установленных и поддерживаемых Ajenti пакетов (nginx, apache, mysql & etc), так как Ajenti ищет пакеты по структурам CentOS и т.п.
- Устанавливаем пакеты:
py-lxml, py-pip, py-ldap, jpeg
(посмотреть информацию по портам всегда можно на freshports.org) - После запускаем собственно установку
Ajenti - pip install ajenti
- Далее скачиваем скрипт запуска службы и помещаем его в /etc/rc.d:
wget --no-check-certificate https://raw.github.com/ajenti/ajenti/1.x/packaging/files/ajenti-bsd -O /etc/rc.d/ajenti
- Даем право этому скрипту выполняться:
chmod +x /etc/rc.d/ajenti
- Создаем symlink:
ln -s /usr/local/bin/python2 /usr/bin/python
- Подготавливаем каталоги:
mkdir -p /usr/local/etc/ajenti/
mkdir -p /etc/ajenti/ - Скачиваем конфигурационный файл Ajenti:
wget --no-check-certificate https://github.com/ajenti/ajenti/raw/1.x/config.json -O /usr/local/etc/ajenti/config.json
ln -s /usr/local/etc/ajenti/config.json /etc/ajenti/config.json - Вносим коррективы в конфигурационный файл изменения (по моему опыту — использование сокетов вполне оправданно):
"authentication": true,
и"host" : "/tmp/ajenti.sock",
- «Включаем» автоматический старт Ajenti при запуске системы:
sysrc ajenti_enable="YES"
- Создаем ssl сертификаты:
cd /usr/local/etc/
mkdir ssl
cd /usr/local/etc/ssl
openssl req -new -x509 -nodes -out ajenti.crt -keyout ajenti.key FILL With YOUR INFO
chmod 600 ajenti.key - Устанавливаем (если не установлен) nginx и настраиваем nginx.conf следующим образом:
server {
server_name servername.domain;
listen 443 ssl;
client_max_body_size 20m;
ssl_certificate /usr/local/etc/ssl/ajenti.crt;
ssl_certificate_key /usr/local/etc/ssl/ajenti.key;
location ~ /ajenti.* {
rewrite (/ajenti)$ / break;
rewrite /ajenti/(.*) /$1 break;
proxy_pass http://unix:/tmp/ajenti.sock;
proxy_redirect / /ajenti/;
proxy_set_header Host $host;
proxy_set_header Origin http://$host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
}
} - Корректируем права доступа к Mysql в /etc/ajenti/config.json
- Добавляем Nginx в автозагрузку:
sysrc nginx_enable="YES"
- Перезапускаем сервер
- Проверяем
- После входа — меняем пароль для root (Ajenti)
Спасибо linoxide за базовую статью!
UNIX