Kolay sanal makine (VM)
Giriş
Bu belge, Sunucu çözümünü satın alan İstemciler için Kolay Yazılım tarafından sağlanan sanal makineler (VM) içindir. 1 Mart 2022'den sonra oluşturulan VM'ler için geçerlidir.
Aynı zamanda kendi sunucu ortamınızın ilham kaynağı olabilir, ancak böyle bir durumda, kullandığınız olası bileşen ve teknolojilerin çeşitliliği nedeniyle hiçbir garanti yoktur.
VM yalnızca küçük siteler için yapılandırılmıştır (aynı anda çalışan kullanıcılar için cca 10). sanal makine neredeyse üretime hazır ancak ortamınıza VM kurmak, yedekleme, izleme, ağ oluşturma, güvenlik politikaları vb. kurmak için deneyimli bir yönetici GEREKTİRİR. Easy Software, bu VM'nin özel ortamınızda çalıştırılmasından sorumlu tutulamaz, VM, uygulamanın nasıl yapabileceğine bir örnektir. ev sahipliği yapmak.
Bu BENİOKU, "Easy Project" veya "Easy Redmine" ile değiştirilebilen "Uygulama"yı ele alır.
İlk adım
VM belirli bir zamanda oluşturulduğundan, bazı bileşenlerin siz onu dağıtırken bazı yamaları veya güvenlik düzeltmelerini zaten yayınlamış olması mümkündür.
Bu yüzden her zaman bir yedekleme ile başlamalısınız ve ardından işletim sistemi güncellemesi. En son güvenlik düzeltmelerini yükleyecek ve muhtemelen güncel olmayan bileşenleri güncelleyecektir.
sanal makine açıklaması
İşletim sistemi 64 bit sürümde Debian'dır.
Önemli varsayılanlar şunlardır:
- İşletim sistemi, 22 numaralı bağlantı noktası üzerinden SSH tarafından kullanılabilir
- Güvenlik duvarı ayarlanmadı (sistem yöneticilerine kalmış)
- Disk ~100 GB
- /önyükleme 512M
- / 30G
- /ev 60G
- 4G'yi değiştir
- diski artırmak için mevcut LVM'yi kullanın
- Uygulama HTTPS'de dinler ancak kendinden imzalı sertifikaya sahiptir, bu nedenle onu en kısa sürede değiştirmeniz gerekir (daha fazla ayrıntı aşağıdadır)
- Uygulama /home/easy/[application_name]/current içinde çalışıyor.
Linux'a giriş:
- kullanıcı adı: kolay
- şifre: e4syPwd-
Lütfen en kısa sürede değiştirin. Bunu yapmak için komutu çalıştırın passwd terminalde
Mysql oturum açma:
Basitçe komutu kullanın mysql uygulamanız_adınız (uygulama adındaki tüm noktalar veya tireler alt çizgilerle değiştirilmelidir. Örnek: uygulamanızın adı, uygulamanızın_adı olmalıdır)
Uygulama girişi:
Varsayılan oturum açma ("temiz" veritabanı olması durumunda)
- kullanıcı adı: admin
- şifre: admin
VM için varsayılan oturum açma demo verileri olduğu:
- Kullanıcı adı: yönetici
- şifre: easy848
Bulut uygulamanızdan veritabanı olması durumunda, parolalar sahip olduğunuz gibi kalır.
Uygulamanın evinin yapısı
.
├── yedekler # yedekleme komut dosyası verileri oraya kaydeder
└── $APP_NAME
├── uygulama.pid
├── application.sock # nginx bu soketi kullanır
├── yapılandırma
│ ├── # önceden oluşturulmuş uygulama konfigürasyonları
│ ├── # (veritabanı, postalama, sırlar, uygulama sunucusu, vb...)
│ └── ...
├── akım
│ ├── yapılandırma # tüm uygulama yapılandırmaları
│ │ ├── configuration.yml # giden posta yapılandırmasını buradan ayarlayın
│ │ ├── database.yml # veritabanı erişimi burada yapılandırılmış
│ │ └── ...
│ ├── dosyalar # kalıcı uygulama verileri
│ ├── günlük # uygulama günlükleri
│ ├── genel # statik dosyalar
│ └── sürüm # uygulama sürümü
└── public_html -> /home/easy/$APP_NAME/current
Uygulamayı yeniden başlatmak basitçe "systemctl restart puma@[application_name]" ile sudo olarak
Müşteri sorumlulukları
VM, Debian'ın önerilen en son sürümünde çalışır. Sistem, aşağıdakiler gibi ortak bakım gerektirir:
- düzenli güncellemeler
- kaynak izleme (boş alan, bellek kullanımı, yük, ...)
- bağımsız bir diske veri yedeklemeleri
- Güvenlik politikaları
Güncellemeler
Sistemin güvenlik güncellemelerini sık sık yapın. Haftada en az bir kez yapmanızı öneririz. Güncellemeden önce lütfen en son yedeklemenin mevcut olduğundan ve çalıştığından emin olun.
Yalnızca güvenlik güncellemelerinin nasıl çalıştırılacağına ilişkin resmi belgeler https://wiki.debian.org/UnattendedUpgrades
Kaynak izleme
Easy Software, Prometheus ile iyi bir deneyime sahiptir. Bu nedenle, node_exporter, 1.3'ten bu yana VM'nin bir parçasıdır. 2022.
Node Exporter ve Prometheus için resmi çok temel belgeler https://prometheus.io/docs/guides/node-exporter/ adresindedir. En iyi hızlı başlangıç grafana panosu https://grafana.com/grafana/dashboards/1860 adresindedir.
Kullanımınıza bağlı olarak VM kaynak ayarlarını ayarlamalısınız, örneğin VM'ye sağlanan RAM miktarını veya çekirdek sayısını artırın. Tüm bu yapılandırmalar, sanal ortam yöneticiniz tarafından düzenli olarak yapılmalıdır.
Düğüm dışa aktarıcı 9100 numaralı bağlantı noktasını dinler.
node_exporter'ı devre dışı bırak
node_exporter aşağıdakileri çalıştırarak devre dışı bırakılabilir:
systemctl node_exporter.service'i durdur
systemctl node_exporter.service'i devre dışı bırak
systemctl maskesi node_exporter.service
Bir sonraki yeniden başlatmanın ardından düğüm dışa aktarıcısının başlatılmasını engeller...
Easy Software'den tam ortam desteğine (güvenlik ve performans optimizasyonları, yedekleme, izleme vb.) ihtiyacınız varsa, Bulut çözümlerimize aktarmanızı öneririz.
Veri yedeklemeleri
VM'de bulunan önceden yapılandırılmış yedekleme, altyapınıza uyması ve izlenmesi gereken çalışan bir örnektir. Lütfen uygun bir yedeklemenin şu şekilde olması gerektiğini unutmayın:
- yedekleme işlemi tamamlandıktan sonra kontrol edildi (en azından yedeklemenin boyutunu kontrol edin)
- güvenli bir yerde tutulur
- koşu ortamından uzak (en azından farklı bir şehirde)
- kurtarma gerçekleştirme yeteneğinizi test etmek için arada bir geri yüklenir
Uygulama verileri iki yerde depolar, bu nedenle ikisini de yedeklemeyi unutmayın.
DB
Veritabanı yedeklemesi çok kolay bir şekilde yanlış yapılabilir. MySQL veritabanının yedeklenmesinin en iyi ve en güvenli yolu, örnek komut dosyasında da görebileceğiniz gibi veritabanı dökümüdür. Tamamen geri yüklenebilen veya eski verilerin yalnızca bir kısmını almanıza izin veren sürümden bağımsız yedeklemeler yapar.
Örnek:
mysqldump --add-drop-tables --routines --triggers --flush-logs $DATABASE_NAME > path/to/file_where_db_will_be_stored.sql
Dosyaları /var/lib/mysql'den kopyalamak, DB yedeklerini kaydetmenin YANLIŞ bir yoludur.
dosyalar
Uygulamaya yüklenen her dosya/ek, /home/easy/$APP_NAME/geçerli/dosyalar. Bu dizinin tüm içeriği yedeklenmelidir. Bu durumda, içeriği kopyalamanız yeterlidir.
Güvenlik politikaları
VM, home/easy/.ssh/authorized_keys içindeki Easy Software mühendisleri için SSH anahtarlarını içerir. Ayrıca, /etc/iptables içindeki iptables güvenlik duvarı kuralları, bir Easy Software IP adresine erişime izin verir.
Bu politikaların her ikisi de, talebiniz üzerine personelimiz tarafından nihai uzaktan destek içindir. Erişim politikaları tamamen sizin kontrolünüz altındadır.
Otomatik görevler
Tüm otomatik görevler, her 5 metrede bir planlanan işleri başlatan CRON ve Sidekiq tarafından planlanır. Yüksek performans gereksinimleri nedeniyle bu işleri daha kısa aralıklarla çalıştırmamanızı öneririz. Herhangi bir değişiklik yapmak için, kullanıcı kolaylığı altında aşağıdaki komutu çalıştırarak bunları düzenleyebilirsiniz.
crontab -e
cron için ayrıntılı belgeler
https://www.easyredmine.com/resources/redmine-installation/common-troubles/cron-not-working-helpdesk-emails-alerts-repeating-tasks-etc-are-not-automatically-processed
Verileri bu sanal makineye taşıyın
Eski Uygulama veya Redmine verilerinin (KAYNAK) VM'ye (HEDEF) nasıl aktarılacağı. Bu çoğu durumda işe yarar, ancak kaynak Redmine örneğinizde 3. taraf eklentileri kullanmanız durumunda bu prosedür çalışmayabilir.
1. (SOURCE) dosyanızdan MySQL döküm dosyası oluşturun:
mysqldump --opt easy > backup.sql
2. backup.sql dosyasını (TARGET) içine aktarın
3. (TARGET) üzerindeki Uygulama klasörüne gidin
cd /home/easy/[uygulama_adı]/geçerli
4. (HEDEF) veritabanını yeniden oluşturun
paket yürütme komisyonu db:drop db:create RAILS_ENV=üretim DISABLE_DATABASE_ENVIRONMENT_CHECK=1
5. backup.sql dosyasını içe aktarın
mysql [db_name] < backup.sql
6. (SOURCE)[redmine]/files dizinindeki ekleri ve diğer dosyaları (TARGET)/home/easy/[application_name]/current/files konumuna aktarın
7. çalıştırın:
exec tırmık EasyProject paket: RAILS_ENV = üretim yüklemek
8. uygulamayı yeniden başlatın
sudo systemctl puma@[uygulama_adı] yeniden başlat
Sorun giderme
eksik sidekiq
Bazı makinelerde sidekiq@.service dosyası eklenmez. sidekiq@.service dosyası sunuluyorsa lütfen /etc/systemd/system klasörünü kontrol edin. Değilse - lütfen ekleyin. Bir sonrakini içermelidir:
[Birim]
Açıklama=%i için SIDEKIQ hizmeti
Sonra=redis.service
PartOf=puma@%i.service tek boynuzlu at@%i.service
[Hizmet]
Tür = basit
PIDFile=/home/easy/%i/sidekiq.pid
Çevre = RAILS_ENV = üretim
Çevre=MALLOC_ARENA_MAX=2
Kullanıcı = kolay
Grup=www-veri
Çalışma Dizini=/home/easy/%i/public_html
ExecStart=/usr/local/rvm/bin/rvm varsayılanı paket yapmak exec sidekiq -e üretimi
ExecReload=/bin/kill -s TSTP $MAINPID
Yeniden her zaman =
[Yükleme]
WantedBy=multi-user.target puma@%i.service unicorn@%i.service
Dosya oluşturulduktan sonra çalıştırın
sudo systemctl daemon-reload
puma'yı yeniden başlat
MYSQL Yedekleri yanlış veritabanına hedefleniyor
Bu sorunu düzeltmek için lütfen /usr/local/bin/mysql-backups.sh dosyasını açın ve DB adını "kolay" uygulama DB'sine değiştirin (genellikle uygulama adıyla aynıdır ancak tüm tireler ve noktalar alt çizgilerle değiştirilmelidir)