Jak zainstalować Redmine na Amazon Web Services (AWS) - Ubuntu 18.04 LTS - Część 1.

2/17/2020
11 minutes
Lukáš Beňa -> Łukasz Beňa
Redmine to otwarte oprogramowanie do zarządzania projektami i śledzenia problemów. Działa na platformie Ruby on Rails i jest zaprojektowane, aby działać na różnych systemach operacyjnych i bazach danych. W tym samouczku dowiesz się, jak zainstalować Redmine na Amazon Web Services (AWS).

Istnieją dwie główne opcje instalacji Redmine na Amazon Web Services (AWS):

  • Używając zwykłej instancji AWS Linux (EC2 lub Lightsail) i ręcznie instalując Redmine, lub
  • Używając wstępnie skonfigurowanej instancji Redmine Lightsail do instalacji jednym kliknięciem.

Jeśli wybierzemy pierwszą opcję, będziemy mieli pełną kontrolę nad każdym aspektem naszej implementacji Redmine. Z drugiej strony, druga opcja oferuje szybkie i łatwe rozwiązanie, aby mieć Redmine uruchomiony w ciągu kilku minut, nie angażując się we wszystkie szczegóły instalacji i konfiguracji.

Pierwsza część tego samouczka opisuje, jak zainstalować Redmine na zwykłej instancji AWS Linux.


Wymagania wstępne

Przed rozpoczęciem procesu upewnij się, że spełnione są następujące wymagania wstępne:

  • Masz konto Amazon Web Services z uprawnieniami administratora.
  • Posiadasz nazwę domeny dla swojej aplikacji Redmine, taką jak redmine.mydomain.com.
  • Masz dostęp do konfiguracji DNS dla swojej domeny.


Instalacja Redmine na zwykłej instancji Linux EC2 lub LightSail

W celu wykonania tego samouczka założymy, że już uruchomiłeś instancję AWS EC2 lub Lightsail z systemem Ubuntu 18.04 LTS.

Zainstalujemy Redmine na tej instancji Linux, używając bazy danych MySQL, serwera webowego NGINX i serwera aplikacji Phusion Passenger.


Skonfiguruj serwer DNS

Przed połączeniem się z instancją musisz skonfigurować swoje DNS. Utwórz wpis DNS dla nazwy domeny Redmine (redmine.mydomain.com), wskazujący na publiczny adres IP twojej instancji AWS Linux.

Możesz to zrobić za pomocą usługi AWS Route 53.

image001

Konfiguracja DNS za pomocą AWS Route 53

Publiczny adres IP twojej instancji Ubuntu 18.04 LTS można znaleźć w konsoli zarządzania EC2 lub w konsoli Lightsail.

image003

Konsola zarządzania AWS EC2

image005

Konsola Lightsail AWS

Po skonfigurowaniu wpisu DNS połącz się z instancją Linux i wykonaj następujące kroki.


Zainstaluj i skonfiguruj bazę danych MySQL


1. Zainstaluj serwer MySQL:

sudo apt update

sudo apt install mysql-server mysql-client


2. Wykonaj początkową konfigurację serwera MySQL:

sudo mysql_secure_installation

Zostaniesz poproszony o:

  • aktywację wtyczki VALIDATE PASSWORD PLUGIN (powiedz tak i wybierz hasła STRONG)
  • wybranie hasła użytkownika root.
  • usunięcie anonimowych użytkowników (powiedz tak).
  • zakazanie zdalnego logowania root (powiedz nie, jeśli planujesz połączyć się z bazą danych z zewnątrz instancji Ubuntu Linux, powiedz tak w przeciwnym razie).

3. Sprawdź, czy serwer MySQL działa:

sudo systemctl status mysql

(powinieneś zobaczyć active (running) jako część odpowiedzi na polecenie)


4. Utwórz nową bazę danych i nowego użytkownika bazy danych dla 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


Zainstaluj Ruby

Zainstaluj domyślną wersję Ruby dla swojego dystrybucji Linux. Jeśli potrzebujesz innej wersji, możesz użyć RVM (Ruby Version Manager).


1. Zainstaluj Ruby:

Zainstaluj najnowszą wersję Ruby za pomocą Rbenv lub RVM.


RVM

1. zainstaluj rvm, uruchom go, dodaj do autostartu

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. Utwórz użytkownika "easy" (lub nazwij go dowolnie, ważne jest, aby ten użytkownik pracował z Twoją aplikacją Redmine, a nie użytkownik root. Powinno to być zrobione ze względów bezpieczeństwa)

useradd -m -G rvm -s /bin/bash easy

Ponadto musisz dodać użytkownika "easy" do grupy sudoers (musimy zezwolić temu użytkownikowi na uruchamianie niektórych poleceń z sudo)

usermod -a -G sudo easy

Jeśli to zrobiłeś, możesz pominąć następny krok, ponieważ po tym poleceniu Twój użytkownik jest już w odpowiedniej grupie. Przełącz się na tego użytkownika

su - easy

3. dodaj użytkownika do grupy rvm

usermod -a -G rvm easy

Ponadto musisz dodać użytkownika "easy" do grupy sudoers (musimy zezwolić temu użytkownikowi na uruchamianie niektórych poleceń z sudo)

