Upgraden naar versie 11

Introductie

Deze handleiding is bedoeld voor: server beheerders. Cloud gebruikers kunnen ontspannen, hun voeten omhoog leggen en al deze handelingen aan ons overlaten.

Versie 11 is een belangrijke technologische sprong voorwaarts in vergelijking met eerdere versies. Upgraden naar deze versie vereist wat meer voorbereiding dan een reguliere upgrade om problemen te voorkomen. Beschouw deze handleiding als een checklist voor een soepele overgang.

De belangrijkste veranderingen in de technologische stack worden uitgelegd in de Release notes. Het bevat ook belangrijke functionele wijzigingen en informatie over plug-ins. Als je dat nog niet hebt gedaan, lees ze dan eerst.

Eenvoudige virtuele machines te hulp!

Sommige van de volgende punten kunnen op u van toepassing zijn en de gecombineerde inspanning lijkt misschien meer dan u bereid bent te verduren. In dat geval is er altijd de gemakkelijke optie om een ​​volledig geïnstalleerde applicatie aan te zetten VMware/VirtualBox afbeelding (.ova-formaat). Vraag het maar aan onze support, die een VM voor je genereert en eventueel zelfs de datamigratie vanuit je bestaande systeem regelt. Als beloning voor zo'n beslissing hoef je de rest van dit artikel niet te lezen :)

Handige adressen

Instructies voor de meeste stappen zijn al gepubliceerd in de kennisbank en direct in het installatiepakket (doc/INSTALL_DEBIAN). We zullen ze niet allemaal in dit ene artikel kopiëren. We zullen hier eerder de nodige context toevoegen en ons concentreren op de significante veranderingen.

Model upgrade verhaal

Voordat we elk onderdeel in detail ontleden, laten we een modelvoorbeeld van een upgrade zien, terwijl we op dezelfde server blijven.

Bestaande server

  • Easy VM met Easy Project versie 10.10.1
  • robijn -v = 2.5.3
  • mysql --versie = 5.7.31
  • redis-server --versie = 5.0.3
  • edelstenen lijst | grep bundelaar = 1.16.6
  • knooppunt -v (niet-bestaand)
  • puma applicatie server
  • nginx-webserver

Omdat het een VM is die wordt geleverd door Easy, maakt een grote omgeving (OS, database) upgrades op dezelfde server mogelijk. Sommige componenten zijn prima zoals ze zijn (mysql, redis-server, puma, nginx), sommige vereisen een upgrade (ruby, bundler), één vereiste ontbreekt volledig (Node.js).

Stappen

0) Download en installeer de nieuwste LTS-versie (10.14.x) - upgrade is alleen mogelijk vanaf LTS.

1) Laten we beginnen met ruby-upgrade
rvm install ruby 2.6.7 --patch railsexpress

(wacht tot nieuwe ruby ​​is geïnstalleerd, het kan u om sudo-wachtwoord vragen)

rvm use ruby-2.6.7 --default

2) We raden aan om de vorige ruby-versie te verwijderen om mogelijke botsingen te voorkomen
rvm remove ruby-2.5.3

Deze opdracht zal ruby ​​met alle edelstenen en andere bestanden verwijderen. Het is beter dan gebruiken rvm uninstall opdracht.

3) Nu moeten we alle benodigde edelstenen opnieuw installeren voor toepassing. We beginnen met bundelaar
gem install bundler

Laten we eens kijken welke bundel is geïnstalleerd
gem list | grep bundler

Het zou een regel moeten retourneren zoals
bundler (2.1.4, 2.1.2)

Zorg ervoor dat er een versie is die hoger is dan 2.2.16

4) Ga nu naar /home/easy/your.vm.name
cd /home/easy/your.vm.name

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

En controleer of het de juiste versie heeft
node -v

Het zou iets moeten teruggeven als
v14.16.0

Zorg ervoor dat uw versie 14.16 of hoger is.

6) Download pakket v11 pakket van client zone, kopieer het naar uw VM.

7) Stop de poema-server
sudo systemctl stop puma@your.domain.name

Vanaf dit punt kunt u kiezen of u door wilt gaan met de automatische procedure of met handmatige upgrade.

a) Automatische upgrade (aanbevolen)
8a) Voer de upgrade uit via het redmine-installatieprogramma
redmine upgrade name_of_package

9a) Volg de stappen in de wizard.

b) Handmatige upgrade
8b) Hernoem uw recente huidige/ map
mv current/ current_old/

9b) Huidige map opnieuw maken
mkdir current

10b) Ga naar huidige map
cd current/

11b) Pak hier het pakket uit
unzip /path/to/downloaded/package.zip

12b) Installeer edelstenen
bundle install

13b) Migraties uitvoeren
bundle exec rake easyproject:install RAILS_ENV=production

14b) Als alles in orde is, start puma terug
sudo systemctl start puma@your.domain.name

Specificaties checklist

Besturingssysteem

Vanaf versie 11 is het enige ondersteunde besturingssysteem (waar de applicatie direct draait) Debian, in het bijzonder 10 (Buster) en 11 (Bullseye).

