Snadný virtuální stroj (VM)
Úvod
Tato dokumentace je určena pro virtuální stroje (VM) poskytované společností Easy Software pro klienty, kteří si zakoupili serverové řešení. Platí pro virtuální počítače vygenerované po 1. březnu 2022.
Může také sloužit jako inspirace pro vaše vlastní serverové prostředí, ale v takovém případě neexistují žádné záruky kvůli rozmanitosti možných komponent a technologií, které můžete používat.
VM je konfigurován pouze pro malé lokality (cca 10 současně pracujících uživatelů). VM je téměř produkční připravenost, ale VYŽADUJE zkušeného administrátora, aby nainstaloval VM do vašeho prostředí, nastavil zálohování, monitorování, síťování, bezpečnostní politiky atd. Easy Software nemůže převzít odpovědnost za běh tohoto VM ve vašem vyhrazeném prostředí, VM je příkladem toho, jak může aplikace být hostován.
Tento soubor README se týká „aplikace“, kterou lze nahradit buď „Easy Project“ nebo „Easy Redmine“.
První kroky
Protože byl virtuální počítač vygenerován v určitém okamžiku, je možné, že některé součásti již vydaly nějaké záplaty nebo opravy zabezpečení v době, kdy jej nasazujete.
Proto byste měli vždy začít zálohou a následně aktualizace OS. Nainstaluje nejnovější opravy zabezpečení a aktualizuje možná zastaralé součásti.
Popis VM
OS je Debian v 64bitové edici.
Důležité výchozí hodnoty jsou:
- OS je dostupný přes SSH přes port 22
- Firewall není nastaven (je na správcích systému)
- Disk má ~100 GB
- /boot 512M
- / 30G
- /home 60G
- vyměnit 4G
- pro zvětšení disku použijte dostupný LVM
- Aplikace naslouchá na HTTPS, ale s certifikátem podepsaným svým držitelem, takže jej musíte co nejdříve nahradit (podrobnosti níže)
- Aplikace běží v /home/easy/[název_aplikace]/current.
Linux přihlášení:
- uživatelské jméno: snadné
- heslo: e4syPwd-
Změňte jej prosím co nejdříve. Chcete-li tak učinit, spusťte příkaz passwd v terminálu
Mysql přihlášení:
Jednoduše použijte příkaz mysql your_app_name (všechny tečky nebo pomlčky v názvu aplikace by měly být nahrazeny podtržením. Příklad: your-app-name by měl být your_app_name)
Přihlášení do aplikace:
Výchozí přihlášení (v případě "čisté" databáze) je
- uživatelské jméno: admin
- heslo: admin
Výchozí přihlášení pro virtuální počítač s demo data je:
- uživatelské jméno: manažer
- heslo: easy848
V případě databáze z vaší Cloudové aplikace zůstávají hesla tak, jak jste je měli.
Struktura domovské stránky aplikace
.
├── zálohy # skript zálohování tam ukládá data
└── $APP_NAME
├── aplikace.pid
├── application.sock # nginx používá tuto zásuvku
├── konfigurace
│ ├── # předem vygenerované konfigurace aplikací
│ ├── # (databáze, pošta, tajemství, aplikační server atd...)
│ └── ...
├── proud
│ ├── konfigurace # konfigurace všech aplikací
│ │ ├── configuration.yml # zde nastavte konfiguraci odchozí pošty
│ │ ├── database.yml # zde konfigurován přístup k databázi
│ │ └── ...
│ ├── soubory # trvalá data aplikace
│ ├── protokol # protokoly aplikací
│ ├── veřejné # statické soubory
│ └── verze # verze aplikace
└── public_html -> /home/easy/$APP_NAME/current
Restartování aplikace je jednoduše pomocí "systemctl restart puma@[název_aplikace]" jako sudo
Odpovědnosti zákazníka
Virtuální počítač běží na nejnovější doporučené verzi Debianu. Systém vyžaduje běžnou údržbu jako:
- pravidelné aktualizace
- monitorování zdrojů (volné místo, využití paměti, zatížení, ...)
- zálohování dat na nezávislý disk
- bezpečnostní politiky
Zprávy
Často provádějte bezpečnostní aktualizace systému. Doporučujeme provádět alespoň jednou týdně. Před aktualizací se prosím ujistěte, že nejnovější záloha je dostupná a funkční.
Oficiální dokumentace, jak spouštět pouze bezpečnostní aktualizace https://wiki.debian.org/UnattendedUpgrades
Monitorování zdrojů
Easy Software má s Prometheem dobré zkušenosti. Proto je node_exporter součástí virtuálního počítače od verze 1.3. 2022.
Oficiální velmi základní dokumentace pro Node Exporter a Prometheus je na https://prometheus.io/docs/guides/node-exporter/ Nejlepší rychlý start grafana dashboard je na https://grafana.com/grafana/dashboards/1860
V závislosti na vašem použití byste měli vyladit nastavení prostředků virtuálního počítače, například zvýšit množství paměti RAM nebo počet jader poskytovaných virtuálnímu počítači. Všechny tyto konfigurace by měl pravidelně provádět správce virtuálního prostředí.
Exportér uzlu naslouchá na portu 9100.
Zakázat node_exporter
node_exporter lze deaktivovat spuštěním:
systemctl stop node_exporter.service
systemctl zakázat node_exporter.service
maska systemctl node_exporter.service
Zabraňuje spuštění exportéru uzlů po příštím restartu...
Pokud potřebujete plnou podporu prostředí od Easy Software (optimalizace zabezpečení a výkonu, zálohování, monitorování atd.), doporučujeme přejít na naše cloudová řešení.
Zálohování dat
Předkonfigurované zálohování, které je přítomno ve virtuálním počítači, je funkční příklad, který musí být přizpůsoben vaší infrastruktuře a musí být monitorován. Mějte prosím na paměti, že správná záloha by měla být:
- zkontrolováno po dokončení procesu zálohování (zkontrolujte alespoň velikost zálohy)
- uchovávány na bezpečném místě
- vzdálené od běžeckého prostředí (alespoň v jiném městě)
- jednou za čas obnovit, abyste otestovali svou schopnost provést obnovu
Aplikace ukládá data na dvě místa, proto si nezapomeňte obě zálohovat.
DB
Zálohování databáze lze velmi snadno provést nesprávně. Nejlepší a nejbezpečnější způsob, jak zálohovat databázi mysql, je přes výpis databáze, jak můžete vidět na příkladu skriptu. Vytváří zálohy nezávislé na verzi, které lze obnovit celé nebo vám umožní získat pouze část starých dat.
Příklad:
mysqldump --add-drop-tables --routines --triggers --flush-logs $DATABASE_NAME > cesta/k/souboru_kde_db_bude_uložen.sql
Kopírování souborů z /var/lib/mysql je NESPRÁVNÝ způsob ukládání záloh DB.
soubory
Každý nahraný soubor/příloha v aplikaci je uložen v /home/easy/$APP_NAME/current/files. Celý obsah tohoto adresáře by měl být zálohován. V tomto případě můžete obsah jednoduše zkopírovat.
Bezpečnostní politiky
VM obsahuje klíče SSH pro inženýry Easy Software v home/easy/.ssh/authorized_keys. Také pravidla pro firewall iptables v /etc/iptables umožňují přístup k IP adrese Easy Software.
Obě tyto zásady jsou určeny pro případnou vzdálenou podporu našim zaměstnancům na vaši žádost. Zásady přístupu jsou plně pod vaší kontrolou.
Automatické úkoly
Všechny automatické úlohy plánují CRON a Sidekiq, které spouštějí naplánované úlohy každých 5 metrů. Doporučujeme nespouštět tyto úlohy v kratších intervalech kvůli jejich vysokým nárokům na výkon. Chcete-li provést jakékoli změny, můžete je upravit spuštěním příkazu níže v části user easy
crontab -e
Podrobná dokumentace pro cron
https://www.easyredmine.com/resources/redmine-installation/common-troubles/cron-not-working-helpdesk-emails-alerts-repeating-tasks-etc-are-not-automatically-processed
Migrujte data do tohoto virtuálního počítače
Jak importovat starší data aplikací nebo Redmine (SOURCE) do VM (TARGET). Ve většině případů to funguje, ale tento postup nemusí fungovat v případě, že ve své zdrojové instanci Redmine používáte pluginy třetích stran.
1. ze svého (ZDROJE) vytvořte soubor výpisu MySQL:
mysqldump --opt easy > backup.sql
2. přenést backup.sql do (TARGET)
3. přejděte do složky Aplikace na (TARGET)
cd /home/easy/[název_aplikace]/current
4. znovu vytvořit (TARGET) databázi
balík exec rake db:drop db:create RAILS_ENV=produkce DISABLE_DATABASE_ENVIRONMENT_CHECK=1
5. importovat backup.sql
mysql [db_name] < backup.sql
6. přeneste přílohy a další soubory ze (SOURCE)[redmine]/files do (TARGET)/home/easy/[application_name]/current/files
7. běh:
svazek exec rake easyproject: nainstalovat RAILS_ENV = výroba
8. restartujte aplikaci
sudo systemctl restart puma@[název_aplikace]
Řešení problémů
Chybí sidekiq
Na některých počítačích není soubor sidekiq@.service přidán. Zkontrolujte prosím složku /etc/systemd/system, pokud je uveden soubor sidekiq@.service. Pokud ne - přidejte jej. Měl by obsahovat následující:
[Jednotka]
Description=Služba SIDEKIQ pro %i
After=redis.service
PartOf=puma@%i.service unicorn@%i.service
[Servis]
Typ = jednoduchý
PIDFile=/home/easy/%i/sidekiq.pid
Životní prostředí = RAILS_ENV = výroba
Prostředí=MALLOC_ARENA_MAX=2
Uživatel = snadný
Skupina=www-data
WorkingDirectory=/home/easy/%i/public_html
ExecStart=/usr/local/rvm/bin/rvm výchozí provést balíček exec sidekiq -e production
ExecReload=/bin/kill -s TSTP $MAINPID
Restart = vždy
[Nainstalujte]
WantedBy=multi-user.target puma@%i.service unicorn@%i.service
Po vytvoření souboru spusťte
sudo systemctl daemon-reload
restartujte pumu
Zálohy MYSQL jsou zaměřeny na nesprávnou databázi
Chcete-li tento problém vyřešit, otevřete soubor /usr/local/bin/mysql-backups.sh a nahraďte název DB „easy“ na databázi aplikace (obvykle je to stejné jako název aplikace, ale všechny pomlčky a tečky by měly být nahrazeny podtržením)