usermod -a -G sudo easy

Przełącz się na użytkownika "easy"

su - easy

4. zainstaluj ruby

rvm install 2.6 --patch railsexpress

5. zainstaluj git

sudo apt-get install git

6. ustaw ruby 2.6 jako domyślny

rvm use 2.6 --default

Część w kursywie jest potrzebna tylko wtedy, gdy zamierzasz zainstalować ruby z nie-root użytkownika. Jeśli zdecydujesz się na to, możesz zastąpić nazwę użytkownika "easy" przez "redmine".


Rbenv

Proszę postępować zgodnie z instrukcjami w tym artykulem.


Zainstaluj NGINX i Passenger

NGINX to serwer WWW typu open-source zaprojektowany dla maksymalnej wydajności i stabilności. Passenger to serwer aplikacji typu open-source, który integruje się z NGINX, aby uruchamiać oprogramowanie Ruby, takie jak Redmine, w sieci. W naszym przypadku musimy zainstalować oba.

$ gem install passenger --no-ri --no-rdoc
$ passenger-install-nginx-module

sudo gem install bundler --no-rdoc --no-ri


Zainstaluj i skonfiguruj Redmine

Przed kontynuowaniem instalacji sprawdź, jaka jest najnowsza dostępna wersja Redmine. Możesz ją znaleźć na stronie pobierania Redmine.

image007

Strona pobierania Redmine

Zapisz swoją docelową wersję i kontynuuj.

Uwaga: Lepiej nie instalować i uruchamiać Redmine z użytkownika root.


1. Zainstaluj wymagane zależności do budowania Redmine:

sudo apt install build-essential libmysqlclient-dev imagemagick libmagickwand-dev


2. Pobierz Redmine do swojego katalogu /tmp:

sudo curl -L http://www.redmine.org/releases/redmine-4.1.0.tar.gz -o /tmp/redmine.tar.gz


3. Rozpakuj pobrany archiwum i skopiuj pliki aplikacji do katalogu instalacyjnego:

cd /tmp

sudo tar zxf /tmp/redmine.tar.gz

sudo mv /tmp/redmine-4.1.0 /var/www/html/redmine/


3. Skonfiguruj ustawienia bazy danych Redmine


3.1. Otwórz plik konfiguracyjny bazy danych (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. Zastosuj poniższe zmiany do sekcji production w pliku:

production:

adapter: mysql2

database: redminedb

host: localhost

username: redminedbusr

password: "password"

encoding: utf8mb4


3.3 Zainstaluj wymagane zależności Ruby do uruchomienia Redmine:

cd /var/www/html/redmine/

sudo gem install bundler --no-rdoc --no-ri

sudo bundle install --without development test postgresql sqlite


3.4 Przenieś bazę danych i skonfiguruj środowisko uruchomieniowe.

cd /var/www/html/redmine/

sudo bundle exec rake generate_secret_token

sudo RAILS_ENV=production bundle exec rake db:migrate


Skonfiguruj NGINX

To jest ostatni krok naszego samouczka. Po ukończeniu konfiguracji NGINX będziesz miał w pełni funkcjonalny serwer Redmine działający na Twoim systemie Ubuntu 18.04 LTS.


1. Utwórz host wirtualny dla Twojej aplikacji Redmine:

sudo nano /etc/nginx/sites-available/redmine.mydomain.com


2. Wprowadź poniższą konfigurację hosta wirtualnego i zapisz plik:

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;

# przekieruj strony błędów serwera na statyczną stronę /50x.html

#

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root html;

}

}


3. Włącz swój host wirtualny, łącząc nowo utworzony plik konfiguracyjny z katalogiem sites-enabled:

sudo ln -s /etc/nginx/sites-available/redmine.mydomain.com /etc/nginx/sites-enabled/redmine.mydomain.com


4. Zweryfikuj swoją konfigurację NGINX:

sudo nginx -t

WYNIK POLECENIA:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful


5. Uruchom ponownie serwer NGINX:

sudo systemctl restart nginx


Dostęp do Redmine

1. Otwórz przeglądarkę internetową i wpisz nazwę domeny Redmine w pasku adresu. Wyświetli się ekran logowania do Redmine.

image009

Początkowy ekran logowania do Redmine

2. Zaloguj się do swojego serwera Redmine, używając domyślnych danych uwierzytelniających (nazwa użytkownika: admin, hasło: admin) i, gdy zostaniesz poproszony, ustaw nowe hasło dla swojego konta admina.

3. Na koniec skonfiguruj ustawienia swojego konta admina, w tym adres e-mail i strefę czasową.

image011

Gratulacje! Twój Redmine jest gotowy!

Jeśli chcesz poznać inne sposoby wdrażania Redmine na Amazon Web Services (AWS), zajrzyj do drugiej części tego samouczka.

Najlepsza aktualizacja Redmine? Łatwa.

Zdobądź wszystkie potężne narzędzia do doskonałego planowania, zarządzania i kontroli projektów w jednym oprogramowaniu.

Wypróbuj Easy Redmine przez 30 dni za darmo

Pełne funkcje, zabezpieczenie SSL, codzienne kopie zapasowe, dostępne w Twojej lokalizacji