Als u Easy Project uitvoert op onze geleverde VM's, is deze vereiste waarschijnlijk al gedekt. Als je een niet-ondersteund besturingssysteem hebt, moet je migreren naar een nieuwe server (bij voorkeur onze VM). Het opnieuw installeren of upgraden van het besturingssysteem onder een productietoepassing is absoluut niet in uw belang.

Database server

U moet Percona/MySQL 5.7+ gebruiken. Er zijn grofweg drie gevallen:

  • Je hebt een oudere Percona-versie -> upgrade via officiële instructies, zoals
    https://www.percona.com/doc/percona-server/5.7/upgrading_guide_56_57.html
  • Je hebt een andere MySQL-distributie (zoals MariaDB) -> we raden aan te migreren naar een nieuwe server (bij voorkeur onze VM).
  • Je hebt PostgreSQL -> we raden aan te migreren naar een nieuwe server (bij voorkeur onze VM). Vóór de migratie zelf moet de database worden geconverteerd. We hebben verschillende conversietools getest en gaf instructies voor de meest geschikte. Ook staan ​​wij klaar om de conversie voor u uit te voeren.

Ruby

De taal achter de applicatie moet up-to-date worden gehouden, zoals de taal waarmee mensen communiceren. Het upgraden van Ruby wordt beschreven hier. Tenzij uw bestaande Ruby erg oud is, kunt u doorgaan op dezelfde server.

Bundler

Een robijn edelsteen om robijn edelstenen te beheren. Aangezien Easy Project er meer dan 200 gebruikt, is Bundler een cruciaal onderdeel.

Om te installeren
gem install bundler

Om de versie te verifiëren
gem list | grep bundler

Versie 2.2.x zou automatisch moeten worden geïnstalleerd. Als dit niet het geval is, volg dan de officiële documentatie.

Redis

Om enkele van de nieuwe functies en prestatieverbeteringen in v11 te stroomlijnen, gebruiken we Sidekiq met redis-server. Easy VM's bevatten deze componenten al. Wees voorzichtig met de versie, ER11 vereist redis-server 5+.

Hier is een fragment uit de hoofdinstallatiegids in uw located v11 pakket voor doc/INSTALL_DEBIAN

  1. Redis en sidekiq instellen

Eenvoudig overstappen naar gebruiker.

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

als Rails.env.productie? 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, naamruimte: redis_namespace }

einde

Sidekiq.configure_client doen |config| config.redis = { url: redis_url, naamruimte: redis_namespace }

einde einde

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

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

  • kritisch
  • verzuim
  • herbereken_custom_fields
  • gemakkelijk_git
  • gemakkelijke_acties
  • easy_mail_campaigns
  • easy_integraties
  • mailers
  • easy_rake_tasks
  • lage

Node.js

Tot slot de laatste grote eis. Installatie is vrij eenvoudig

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

Zorg ervoor dat u versie 14.16 hebt. Documentatie beschikbaar hier.

WebSockets

Hoewel dit geen strikte vereiste is die de uitvoering van de applicatie blokkeert, gebruiken twee functies deze technologie (die de live online/offline-status in de avatar van de gebruiker toont; melding in de app over voltooide export). Het zal in de toekomst worden uitgebreid.

Actiekabel moet zijn ingeschakeld. Het is afhankelijk van Redis. Als u deze functies wilt gebruiken, maar niet bekend bent met de Redis/ActionCable-configuratie, raden we u aan te migreren naar een nieuwe VM waar deze vooraf zijn geconfigureerd.

Afgedwongen HTTPS-protocol

Versie 11 dwingt het HTTPS-protocol van de applicatie-URL af. Controleer de configuratie van de webserver (nginx) om er zeker van te zijn dat uw applicatie toegankelijk is via https://[easyproject_url] van uw webbrowser of van alle integraties die verbinding maken met uw Easy Project. De URL's http://[easyproject_url] werken niet in v11!

Einde van sub-uri

Omdat de front-end geavanceerde verbeteringen krijgt, is het niet langer haalbaar om te blijven ondersteunen sub-uri-configuratie. Dit soort configuratie is gevoelig voor Javascript-componenten en veroorzaakt vaak storingen. Configureer uw server opnieuw naar een normaal domein.

Na de upgrade

Migratie van textiel/Markdown-teksten

Zoals geschreven in release notes we hebben de ondersteuning van verschillende teksteditors laten vallen. Als u eerder textiel- of markdown-tekstbewerking hebt gebruikt, moet u de migratie van opgemaakte teksten naar HTML uitvoeren met behulp van de relevante opdracht hiervan.

Controleer eerst uw recente tekstopmaak met:

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

Als het Textiel is, gebruik dan deze opdracht:

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

of dit als tekstopmaak Markdown is:

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

En als de migratie is gelukt, schakelt u uw tekstopmaak uiteindelijk over naar HTML met:

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

Start de webserver opnieuw om de wijzigingen volledig toe te passen.

Probeer Easy Project in een gratis proefperiode van 30 dagen

Volledige functies, SSL-beveiligd, dagelijkse back-ups, in uw geolocatie