en
Wybierz język
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
Tłumaczenie SI
  • ee
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

Aktualizacja do wersji 11

Wprowadzenie

Ten przewodnik jest przeznaczony dla: serwer administratorzy. Chmura użytkownicy mogą się zrelaksować, podnieść nogi i pozostawić nam wszystkie te operacje.

Wersja 11 to znaczący skok technologiczny w porównaniu z poprzednimi wersjami. Aktualizacja do tej wersji wymaga nieco więcej przygotowań niż zwykła aktualizacja, aby uniknąć problemów. Potraktuj ten przewodnik jako listę kontrolną dla płynnego przejścia.

Najważniejsze zmiany w stosie technologicznym wyjaśniono w Informacje o wersji. Zawiera również ważne zmiany funkcjonalne i informacje o wtyczkach. Jeśli jeszcze tego nie zrobiłeś, najpierw je przeczytaj.

Proste maszyny wirtualne na ratunek!

Niektóre z poniższych punktów mogą dotyczyć Ciebie, a połączony wysiłek może wydawać się większy, niż jesteś w stanie znieść. W takim przypadku zawsze istnieje prosta opcja włączenia w pełni zainstalowanej aplikacji VMware/VirtualBox obraz (format .ova). Zapytaj naszego wsparcia, kto wygeneruje dla Ciebie maszynę wirtualną, a może nawet zorganizuje migrację danych z Twojego istniejącego systemu. W nagrodę za taką decyzję nie musisz czytać reszty tego artykułu :)

Przydatne zasoby

Instrukcje dotyczące większości kroków są już opublikowane na naszych stronach internetowych i/lub w bazie wiedzy. Nie będziemy kopiować ich wszystkich do tego jednego artykułu. Raczej dodamy tutaj niezbędny kontekst i udostępnimy linki do szczegółowych instrukcji dotyczących tych konkretnych operacji.

Historia aktualizacji modelu

Zanim szczegółowo omówimy każdy komponent, pokażemy modelowy przykład uaktualnienia, pozostając na tym samym serwerze.

Istniejący serwer

  • Łatwa maszyna wirtualna z Easy Redmine w wersji 10.10.1
  • rubin -v = 2.5.3
  • mysql --wersja = 5.7.31
  • redis-server --wersja = 5.0.3
  • lista klejnotów | grep bundler = 1.16.6
  • węzeł -v (nie istnieje)
  • serwer aplikacji puma
  • serwer WWW nginx

Ponieważ jest to maszyna wirtualna dostarczana przez Easy, duże środowisko (system operacyjny, baza danych) umożliwia aktualizację na tym samym serwerze. Niektóre komponenty są w porządku (mysql, redis-server, puma, nginx), niektóre wymagają aktualizacji (ruby, bundler), jednego z nich całkowicie brakuje (Node.js).

Cel

0) Pobierz i zainstaluj najnowszą wersję LTS (10.14.x) - aktualizacja jest możliwa tylko z LTS.

1) Zacznijmy od aktualizacji rubinowej
rvm install ruby 2.6.7 --patch railsexpress

(poczekaj, aż nowy ruby ​​zostanie zainstalowany, może poprosić o hasło sudo)

rvm use ruby-2.6.7 --default

2) Zalecamy odinstalowanie poprzedniej wersji ruby, aby uniknąć możliwych kolizji
rvm remove ruby-2.5.3

To polecenie odinstaluje ruby ​​ze wszystkimi klejnotami i innymi plikami. To lepsze niż używanie rvm uninstall dowództwo.

3) Teraz musimy ponownie zainstalować wszystkie potrzebne klejnoty do aplikacji. Zaczynamy od bundlera
gem install bundler

Sprawdźmy, który bundler został zainstalowany
gem list | grep bundler

Powinien zwrócić linię jak
bundler (2.1.4, 2.1.2)

Upewnij się, że istnieje wersja wyższa niż 2.2.16

