Настройка сервера файлового хранилища 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