Настройка сервера файлового хранилища ABF

Материал из Rosalab Wiki
Перейти к: навигация, поиск

Подготовка окружения

Производится аналогично подготовке окружения при установке сервера - см. Подготовка окружения для RELS Подготовка окружения для Ubuntu

Подготовка сервера к развертыванию файлового хранилища

  • Создаем директории, в которых будут размещаться файлы:
 sudo mkdir -p /srv/rosa_file_store/shared/tmp && sudo chown -R rosa:rosa /srv
  • Настраиваем SSH-доступ для пользователя rosa:
 sudo mkdir -p /home/rosa/.ssh && sudo touch /home/rosa/.ssh/authorized_keys &&
 sudo chmod 600 /home/rosa/.ssh/authorized_keys &&
 sudo chown -R rosa:rosa /home/rosa
  • Добавьте ваш публичный ключ в файл ~rosa/.ssh/authorized_keys, чтобы иметь возможность заходить на сервер по SSH под пользователем rosa

Конфигурируем PostgreSQL

  • Переключаемся на пользователя postgres
 sudo su postgres
  • Создаем пользователя rosa в PostgreSQL (в примере используется пароль 'rosa'), на вопросы о правах суперпользователя и возможности создания новых ролей отвечаем "no"
createuser -D -P -E -e rosa
Enter password for new role: rosa
Enter it again: rosa
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
  • Создаем базу данных:
createdb -O rosa -e rosa_file_store

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

mkdir /home/rosa/nginx
sudo -i
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.31.tar.gz
tar -xf pcre-8.31.tar.gz
cd /home/rosa/nginx/pcre-8.31
./configure
make && make install
cd ..
wget http://nginx.org/download/nginx-1.3.8.tar.gz
tar -xf nginx-1.3.8.tar.gz
wget https://github.com/downloads/masterzen/nginx-upload-progress-module/nginx_uploadprogress_module-0.9.0.tar.gz
wget http://www.grid.net.ru/nginx/download/nginx_upload_module-2.2.0.tar.gz
tar -xf nginx_uploadprogress_module-0.9.0.tar.gz
tar -xf nginx_upload_module-2.2.0.tar.gz
cd /home/rosa/nginx/nginx-1.3.8
./configure --prefix=/usr/share/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_flv_module \
--with-http_ssl_module \
--with-http_gzip_static_module \
--add-module=/home/rosa/nginx/modules/upload \
--add-module=/home/rosa/nginx/modules/upload-progress \
make && make install
## fix nginx: error while loading shared libraries:
## libpcre.so.1: cannot open shared object file: No such file or directory
ln -s /usr/local/lib/libpcre.so.1 /lib64
  • Добавляем nginx в список сервисов, запускаемых при загрузке системы:
sudo chkconfig --levels 2345 nginx on
service nginx stop
service nginx start

Конфигурируем iptables

В файле /etc/sysconfig/iptables добавляем строку

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

Перезапускаем сервис iptables:

sudo service iptables restart

Запуск сервера файлового хранилища

На машине, используемой для разработки ABF:

cap production deploy:setup
cap production deploy:check
cap production deploy:update

На сервере:

cd /srv/rosa_file_store/current && RAILS_ENV=production bundle exec rake db:seed

При необходимости, обновляем конфигурационные файлы:

/srv/rosa_file_store/shared/config/application.yml
/srv/rosa_file_store/shared/config/newrelic.yml

Собственно запуск:

cap production deploy:start