4) Teraz przejdź do /home/easy/your.vm.name
cd /home/easy/your.vm.name

5) Zainstaluj nodejs
sudo apt update
sudo apt upgrade
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt install nodejs

I sprawdź, czy ma poprawną wersję
node -v

Powinno zwrócić coś takiego
v14.16.0

Upewnij się, że Twoja wersja to 14.16 lub nowsza.

6) Pobierz pakiet v11 ze strefy klienta, skopiuj go na swoją maszynę wirtualną.

7) Zatrzymaj serwer pumy
sudo systemctl stop puma@your.domain.name

Od tego momentu możesz wybrać, czy chcesz kontynuować automatyczną procedurę, czy ręczną aktualizację.

a) Automatyczna aktualizacja (Zalecana)
8a) Uruchom aktualizację za pomocą instalatora redmine
redmine upgrade name_of_package

9a) Postępuj zgodnie z instrukcjami kreatora.

b) Aktualizacja ręczna
8b) Zmień nazwę swojego ostatniego bieżącego/folderu
mv current/ current_old/

9b) Odtwórz bieżący folder
mkdir current

10b) Przejdź do bieżącego folderu
cd current/

11b) Rozpakuj paczkę tutaj
unzip /path/to/downloaded/package.zip

12b) Zainstaluj klejnoty
bundle install

13b) Uruchom migracje
bundle exec rake easyproject:install RAILS_ENV=production

14b) Jeśli wszystko jest w porządku, uruchom pumę z powrotem
sudo systemctl start puma@your.domain.name

Lista kontrolna specyfikacji

System operacyjny

Od wersji 11 jedynym obsługiwanym systemem operacyjnym (w którym aplikacja działa bezpośrednio) jest Debian, zwłaszcza 10 (Buster) i 11 (Bullseye).

Jeśli korzystasz z Easy Redmine na naszych dostarczonych maszynach wirtualnych, najprawdopodobniej masz już pokryte to wymaganie. Jeśli masz nieobsługiwany system operacyjny, musisz przeprowadzić migrację na nowy serwer (najlepiej naszą maszynę wirtualną). Ponowna instalacja lub aktualizacja systemu operacyjnego w aplikacji produkcyjnej zdecydowanie nie leży w Twoim najlepszym interesie.

Serwer bazy danych

Będziesz musiał użyć Percona/MySQL 5.7+. Istnieją mniej więcej trzy przypadki:

Rubin

Język aplikacji musi być aktualizowany, np. język, którym ludzie się komunikują. Opisano aktualizację Rubiego tutaj. Jeśli twój istniejący Ruby nie jest bardzo stary, możesz kontynuować na tym samym serwerze.

Pakowacz

Praktycznie klejnot do zarządzania klejnotami. Ponieważ Easy Redmine używa ponad 200 z nich, bundler jest kluczowym elementem.

Aby zainstalować
gem install bundler

Aby zweryfikować wersję
gem list | grep bundler

Wersja 2.2.x powinna zostać zainstalowana automatycznie. Jeśli tak się nie stanie, postępuj zgodnie z oficjalna dokumentacja.

Redis

Aby usprawnić niektóre nowe funkcje i ulepszenia wydajności w wersji 11, używamy Sidekiq z redis-serverem. Łatwe maszyny wirtualne już zawierają te komponenty. Uważaj na wersję, ER11 wymaga serwera redis 5+.

Oto fragment głównego przewodnika instalacji znajdującego się w twoim Pakiet v11 dla dokument/INSTALL_DEBIAN

  1. Konfiguracja redis i sidekiq

Przełącz się na łatwe dla użytkownika.

vim /home/easy/current/config/additional_environment.rb

czy Rails.env.production? config.active_job.queue_adapter = :sidekiq

