Easy virtuální stroj (VM)
Úvod
Tato dokumentace je určena pro virtuální stroje (VM), které poskytuje Easy Software klientům, kteří zakoupili serverové řešení. Je platná pro VM generované po listopadu 2024 s integrovaným Dockerem. Pokud stále používáte virtuální stroj s původním způsobem instalace, důrazně doporučujeme přejít na nový tento VM s Dockerem nebo na nativní instalaci aplikace v Dockeru. Více informací o Dockeru naleznete zde.
Může také posloužit jako inspirace pro vaše vlastní serverové prostředí, ale v takovém případě nejsou poskytovány žádné záruky kvůli různorodosti možných komponent a technologií, které můžete používat.
VM je nakonfigurována pouze pro malé lokality (cca 10 současně pracujících uživatelů). VM je téměř připravena na produkční prostředí, ale VYŽADUJE zkušeného administrátora, který ji nasadí do vašeho prostředí, nastaví zálohování, monitorování, síťové a bezpečnostní politiky atd. Easy Software nemůže nést odpovědnost za provoz této VM ve vašem dedikovaném prostředí, VM slouží jako ukázka, jak lze aplikaci hostovat.
Tento dokument se zmiňuje o "Aplikaci", což lze zaměnit za "Easy Project".
První kroky
Protože byla VM vytvořena v určitém časovém okamžiku, je možné, že některé komponenty již vydaly opravy nebo bezpečnostní aktualizace. Proto byste vždy měli začít zálohou a poté aktualizací operačního systému. Tím nainstalujete nejnovější bezpečnostní opravy a aktualizujete případné zastaralé komponenty.
Popis VM
OS je Debian v 64bitové edici.
Důležité výchozí hodnoty jsou:
- OS je dostupný přes SSH na portu 22
- Firewall není nastaven (je to na systémových administrátorech)
- Disk má ~20 GB
- /boot 512M
- /19G
- swap 512M
- pro zvětšení disku použijte dostupné LVM
- Aplikace naslouchá na HTTPS, ale se samo-podepsaným certifikátem, takže jej musíte co nejdříve nahradit (více detailů níže)
- Aplikace běží v /home/easy/docker.
Přihlášení k Linuxu:
- uživatelské jméno: easy
- heslo: e4syPwd-
Heslo prosím změňte co nejdříve. K tomu spusťte příkaz passwd v terminálu.
Přihlášení k Mysql:
Jednoduše použijte příkaz mysql pro připojení k databázi.
Přihlášení k aplikaci:
Výchozí přihlašovací údaje (v případě "čisté" databáze) jsou:
- uživatelské jméno: admin
- heslo: admin
Výchozí přihlašovací údaje pro VM s demo daty jsou:
- uživatelské jméno: manager
- heslo: easy848
V případě databáze z vaší Cloud aplikace zůstávají hesla stejná jako předtím.
Struktura domovské složky aplikace
.
├── .my.cnf # konfigurace pro připojení k mysql
└── docker
├── docker-compose.yml # docker compose soubor, sestavuje docker stack
├── env.EXAMPLE # obsahuje příklady proměnných, které lze použít
├── .env # produkční proměnné pro aplikaci a DB
├── files # přílohy a další soubory
├── nginx.conf # nastavení nginx proxy, která jsou v použití
├── README.md # README s dalšími užitečnými informacemi
Zodpovědnost administrátora
VM běží na nejnovější doporučené verzi Debianu. Systém vyžaduje běžnou údržbu, jako například:
- 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
Aktualizace
Provádějte pravidelné bezpečnostní aktualizace systému, ideálně alespoň jednou týdně. Před aktualizací se ujistěte, že máte k dispozici nejnovější funkční zálohu.
Oficiální dokumentace k provádění pouze bezpečnostních aktualizací je dostupná na wiki.debian.org.
Monitorování zdrojů
Easy Software má dobré zkušenosti s nástrojem Prometheus.
Základní dokumentace pro Node Exporter a Prometheus je na prometheus.io.
Nejlepší rychlý start s grafanou naleznete na grafana.com.
Podle vaší potřeby upravte nastavení zdrojů VM, například navýšení RAM nebo počtu jader. Tyto konfigurace by měl pravidelně provádět administrátor vašeho virtuálního prostředí.
Pokud potřebujete plnou podporu prostředí od Easy Software (optimalizace bezpečnosti a výkonu, zálohování, monitorování, atd.), doporučujeme přejít na naše Cloudové řešení.
Zálohy dat
Předkonfigurované zálohování ve VM je funkční příklad, který je třeba přizpůsobit vaší infrastruktuře a pravidelně monitorovat. Pamatujte, že správná záloha by měla být:
- zkontrolována po dokončení zálohování (alespoň velikost zálohy)
- uložena na bezpečném místě
- vzdálena od běžícího prostředí (alespoň v jiném městě)
- pravidelně obnovována pro ověření schopnosti zotavení
Aplikace ukládá data na dvě místa, proto nezapomeňte zálohovat obě z nich.
DB
Zálohování databáze může být snadno provedeno nesprávně. Nejlepším způsobem zálohování databáze MySQL je dump databáze, jak je uvedeno v příkladu skriptu. Tento postup vytváří nezávislé zálohy, které lze obnovit celé, nebo použít pouze část starých dat.
Příklad:
mysqldump --add-drop-tables --routines --triggers --flush-logs $DATABASE_NAME > path/to/file_where_db_will_be_stored.sql
Kopírování souborů z /var/lib/mysql NENÍ správný způsob zálohování DB.
Soubory
Každý nahraný soubor/příloha v aplikaci je uložena ve složce /home/easy/docker/files. Celý obsah této složky by měl být zálohován. V tomto případě stačí jednoduše zkopírovat obsah.
Bezpečnostní politiky
Žádné externí SSH klíče nejsou zahrnuty. Firewall není nastaven.
Migrace dat do této VM
Postup pro import starších dat aplikace nebo Redmine (ZDROJ) do VM (CÍL). Tento postup funguje ve většině případů, ale nemusí fungovat, pokud ve své zdrojové instanci Redmine používáte zásuvné moduly třetích stran.
1. Ze ZDROJE vytvořte MySQL dump soubor:
mysqldump --opt easy > backup.sql
2. Přesuňte backup.sql do CÍLE
3. Připojte se do aplikace v kontejneru na CÍLI:
docker exec -it docker-app-1 bash
4. Znovu vytvořte databázi na CÍLI
bundle exec rake db:drop db:create RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1
- Opusťte kontejner:
exit
5. Naimportujte backup.sql
mysql [db_name] < backup.sql
6. Přesuňte přílohy a další soubory ze ZDROJE [redmine]/files do CÍLE /home/docker/files
7. Opětovně přejděte do aplikačního kontejneru na CÍLI:
docker exec -it docker-app-1 bash
8. Spusťte:
bundle exec rake easyproject:install RAILS_ENV=production
- Opusťte kontejner
exit
9. Restartujte aplikaci.
V /home/easy/docker spusťte následující:
docker compose down; docker compose up -d