Установка панели управления WebVZ для OpenVZ
Большая благодарность Администратору хостинга hostinghutor.com
Для установки необходимо установить ROR на сервере.
В качестве веб-сервера рекомендуется использовать Apache или nginx с модулем Phusion Passenger.
Будем собирать rpm Nginx + Phusion Passenger.
Устанавливаем необходимые дополнительные утилиты и компиляторы:
# yum -y install rpm-build # yum -y install make gcc gcc-c++ # yum -y install pcre-devel zlib-devel openssl-devel git
Устанавливаем ruby и сопутствующие модули
# yum -y install ruby ruby-devel rubygems rubygem-rails rubygem-fastthread rubygem-sqlite3-ruby # yum -y install python-curl perl-WWW-Curl
Скачиваем nginx.src.rpm
# wget http://centos.alt.ru/pub/nginx/0.8/RHEL/SRPMS/nginx-0.8.53-2.el5.src.rpm
Устанавливаем src.rpm
# rpm -ivh nginx-0.8.53-2.el5.src.rpm
После выполнения данной операции исходники nginx, а также скрипты были установлены в /usr/src/redhat/SOURCES/, а spec файл (инструкция для сборки rpm пакета) в /usr/src/redhat/SPECS/
Редактируем файл nginx.spec под наши нужды
--add-module=%{_builddir}/passenger/ext/nginx \
В папку /usr/src/redhat/BUILD скачиваем архив passenger
# cd /usr/src/redhat/BUILD ! На версии Phusion Passenger 3.0.0 у меня не заработало ! # wget http://rubyforge.org/frs/download.php/71376/passenger-2.2.15.tar.gz # tar xvf passenger-3.0.0.tar.gz # mv passenger-3.0.0 passenger
Собираем rpm nginx
# rpmbuild -ba --target=i686 nginx.spec
rpm nginx будет в папке /usr/src/redhat/RPMS/i686
# rpm -ivh nginx-0.8.53-2.i686.rpm
Проверяем конфигурацию на ошибки, ставим nginx в автозагрузку, стартуем nginx
# nginx -t # chkconfig nginx on # service nginx start
Конфигурация Nginx
user nginx; worker_processes 10; worker_rlimit_nofile 100000; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; use epoll; } http { passenger_root /usr/local/passenger; passenger_default_user root; passenger_ruby /usr/local/passenger/ruby.sh; include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; server_tokens off; keepalive_timeout 65; # Load config files from the /etc/nginx/conf.d directory include /etc/nginx/conf.d/*.conf; server { listen 3000; server_name _; root /usr/local/webvz/public; passenger_enabled on; rails_env development; location / { passenger_enabled on; } } }
Копируем папку /usr/src/redhat/BUILD/passenger в папку /usr/local
В папку /usr/local/passenger прописываем скрипт ruby.sh
#!/bin/bash export PATH=$PATH:/usr/sbin:/sbin /usr/bin/ruby $1
Устанавливаем права 755 на данный файл
# chmod 755 ruby.sh
Устанавливаем WebVZ
# cd /usr/local/ # git clone https://github.com/shuaibzahda/webvz.git
Так как у нас версия rubygem-rails-2.1.1
# rpm -qa | grep rubygem-rails rubygem-rails-2.1.1-2.el5
В файле /usr/local/webvz/config/environment.rb меняем версию:
RAILS_GEM_VERSION = '2.1.1' unless defined? RAILS_GEM_VERSION
Заходим на страницу WebVZ
http://ip.ip.ip.ip:3000 Username: admin Password: admin123
Панель автоматически определила все виртуальные машины
OpenVZ Control panels
WebVZ: homepage Version 2.0 released September 7, 2008. Requires Ruby on Rails. — Замороженный проэкт
В следующем посте рассмотрим активно развивающуюся контрольную панель для OpenVZ – OpenVZ Web Panel , тем более что автор обещает в скором времени зарелизить версию 1.6
Development of version 1.6 is almost finished and I'm ready to release it. It will be released in the nearest weekend. Before that there is a time to fix bugs and to update translations.