Aktualizace na verzi 11
Úvod
Tato příručka je určena pro Server správci. mrak uživatelé se mohou uvolnit, zvednout nohy a nechat všechny tyto operace na nás.
Verze 11 je ve srovnání s předchozími verzemi významným technologickým skokem. Upgrade na tuto verzi vyžaduje trochu více přípravy než běžný upgrade, aby se předešlo jakýmkoli rozrušením. Zvažte tuto příručku jako kontrolní seznam pro hladký přechod.
Nejdůležitější změny v technologickém zásobníku jsou vysvětleny v souboru Poznámky k vydání. Obsahuje také důležité funkční změny a informace o pluginu. Pokud jste to ještě neučinili, přečtěte si je nejprve.
Snadné virtuální stroje na záchranu!
Některé z následujících bodů se na vás mohou vztahovat a společné úsilí může vypadat více, než jste ochotni snášet. V takovém případě existuje vždy snadná možnost získání plně nainstalované aplikace VMware/VirtualBox obrázek (formát .ova). Stačí se zeptat naší podpory, která vám vygeneruje virtuální počítač a případně dokonce zajistí migraci dat z vašeho stávajícího systému. Jako odměnu za takové rozhodnutí nemusíte číst zbytek tohoto článku :)
Užitečné zdroje
Pokyny pro většinu kroků jsou již zveřejněny na našich webových stránkách a/nebo znalostní bázi. Nebudeme je všechny kopírovat do tohoto jediného článku. Zde spíše přidáme potřebný kontext a poskytneme odkazy na podrobné pokyny k těmto konkrétním operacím.
Příběh upgradu modelu
Než podrobně rozebereme každou komponentu, ukážeme modelový příklad upgradu, zatímco zůstaneme na stejném serveru.
Stávající server
- Easy VM s Easy Redmine verze 10.10.1
- rubín -v = 2.5.3
- mysql --verze = 5.7.31
- redis-server --verze = 5.0.3
- seznam drahokamů | grep bundler = 1.16.6
- uzel -v (neexistuje)
- aplikační server puma
- webový server nginx
Vzhledem k tomu, že jde o VM poskytovaný společností Easy, umožňuje velké prostředí (OS, databáze) upgrade na stejném serveru. Některé komponenty jsou v pořádku, jak jsou (mysql, redis-server, puma, nginx), některé vyžadují upgrade (ruby, bundler), jeden požadavek zcela chybí (Node.js).
Kroky
0) Stáhněte si a nainstalujte nejnovější verzi LTS (10.14.x) - upgrade je možný pouze z LTS.
1) Začněme upgradem na ruby
rvm install ruby 2.6.7 --patch railsexpress
(počkejte, až bude nainstalován nový rubín, může vás požádat o heslo sudo)
rvm use ruby-2.6.7 --default
2) Doporučujeme odinstalovat předchozí rubínovou verzi, aby se předešlo možným kolizím
rvm remove ruby-2.5.3
Tento příkaz odinstaluje ruby se všemi drahokamy a dalšími soubory. Je to lepší než používání rvm uninstall
příkaz.
3) Nyní musíme znovu nainstalovat všechny potřebné drahokamy pro aplikaci. Začínáme s bundlerem
gem install bundler
Podívejme se, který bundler byl nainstalován
gem list | grep bundler
Mělo by vrátit řádek jako
bundler (2.1.4, 2.1.2)
Ujistěte se, že existuje verze vyšší než 2.2.16
4) Nyní přejděte na /home/easy/your.vm.name
cd /home/easy/your.vm.name
5) Nainstalujte nodejs
sudo apt update
sudo apt upgrade
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt install nodejs
A zkontrolujte, zda má správnou verzi
node -v
Mělo by to vrátit něco podobného
v14.16.0
Zkontrolujte, zda je vaše verze 14.16 nebo vyšší.
6) Stáhněte si balíček v11 z klientské zóny, zkopírujte jej do svého virtuálního počítače.
7) Zastavte server puma
sudo systemctl stop puma@your.domain.name
Od tohoto bodu si můžete vybrat, zda chcete pokračovat s automatickým postupem nebo s manuálním upgradem.
a) Automatický upgrade (doporučeno)
8a) Spusťte upgrade pomocí instalačního programu redmine
redmine upgrade name_of_package
9a) Postupujte podle pokynů v průvodci.
b) Ruční upgrade
8b) Přejmenujte svůj aktuální adresář/ složku
mv current/ current_old/
9b) Znovu vytvořte aktuální složku
mkdir current
10b) Přejděte do aktuální složky
cd current/
11b) Rozbalte balíček zde
unzip /path/to/downloaded/package.zip
12b) Nainstalujte drahokamy
bundle install
13b) Spusťte migraci
bundle exec rake easyproject:install RAILS_ENV=production
14b) Pokud je vše v pořádku, začněte s pumou zpět
sudo systemctl start puma@your.domain.name
Kontrolní seznam specifikací
Operační systém
Od verze 11 je jediným podporovaným operačním systémem (kde aplikace běží přímo) Debian, zejména 10 (Buster) a 11 (Bullseye).
Pokud používáte Easy Redmine na našich poskytovaných virtuálních počítačích, pravděpodobně jste již tento požadavek pokryli. Pokud máte nepodporovaný operační systém, musíte provést migraci na nový server (nejlépe náš virtuální počítač). Přeinstalování nebo upgrade OS pod produkční aplikací rozhodně není ve vašem nejlepším zájmu.
Databázový server
Budete muset použít Percona/MySQL 5.7+. Existují zhruba tři případy:
- Máte starší verzi Percona -> upgradujte pomocí oficiálních pokynů, jako je například
https://www.percona.com/doc/percona-server/5.7/upgrading_guide_56_57.html - Máte jinou distribuci MySQL (například MariaDB) -> doporučujeme migraci na nový server (nejlépe náš VM).
- Máte PostgreSQL -> doporučujeme migraci na nový server (nejlépe náš VM). Před samotnou migrací je třeba databázi převést. Testovali jsme různé nástroje pro převod a poskytl pokyny pro ty nejvhodnější. Jsme také připraveni provést převod za vás.
Rubín
Jazyk za aplikací je třeba udržovat aktuální, například jazyk, kterým lidé komunikují. Je popsán upgrade Ruby zde. Pokud váš stávající Ruby není velmi starý, můžete pokračovat na stejném serveru.
Bundler
Prakticky klenot pro správu drahokamů. Protože Easy Redmine jich používá více než 200, je bundler zásadní součástí.
Chcete-li nainstalovat
gem install bundler
K ověření verze
gem list | grep bundler
Verze 2.2.x by se měla nainstalovat automaticky. Pokud tomu tak není, postupujte podle oficiální dokumentace.
Redestilát
K zefektivnění některých nových funkcí a vylepšení výkonu ve verzi 11 používáme Sidekiq s redis-serverem. Snadné virtuální počítače již tyto komponenty obsahují. Dávejte pozor na verzi, ER11 vyžaduje redis-server 5+.
Zde je výňatek z hlavní instalační příručky umístěné ve vašem balíček v11 pod doc/INSTALL_DEBIAN
- Nastavit redis a sidekiq
Snadné přepnutí na uživatele.
vim /home/easy/current/config/additional_environment.rb
pokud Rails.env.production? config.active_job.queue_adapter =: vedlejší
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, namespace: redis_namespace}
konec
Sidekiq.configure_client do | config | config.redis = {url: redis_url, namespace: redis_namespace}
konec konec
vim /home/easy/current/config/sidekiq.rb
: verbose: false: pidfile: ../sidekiq.pid: logfile: ./log/sidekiq.log: souběžnost: <%= ENV ["SIDEKIQ_WORKERS"] || 2 %>: fronty:
- kritický
- standardní
- přepočítat_vlastní_pole
- easy_git
- easy_action
- easy_mail_campaigns
- snadné_integrace
- poštovní doručovatelé
- easy_rake_tasks
- nízký
Node.js
Nakonec poslední zásadní požadavek. Instalace je poměrně jednoduchá
sudo apt update
sudo apt upgrade
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt install nodejs
Ujistěte se, že máte verzi 14.16. Oficiální dokumentace k dispozici zde.
WebSockets
I když to není přísný požadavek, který blokuje spuštění aplikace, dvě funkce používají tuto technologii (zobrazení živého stavu online/offline v avataru uživatele; oznámení v aplikaci o dokončeném exportu). V budoucnu bude rozšířen.
Je třeba povolit Action Cable. Záleží na Redisovi. Pokud chcete tyto funkce používat, ale nejste obeznámeni s konfigurací Redis/ActionCable, doporučujeme migraci na nový virtuální počítač, kde jsou tyto předkonfigurovány.
Vynucený protokol HTTPS
Verze 11 vynucuje protokol HTTPS adresy URL aplikace. Zkontrolujte prosím konfiguraci webového serveru (nginx), abyste se ujistili, že vaše aplikace bude přístupná přes https://[easyredmine_url] z vašeho webového prohlížeče nebo z jakékoli integrace, která se připojuje k vašemu Easy Redmine. Adresy URL http://[easyredmine_url] nebudou ve verzi 11 fungovat!
Konec sub-uri
Jelikož front-end dostává pokročilá vylepšení, není již možné nadále podporovat konfigurace sub-uri. Tento druh konfigurace je citlivý na komponenty Javascriptu a často způsobuje nefunkčnost. Překonfigurujte server na běžnou doménu.
Po upgradu
Migrace textů/textových značek
Jak je napsáno v Poznámky k vydání upustili jsme od podpory různých textových editorů. Pokud jste dříve používali textilní nebo markdown textové úpravy, budete muset spustit migraci formátovaných textů do HTML pomocí příslušného příkazu z nich.
Nejprve zkontrolujte své nedávné formátování textu pomocí:
bundle exec rails r -e production "puts Setting.text_formatting"
Pokud se jedná o Textil, použijte tento příkaz:
bundle exec rake easyproject:textile:migrate_all source_formatting=textile RAILS_ENV=production
nebo toto, pokud je formátování textu Markdown:
bundle exec rake easyproject:textile:migrate_all source_formatting=markdown RAILS_ENV=production
A pokud byla migrace úspěšná, přepněte formátování textu na HTML nakonec pomocí:
bundle exec rails r -e production "puts Setting.text_formatting = 'HTML'"
Pro úplné uplatnění změn restartujte webový server.