redis_namespace = Rails.root.join("..").basename.to_s redis_url = "redis://#{ENV["REDIS_HOST"] || "127.0.0.1"}:#{ENV["REDIS_PORT"] || 6379}/1" Sidekiq.configure_server do |config| config.redis = { url: redis_url, przestrzeń nazw: redis_namespace }

zakończenia

Sidekiq.configure_client do |config| config.redis = { url: redis_url, przestrzeń nazw: redis_namespace }

koniec koniec

vim /home/easy/current/config/sidekiq.rb

:verbose: false :pidfile: ../sidekiq.pid :logfile: ./log/sidekiq.log :concurrency: <%= ENV["SIDEKIQ_WORKERS"] || 2 %> :kolejki:

  • krytyczny
  • domyślnym
  • przelicz_niestandardowe_pola
  • łatwy_git
  • łatwe_działania
  • łatwe_kampanie_mailowe
  • łatwe_integracje
  • koperty
  • łatwe_rake_zadania
  • Niska

node.js

Wreszcie ostatni ważny wymóg. Instalacja jest dość prosta

sudo apt update
sudo apt upgrade
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt install nodejs

Upewnij się, że masz wersję 14.16. Dostępna oficjalna dokumentacja tutaj.

WebSockets

Chociaż nie jest to ścisły wymóg, który blokuje działanie aplikacji, dwie funkcje korzystają z tej technologii (pokazywanie stanu online/offline na żywo w awatarach użytkownika; powiadomienie w aplikacji o zakończeniu eksportu). W przyszłości zostanie rozbudowany.

Kabel akcji musi być włączony. Jest zależny od Redisa. Jeśli chcesz korzystać z tych funkcji, ale nie znasz konfiguracji Redis/ActionCable, zalecamy migrację do nowej maszyny wirtualnej, w której są one wstępnie skonfigurowane.

Wymuszony protokół HTTPS

Wersja 11 wymusza protokół HTTPS adresu URL aplikacji. Sprawdź konfigurację serwera WWW (nginx), aby upewnić się, że Twoja aplikacja będzie dostępna przez https://[easyredmine_url] z przeglądarki internetowej lub z dowolnej integracji, która łączy się z Easy Redmine. Adresy URL http://[easyredmine_url] nie będą działać w wersji 11!

Koniec sub-uri

Ponieważ front-end otrzymuje zaawansowane ulepszenia, dalsze wspieranie nie jest już możliwe konfiguracja sub-uri. Ten rodzaj konfiguracji jest wrażliwy na komponenty Javascript i często powoduje nieprawidłowe działanie. Zmień konfigurację serwera na zwykłą domenę.

Po aktualizacji

Migracja tekstów tekstylnych/przecenowych

Jak napisano w Informacje o wydaniu porzuciliśmy wsparcie dla różnych edytorów tekstu. Jeśli wcześniej używałeś edycji tekstu tekstylnego lub przecenowego, będziesz musiał uruchomić migrację sformatowanego tekstu do HTML za pomocą odpowiedniego polecenia.

Najpierw sprawdź swoje ostatnie formatowanie tekstu za pomocą:

bundle exec rails r -e production "puts Setting.text_formatting"

Jeśli jest to Tekstylny, użyj tego polecenia:

bundle exec rake easyproject:textile:migrate_all source_formatting=textile RAILS_ENV=production

lub to, jeśli formatowanie tekstu to Markdown:

bundle exec rake easyproject:textile:migrate_all source_formatting=markdown RAILS_ENV=production

A jeśli migracja się powiodła, w końcu zmień formatowanie tekstu na HTML za pomocą:

bundle exec rails r -e production "puts Setting.text_formatting = 'HTML'"

Uruchom ponownie serwer WWW, aby w pełni zastosować zmiany.

Wypróbuj Easy Redmine w 30-dniowym bezpłatnym okresie próbnym

Pełne funkcje, ochrona SSL, codzienne kopie zapasowe w Twojej geolokalizacji