Как да инсталираме Redmine върху Amazon Web Services (AWS) - Ubuntu 18.04 LTS - Част 1

Има две основни опции за инсталиране на Redmine в Amazon Web Services (AWS):
- Използване на обикновен AWS Linux инстанция (EC2 или Lightsail) и ръчно инсталиране на Redmine, или
- Използване на предварително конфигурирана инстанция на Redmine Lightsail, която се инсталира с едно натискане на бутон.
Ако изберем първата опция, ще имаме пълен контрол върху всеки аспект на нашето развитие на Redmine. От друга страна, втората опция предлага бързо и лесно решение за инсталиране на Redmine за минути, без да се занимаваме с всички детайли за инсталиране и конфигуриране.
Първата част от този урок описва как да инсталирате Redmine на обикновена AWS Linux инстанция.
Изисквания
Преди да започнете процеса, уверете се, че са изпълнени следните изисквания:
- Имате акаунт в Amazon Web Services с административни права.
- Имате домейн име за вашето приложение Redmine, като например redmine.mydomain.com.
- Имате достъп до конфигурацията на DNS за вашия домейн.
Инсталиране на Redmine на обикновена Linux EC2 или LightSail инстанция
За целите на този урок предполагаме, че вече сте стартирали AWS EC2 или Lightsail инстанция, която работи с Ubuntu 18.04 LTS.
Ще инсталираме Redmine на тази Linux инстанция, използвайки база данни MySQL, уеб сървър NGINX и приложен сървър Phusion Passenger.
Конфигуриране на DNS сървър
Преди да се свържете с вашата инстанция, трябва да конфигурирате вашия DNS. Създайте DNS запис за вашето домейн име на Redmine (redmine.mydomain.com), който да сочи към публичния IP адрес на вашия AWS Linux инстанция.
Това може да стане чрез услугата AWS Route 53.
Инсталиране и конфигуриране на базата данни MySQL
1. Инсталиране на MySQL сървър:
sudo apt update
sudo apt install mysql-server mysql-client
2. Извършване на първоначалната конфигурация на MySQL сървъра:
sudo mysql_secure_installation
Ще бъдете помолени за:
- активиране на VALIDATE PASSWORD PLUGIN (кажете да и изберете силни пароли)
- избор на парола за root потребителя.
- премахване на анонимни потребители (кажете да).
- забрана на отдалечен достъп на root (кажете не, ако планирате да се свържете към базата данни отвън вашата Ubuntu Linux инстанция, кажете да в противен случай).
3. Проверете дали MySQL сървърът работи:
sudo systemctl status mysql
(трябва да видите active (running) като част от отговора на командата)
4. Създайте нова база данни и нов потребител на базата данни за Redmine:
sudo mysql
mysql > CREATE DATABASE redminedb CHARACTER SET utf8mb4;
mysql > GRANT ALL ON redminedb.* TO 'redminedbusr'@'localhost' IDENTIFIED BY 'password';
mysql > flush priviledges;
mysql > EXIT
Инсталиране на Ruby
Инсталирайте стандартната версия на Ruby за вашия Linux дистрибутор. Ако имате нужда от различна версия, можете да използвате RVM (Ruby Version Manager).
1. Инсталиране на Ruby:
Инсталирайте най-новата версия на Ruby чрез Rbenv или RVM.
RVM
1. Инсталирайте rvm, стартирайте го, добавете го към автоматичното стартиране
curl -sSL https://get.rvm.io | sudo bash -s master
source /etc/profile.d/rvm.sh
echo '[[ -s "/etc/profile.d/rvm.sh" ]] && source "/etc/profile.d/rvm.sh"' >> ~/.bashrc
2. Създайте потребител "easy" (или можете да го наименувате както желаете, важното е, този потребител ще работи с вашия Redmine приложение, а не потребителят root. Това трябва да се направи за съображения за сигурност)
useradd -m -G rvm -s /bin/bash easy
Също така трябва да добавите потребителя "easy" към групата sudoers (трябва да позволите на този потребител да изпълнява някои команди от sudo)
usermod -a -G sudo easy
Ако сте го направили, може да пропуснете следващата стъпка, защото след тази команда потребителят ви е в правилната група. Превключете към този потребител
su - easy
3. Добавете потребителя към групата rvm
usermod -a -G rvm easy
Също така трябва да добавите потребителя "easy" към групата sudoers (трябва да позволите на този потребител да изпълнява някои команди от sudo)
usermod -a -G sudo easy
Превключете към потребител "easy"
su - easy
4. Инсталирайте Ruby
rvm install 2.6 --patch railsexpress
5. Инсталирайте git
sudo apt-get install git
6. Задайте Ruby 2.6 като по подразбиране
rvm use 2.6 --default
Частта в курсив е необходима само ако ще инсталирате Ruby от потребител, който не е root. Ако решите да я оставите, можете да замените името на потребителя "easy" с "redmine".
Rbenv
Моля, следвайте инструкциите в тази статия.
Инсталиране на NGINX и Passenger
NGINX е уеб сървър с отворен код, проектиран за максимална производителност и стабилност. Passenger е приложен сървър с отворен код, който се интегрира с NGINX, за да изпълнява Ruby софтуер, като Redmine, върху уеб. В нашия случай трябва да инсталираме и двете.
$ gem install passenger --no-ri --no-rdoc
$ passenger-install-nginx-module
sudo gem install bundler --no-rdoc --no-ri
Инсталиране и конфигуриране на Redmine
Преди да продължите с инсталацията, проверете за най-новата версия на Redmine. Можете да я намерите на страницата за изтегляне на Redmine.
Страница за изтегляне на Redmine
Запишете си целевата версия и продължете.
Забележка: По-добре е да не инсталирате и да не стартирате Redmine от потребителя root.
1. Инсталирайте зависимостите, необходими за изграждане на Redmine:
sudo apt install build-essential libmysqlclient-dev imagemagick libmagickwand-dev
2. Изтеглете Redmine във вашия /tmp директория:
sudo curl -L http://www.redmine.org/releases/redmine-4.1.0.tar.gz -o /tmp/redmine.tar.gz
3. Извлечете изтегления архив и копирайте файловете на приложението в директорията за инсталиране:
cd /tmp
sudo tar zxf /tmp/redmine.tar.gz
sudo mv /tmp/redmine-4.1.0 /var/www/html/redmine/
3. Конфигурирайте настройките на базата данни на Redmine
3.1. Отворете файла за конфигурация на базата данни (database.yml)
cd /var/www/html/redmine/config/
cp database.yml.example database.yml
sudo nano /var/www/html/redmine/config/database.yml
3.2. Приложете промените, показани по-долу, към раздела production на файла:
production:
adapter: mysql2
database: redminedb
host: localhost
username: redminedbusr
password: "password"
encoding: utf8mb4
3.3 Инсталирайте Ruby зависимостите, необходими за изпълнението на Redmine:
cd /var/www/html/redmine/
sudo gem install bundler --no-rdoc --no-ri
sudo bundle install --without development test postgresql sqlite
3.4 Мигрирайте базата данни и конфигурирайте работната среда.
cd /var/www/html/redmine/
sudo bundle exec rake generate_secret_token
sudo RAILS_ENV=production bundle exec rake db:migrate
Конфигурирайте NGINX
Това е последният стъпка от нашето ръководство. След като завършите конфигурацията на NGINX, ще имате напълно функциониращ сървър Redmine, работещ на вашия Ubuntu 18.04 LTS.
1. Създайте виртуален хост за вашия Redmine приложение:
sudo nano /etc/nginx/sites-available/redmine.mydomain.com
2. Въведете следната конфигурация на виртуалния хост и запазете файла:
server {
listen 80;
server_name redmine.mydomain.com;
root /var/www/html/redmine/public;
passenger_enabled on;
passenger_min_instances 1;
client_max_body_size 10m;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
3. Активирайте вашия виртуален хост, като свържете новосъздадения конфигурационен файл в директорията sites-enabled:
sudo ln -s /etc/nginx/sites-available/redmine.mydomain.com /etc/nginx/sites-enabled/redmine.mydomain.com
4. Проверете конфигурацията на NGINX:
sudo nginx -t
COMMAND OUTPUT:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
5. Рестартирайте NGINX сървъра:
sudo systemctl restart nginx
Достъп до Redmine
1. Отворете уеб браузър и въведете името на вашия Redmine домейн в адресната лента. Ще се появи екранът за вход в Redmine.
Начален екран на Redmine
2. Влезте във вашия Redmine сървър, използвайки стандартните данни за вход (потребителско име: admin и парола: admin) и, когато бъдете подканени, задайте нова парола за вашия администраторски акаунт.
3. Накрая, конфигурирайте настройките на вашия администраторски акаунт, включително вашия имейл адрес и часова зона.
Поздравления! Вашият Redmine е готов!
Ако искате да откриете други начини за развитие на Redmine в Amazon Web Services (AWS), разгледайте втората част от този урок.

Най-доброто ъпгрейд на Redmine? Лесно.
Получете всички мощни инструменти за перфектно планиране, управление и контрол в един софтуер.