Установка Ajenti на FreeBSD (Install ajenti on FreeBSD)

Ajenti — веб-консоль для управления вашим сервером FreeBSD

До настоящего момента из более менее удачных веб-консолей для управления основными элементами сервера на базе FreeBSD был только Webmin — поставил и забыл, да еще и бесплатно) Но что стало раздражать — каждая установка это несколько новых папок в совершенно неожиданных местах.. захотелось порядка! (сразу оговорюсь — Ajenti не намного в этом плане ушел от Webmin)

Сейчас появилась альтернатива, пока правда в процессе создания чего то полезного и удобного — Ajenti

Стандартного пакета для FreeBSD у Ajenti нет, но есть способ установки!

И так:

  1. Обновляем свою FreeBSD
    freebsd-update fetch, freebsd-update install
  2. Обновляем дерево портов и установленные пакеты
    portsnap fetch update, portupgrade -a
  3. Проверяем /etc/hosts на предмет указания имени нашего сервера в формате
    servername.domain, а так же наличии 127.0.0.1 localhost
  4. В /etc/rc прописываем пути для всех наших установленных и поддерживаемых Ajenti пакетов (nginx, apache, mysql & etc), так как Ajenti ищет пакеты по структурам CentOS и т.п.
  5. Устанавливаем пакеты:
    py-lxml, py-pip, py-ldap, jpeg
    (посмотреть информацию по портам всегда можно на freshports.org)
  6. После запускаем собственно установку
    Ajenti - pip install ajenti
  7. Далее скачиваем скрипт запуска службы и помещаем его в /etc/rc.d:
    wget --no-check-certificate https://raw.github.com/ajenti/ajenti/1.x/packaging/files/ajenti-bsd -O /etc/rc.d/ajenti
  8. Даем право этому скрипту выполняться:
    chmod +x /etc/rc.d/ajenti
  9. Создаем symlink:
    ln -s /usr/local/bin/python2 /usr/bin/python
  10. Подготавливаем каталоги:
    mkdir -p /usr/local/etc/ajenti/
    mkdir -p /etc/ajenti/
  11. Скачиваем конфигурационный файл 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
  12. Вносим коррективы в конфигурационный файл изменения (по моему опыту — использование сокетов вполне оправданно):
    "authentication": true,
    и
    "host" : "/tmp/ajenti.sock",
  13. «Включаем» автоматический старт Ajenti при запуске системы:
    sysrc ajenti_enable="YES"
  14. Создаем 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
  15. Устанавливаем (если не установлен) 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;
    }
    }
  16. Корректируем права доступа к Mysql в /etc/ajenti/config.json
  17. Добавляем Nginx в автозагрузку:
    sysrc nginx_enable="YES"
  18. Перезапускаем сервер
  19. Проверяем
  20. После входа — меняем пароль для root (Ajenti)

Спасибо linoxide за базовую статью!

UNIX