Oppgradering til versjon 11
Introduksjon
Denne veiledningen er ment for Server administratorer. Cloud brukere kan slappe av, sette føttene opp og overlate alle disse operasjonene til oss.
Versjon 11 er et betydelig teknologisk sprang sammenlignet med tidligere versjoner. Oppgradering til denne versjonen krever litt mer forberedelse enn en vanlig oppgradering for å unngå forstyrrelser. Vurder denne guiden som en sjekkliste for en jevn overgang.
De viktigste endringene i den teknologiske stakken er forklart i Utgiv notater. Den inneholder også viktige funksjonelle endringer og plugin-informasjon. Hvis du ikke allerede har gjort det, kan du lese dem først.
Enkle virtuelle maskiner til unnsetning!
Noen av følgende punkter kan gjelde deg, og den samlede innsatsen for å virke mer enn du er villig til å tåle. I slike tilfeller er det alltid det enkle alternativet å få et fullt installert program på VMware/VirtualBox bilde (.ova-format). Bare spør vår støtte, som vil generere en VM for deg og muligens til og med arrangere datamigrering fra ditt eksisterende system. Som en belønning for en slik beslutning, trenger du ikke å lese resten av denne artikkelen :)
Nyttige ressurser
Instruksjoner for de fleste trinnene er allerede publisert i kunnskapsbasen og direkte i installasjonspakken (doc / INSTALL_DEBIAN). Vi vil ikke kopiere dem alle til denne artikkelen. Vi vil heller legge til den nødvendige konteksten her og fokusere på de vesentlige endringene.
Modelloppgraderingshistorie
Før vi skiller hver komponent i detalj, vil vi vise et eksempel på en oppgradering mens vi forblir på samme server.
Eksisterende server
- Enkel VM med Easy Project versjon 10.10.1
- rubin -v = 2.5.3
- mysql --versjon = 5.7.31
- redis-server --versjon = 5.0.3
- perleliste | grep-bundler = 1.16.6
- node -v (ikke-eksisterende)
- puma applikasjonsserver
- nginx webserver
Siden det er VM levert av Easy, tillater stort miljø (OS, database) oppgradering på samme server. Noen komponenter er fine som de er (mysql, redis-server, puma, nginx), noen krever oppgradering (ruby, bundler), ett krav mangler helt (Node.js).
Steps
0) Last ned og installer den nyeste LTS-versjonen (10.14.x) - oppgradering er kun mulig fra LTS.
1) La oss starte med rubinoppgradering
rvm install ruby 2.6.7 --patch railsexpress
(vent til ny rubin er installert, det kan be deg om sudo-passord)
rvm use ruby-2.6.7 --default
2) Vi anbefaler at du avinstallerer tidligere rubinversjon for å unngå mulige kollisjoner
rvm remove ruby-2.5.3
Denne kommandoen vil avinstallere ruby med alle perler og andre filer. Det er bedre enn å bruke rvm uninstall
kommando.
3) Nå må vi installere alle nødvendige perler for applikasjonen. Vi starter med bundler
gem install bundler
La oss sjekke hvilken pakker som ble installert
gem list | grep bundler
Det skal returnere en linje som
bundler (2.1.4, 2.1.2)
Forsikre deg om at det er en versjon som er høyere enn 2.2.16
4) Gå nå til /home/easy/your.vm.name
cd /home/easy/your.vm.name
5) Installer nodejs
sudo apt update
sudo apt upgrade
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt install nodejs
Og sjekk at den har riktig versjon
node -v
Det skal returnere noe sånt som
v14.16.0
Forsikre deg om at versjonen din er 14.16 eller høyere.
6) Last ned pakke v11-pakken fra klientsonen, kopier den til den virtuelle maskinen.
7) Stopp puma-serveren
sudo systemctl stop puma@your.domain.name
Fra dette punktet kan du velge om du vil fortsette med automatisk prosedyre eller med manuell oppgradering.
a) Automatisk oppgradering (Anbefales)
8a) Kjør oppgradering via redmine installer
redmine upgrade name_of_package
9a) Følg trinnene i veiviseren.
b) Manuell oppgradering
8b) Gi nytt navn til den nåværende strømmen / mappen
mv current/ current_old/
9b) Gjenopprett gjeldende mappe
mkdir current
10b) Gå til gjeldende mappe
cd current/
11b) Pakk ut pakken her
unzip /path/to/downloaded/package.zip
12b) Installer perler
bundle install
13b) Kjør migrasjoner
bundle exec rake easyproject:install RAILS_ENV=production
14b) Hvis alt er i orden, start puma tilbake
sudo systemctl start puma@your.domain.name
Spesifikasjon sjekkliste
Operativsystem
Fra versjon 11 er det eneste støttede operativsystemet (der applikasjonen kjører direkte) Debian, spesielt 10 (Buster) og 11 (Bullseye).
Hvis du kjører Easy Project på våre medfølgende virtuelle maskiner, har du sannsynligvis allerede dekket dette kravet. Hvis du har et operativsystem som ikke støttes, må du migrere til en ny server (helst vår VM). Å installere eller oppgradere OS på nytt under en produksjonsapplikasjon er definitivt ikke i din interesse.
Databaseserver
Du må bruke Percona / MySQL 5.7+. Det er omtrent tre tilfeller:
- Du har en eldre Percona-versjon -> oppgrader via offisielle instruksjoner, for eksempel
https://www.percona.com/doc/percona-server/5.7/upgrading_guide_56_57.html - Du har en annen MySQL-distribusjon (for eksempel MariaDB) -> vi anbefaler å migrere til ny server (helst vår VM).
- Du har PostgreSQL -> vi anbefaler å migrere til ny server (helst vår VM). Før selve migreringen må databasen konverteres. Vi testet forskjellige konverteringsverktøy og ga instruksjoner for de mest egnede. Vi er også klare til å utføre konverteringen for deg.
Rubin
Språket bak applikasjonen må holdes oppdatert slik som språket folk kommuniserer etter. Oppgradering av Ruby er beskrevet her. Med mindre din eksisterende Ruby er veldig gammel, kan du fortsette på samme server.
Bundler
En rubinperle for å håndtere rubinperler. Siden Easy Project bruker mer enn 200 av disse, er bundler en viktig komponent.
Slik installerer
gem install bundler
For å bekrefte versjonen
gem list | grep bundler
Versjon 2.2.x skal installeres automatisk. Hvis den ikke gjør det, kan du følge offisiell dokumentasjon.
Redis
For å effektivisere noen av de nye funksjonene og ytelsesforbedringene i v11, bruker vi Sidekiq med redis-server. Enkle virtuelle maskiner inneholder allerede disse komponentene. Vær forsiktig med versjonen, ER11 krever redis-server 5+.
Her er et utdrag fra hovedinstallasjonsveiledningen i din v11-pakke etter doc / INSTALL_DEBIAN
- Oppsett redis og sidekiq
Bytt til bruker enkelt.
vim /home/easy/current/config/additional_environment.rb
hvis Rails.env.produksjon? config.active_job.queue_adapter =: sidekiq
redis_namespace = Rails.root.join (".."). basenavn.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, namespace: redis_namespace}
slutt
Sidekiq.configure_client do | config | config.redis = {url: redis_url, navneområde: redis_namespace}
slutten slutten
vim /home/easy/current/config/sidekiq.rb
: verbose: false: pidfile: ../sidekiq.pid: logfile: ./log/sidekiq.log: concurrency: <% = ENV ["SIDEKIQ_WORKERS"] || 2%>: køer:
- kritisk
- standard~~POS=TRUNC
- beregne_tilpasset_felt
- easy_git
- lett_handlinger
- easy_mail_campaigs
- enkle_integrasjoner
- mailere
- enkle_rake_oppgaver
- lav
node.js
Endelig det siste store kravet. Installasjonen er ganske enkel
sudo apt update
sudo apt upgrade
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt install nodejs
Forsikre deg om at du har versjon 14.16. Dokumentasjon tilgjengelig her.
WebSockets
Selv om det ikke er et strengt krav som hindrer applikasjonen i å kjøre, bruker to funksjoner denne teknologien (viser live online / offline tilstand i brukerens avatar; varsel i app om ferdig eksport). Det vil bli utvidet i fremtiden.
Handlingskabel må være aktivert. Det er avhengig av Redis. Hvis du vil bruke disse funksjonene, men ikke er kjent med Redis / ActionCable-konfigurasjon, anbefaler vi at du overfører til ny virtuell maskin der disse er forhåndskonfigurert.
Tvungen HTTPS-protokoll
Versjon 11 håndhever HTTPS-protokollen til applikasjonens URL. Vennligst sjekk konfigurasjonen av nettserveren (nginx) for å sikre at applikasjonen din vil være tilgjengelig via https://[easyproject_url] fra nettleseren din eller fra alle integrasjoner som kobles til Easy Project. URL-ene http://[easyproject_url] vil ikke fungere i v11!
Slutten på sub-uri
Siden frontend mottar avanserte forbedringer, er det ikke lenger mulig å fortsette å støtte sub-uri-konfigurasjon. Denne typen konfigurasjon er følsom for Javascript-komponenter og forårsaker ofte funksjonsfeil. Vennligst konfigurer serveren din til vanlig domene.
Etter oppgradering
Tekstiler / Markdown tekster migrering
Som skrevet i utgiv notater vi droppet støtte for forskjellige tekstredigerere. Hvis du tidligere har brukt tekstil- eller markdown-tekstredigering, må du kjøre migreringen av formaterte tekster til HTML ved å bruke den relevante kommandoen til disse.
Vennligst sjekk først din nylige tekstformatering med:
bundle exec rails r -e production "puts Setting.text_formatting"
Hvis det er tekstil, bruk denne kommandoen:
bundle exec rake easyproject:textile:migrate_all source_formatting=textile RAILS_ENV=production
eller dette hvis tekstformateringen er Markdown:
bundle exec rake easyproject:textile:migrate_all source_formatting=markdown RAILS_ENV=production
Og hvis migreringen var vellykket, bytt tekstformatering til HTML til slutt med:
bundle exec rails r -e production "puts Setting.text_formatting = 'HTML'"
Start webserveren på nytt for å bruke endringene fullt ut.