11 sürümüne yükseltme
Giriş
Bu kılavuz, sunucu yöneticiler. bulut kullanıcılar rahatlayabilir, ayaklarını uzatabilir ve tüm bu işlemleri bize bırakabilir.
Sürüm 11, önceki sürümlere kıyasla önemli bir teknolojik sıçramadır. Bu sürüme yükseltme, herhangi bir sıkıntıyı önlemek için normal bir yükseltmeden biraz daha fazla hazırlık gerektirir. Bu kılavuzu yumuşak bir geçiş için bir kontrol listesi olarak düşünün.
Teknolojik yığındaki en önemli değişiklikler aşağıda açıklanmıştır. Sürüm notları. Ayrıca önemli işlevsel değişiklikler ve eklenti bilgileri içerir. Henüz yapmadıysanız, lütfen önce onları okuyun.
Kurtarmaya Kolay Sanal Makineler!
Aşağıdaki noktalardan bazıları sizin için geçerli olabilir ve birleşik çaba, katlanmak istediğinizden daha fazla görünebilir. Böyle bir durumda, tam olarak kurulmuş bir uygulamayı indirmenin kolay seçeneği her zaman vardır. VMware/VirtualBox resim (.ova formatı). Sadece sizin için bir VM oluşturacak ve hatta mevcut sisteminizden veri geçişini ayarlayacak olan desteğimize sorun. Böyle bir kararın ödülü olarak, bu makalenin devamını okumanıza gerek yok :)
Yararlı kaynaklar
Adımların çoğuna ilişkin talimatlar, bilgi tabanında ve doğrudan kurulum paketinde (doc/INSTALL_DEBIAN) zaten yayınlanmıştır. Hepsini bu makaleye kopyalamayacağız. Bunun yerine gerekli bağlamı buraya ekleyeceğiz ve önemli değişikliklere odaklanacağız.
Model yükseltme hikayesi
Her bileşeni ayrıntılı olarak incelemeden önce, aynı sunucuda kalırken bir yükseltme model örneğini göstereceğiz.
Mevcut sunucu
- Easy Project sürüm 10.10.1 ile Easy VM
- yakut -v = 2.5.3
- mysql --versiyon = 5.7.31
- redis sunucusu --sürüm = 5.0.3
- mücevher listesi | grep paketleyici = 1.16.6
- düğüm -v (yok)
- puma uygulama sunucusu
- nginx web sunucusu
Easy tarafından sağlanan VM olduğundan, büyük ortam (OS, veritabanı) aynı sunucu üzerinde yükseltmeye izin verir. Bazı bileşenler olduğu gibi iyidir (mysql, redis-server, puma, nginx), bazıları yükseltme gerektirir (ruby, paketleyici), bir gereksinim tamamen eksiktir (Node.js).
Basamaklar
0) En son LTS sürümünü (10.14.x) indirin ve yükleyin - yükseltme yalnızca LTS'den mümkündür.
1) Ruby yükseltmesiyle başlayalım
rvm install ruby 2.6.7 --patch railsexpress
(yeni Ruby yüklenene kadar bekleyin, sizden sudo şifresi isteyebilir)
rvm use ruby-2.6.7 --default
2) Olası çakışmaları önlemek için önceki Ruby sürümünü kaldırmanızı öneririz.
rvm remove ruby-2.5.3
Bu komut, Ruby'yi tüm değerli taşlar ve diğer dosyalarla birlikte kaldıracaktır. kullanmaktan iyidir rvm uninstall
Komut.
3) Şimdi uygulama için gerekli tüm taşları yeniden yüklememiz gerekiyor. Paketleyici ile başlıyoruz
gem install bundler
Hangi paketleyicinin kurulu olduğunu kontrol edelim
gem list | grep bundler
Gibi bir satır döndürmeli
bundler (2.1.4, 2.1.2)
2.2.16'dan daha yüksek bir sürüm olduğundan emin olun
4) Şimdi lütfen /home/easy/your.vm.name adresine gidin
cd /home/easy/your.vm.name
5) düğümleri kurun
sudo apt update
sudo apt upgrade
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt install nodejs
Ve doğru sürüme sahip olup olmadığını kontrol edin
node -v
Gibi bir şey döndürmeli
v14.16.0
Sürümünüzün 14.16 veya üzeri olduğundan emin olun.
6) İstemci bölgesinden paket v11 paketini indirin, sanal makinenize kopyalayın.
7) puma sunucusunu durdur
sudo systemctl stop puma@your.domain.name
Bu noktadan itibaren, otomatik prosedürle mi yoksa manuel yükseltme ile mi devam etmek istediğinizi seçebilirsiniz.
a) Otomatik yükseltme (Tavsiye edilen)
8a) Yükseltmeyi redmine yükleyici aracılığıyla çalıştırın
redmine upgrade name_of_package
9a) Sihirbazdaki adımları izleyin.
b) Manuel yükseltme
8b) Son geçerli/klasörünüzü yeniden adlandırın
mv current/ current_old/
9b) Geçerli klasörü yeniden oluştur
mkdir current
10b) Geçerli klasöre git
cd current/
11b) Paketi buradan açın
unzip /path/to/downloaded/package.zip
12b) Mücevherleri yükle
bundle install
13b) Geçişleri çalıştırın
bundle exec rake easyproject:install RAILS_ENV=production
14b) Her şey yolundaysa, puma'yı yeniden başlatın
sudo systemctl start puma@your.domain.name
Özellikler kontrol listesi
İşletim sistemi
Sürüm 11'den itibaren, desteklenen tek işletim sistemi (uygulamanın doğrudan çalıştığı) Debian, özellikle 10 (Buster) ve 11 (Bullseye).
Sağlanan VM'lerimizde Easy Project çalıştırıyorsanız, büyük olasılıkla bu gereksinimi zaten karşılamışsınızdır. Desteklenmeyen bir işletim sisteminiz varsa, yeni bir sunucuya (tercihen bizim sanal makinemiz) geçiş yapmanız gerekir. İşletim sistemini bir üretim uygulamasının altına yeniden yüklemek veya yükseltmek kesinlikle sizin yararınıza değildir.
Veritabanı sunucusu
Percona/MySQL 5.7+ kullanmanız gerekecek. Kabaca üç durum vardır:
- Daha eski bir Percona sürümünüz var -> aşağıdaki gibi resmi talimatlarla yükseltin:
https://www.percona.com/doc/percona-server/5.7/upgrading_guide_56_57.html - Farklı bir MySQL dağıtımınız var (MariaDB gibi) -> yeni sunucuya (tercihen bizim sanal makinemiz) geçiş yapmanızı öneririz.
- PostgreSQL'iniz var -> yeni sunucuya (tercihen bizim sanal makinemiz) geçiş yapmanızı öneririz. Geçişin kendisinden önce veritabanının dönüştürülmesi gerekir. Çeşitli dönüştürme araçlarını test ettik ve en uygun olanlar için talimatlar sağladı. Biz de sizin için dönüşümü gerçekleştirmeye hazırız.
Yakut
Uygulamanın arkasındaki dilin, insanların iletişim kurduğu dil gibi güncel tutulması gerekir. Ruby'nin yükseltilmesi anlatılıyor . Mevcut Ruby'niz çok eski değilse aynı sunucuda devam edebilirsiniz.
Bundler
Yakut taşları yönetmek için bir yakut mücevher. Easy Project bunlardan 200'den fazlasını kullandığından, paketleyici çok önemli bir bileşendir.
Yüklemek için
gem install bundler
Sürümü doğrulamak için
gem list | grep bundler
Sürüm 2.2.x otomatik olarak kurulmalıdır. Olmazsa, lütfen takip edin resmi belgeler.
Redis
v11'deki bazı yeni özellikleri ve performans iyileştirmelerini kolaylaştırmak için Sidekiq'i redis-server ile kullanıyoruz. Easy VM'ler zaten bu bileşenleri içerir. Sürüm konusunda dikkatli olun, ER11 redis-server 5+ gerektirir.
Burada, cihazınızda bulunan ana kurulum kılavuzundan bir alıntı yer almaktadır. v11 paketi altında belge/INSTALL_DEBIAN
- Redis ve sidekiq'i kurun
Kullanıcıya kolay geçiş yapın.
vim /home/easy/current/config/additional_environment.rb
eğer 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, ad alanı: redis_namespace }
son
Sidekiq.configure_client |config| config.redis = { url: redis_url, ad alanı: redis_namespace }
son son
vim /home/kolay/current/config/sidekiq.rb
:verbose: false :pidfile: ../sidekiq.pid :logfile: ./log/sidekiq.log :concurrency: <%= ENV["SIDEKIQ_WORKERS"] || %2> :sıralar:
- kritik
- varsayılan
- yeniden hesapla_özel_alanlar
- kolay_git
- kolay_eylemler
- easy_mail_campaigns
- kolay entegrasyonlar
- postacılar
- easy_rake_tasks
- düşük
node.js
Son olarak, son büyük gereksinim. Kurulum oldukça basit
sudo apt update
sudo apt upgrade
curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt install nodejs
14.16 sürümüne sahip olduğunuzdan emin olun. Mevcut belgeler .
WebSockets
Uygulamanın çalışmasını engelleyen katı bir gereklilik olmasa da, iki özellik bu teknolojiyi kullanır (kullanıcı avatarında canlı çevrimiçi/çevrimdışı durumu gösterme; bitmiş dışa aktarma hakkında uygulama içi bildirim). İleride genişletilecektir.
Eylem Kablosunun etkinleştirilmesi gerekiyor. Redis'e bağlıdır. Bu özellikleri kullanmak istiyorsanız ancak Redis/ActionCable yapılandırmasına aşina değilseniz, bunların önceden yapılandırıldığı yeni VM'ye geçmenizi öneririz.
Zorunlu HTTPS protokolü
Sürüm 11, uygulama URL'sinin HTTPS protokolünü zorlar. Uygulamanızın http üzerinden erişilebilir olduğundan emin olmak için lütfen web sunucusu (nginx) yapılandırmasını kontrol edin.s://[easyproject_url] web tarayıcınızdan veya Easy Project'inize bağlanan tüm entegrasyonlardan. http://[easyproject_url] URL'leri v11'de çalışmayacak!
Alt uri'nin sonu
Ön uç gelişmiş geliştirmeler aldığından, artık desteklemeye devam etmek mümkün değil. alt uri yapılandırması. Bu tür bir yapılandırma, Javascript bileşenlerine karşı hassastır ve genellikle işlev bozukluğuna neden olur. Lütfen sunucunuzu normal etki alanına yeniden yapılandırın.
Yükseltildikten sonra
Tekstil/Markdown metinleri geçişi
yazıldığı gibi sürüm notları farklı metin editörlerinin desteğini bıraktık. Daha önce tekstil veya işaretleme metni düzenlemeyi kullandıysanız, bunların ilgili komutunu kullanarak biçimlendirilmiş metinlerin HTML'ye geçişini çalıştırmanız gerekecektir.
Lütfen önce son metin biçimlendirmenizi şu şekilde kontrol edin:
bundle exec rails r -e production "puts Setting.text_formatting"
Tekstil ise, lütfen şu komutu kullanın:
bundle exec rake easyproject:textile:migrate_all source_formatting=textile RAILS_ENV=production
veya bu, metin biçimlendirme Markdown ise:
bundle exec rake easyproject:textile:migrate_all source_formatting=markdown RAILS_ENV=production
Taşıma başarılı olduysa, metin biçimlendirmenizi son olarak aşağıdakilerle HTML'ye değiştirin:
bundle exec rails r -e production "puts Setting.text_formatting = 'HTML'"
Değişiklikleri tam olarak uygulamak için web sunucusunu yeniden başlatın.