cs
Jazyk
  • en
  • cs
  • hu
  • it
  • es
  • fr
  • de
  • ru

Easy virtuální stroj (VM)

Úvod

Tato dokumentace je určena pro virtuální stroje (VM) poskytované společností Easy Software pro klienty, kteří zakoupili serverové řešení. Platí pro VM vytvořené 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ě nejsou žádné záruky kvůli různorodosti možných komponent a technologií, které můžete používat.

VM je konfigurován pouze pro malé webové stránky (cca 10 současně pracujících uživatelů). VM je téměř připraven pro produkční prostředí, ale vyžaduje zkušeného správce, který nainstaluje VM do vašeho prostředí, nastaví zálohování, monitorování, síť a bezpečnost atd. Společnost Easy Software nemůže nést odpovědnost za běh této VM ve vašem vlastním prostředí, VM je příkladem, jak může být aplikace hostována.
Tento soubor README se vztahuje k "Aplikaci", kterou lze nahradit buď "Easy Project" nebo "Easy Redmine".

První kroky

Jelikož byl VM vytvořen v určitém čase, je možné, že některé komponenty již vydaly nějaké opravy nebo bezpečnostní záplaty v době, kdy jej nasazujete.
Proto byste měli vždy začít zálohováním a následně aktualizací operačního systému. Tím se nainstalují nejnovější bezpečnostní záplaty a aktualizují se případně zastaralé komponenty.

Popis VM

Operačním systémem je Debian v 64bitové verzi

Důležité výchozí hodnoty jsou:

  • Operační systém je dostupný přes SSH na portu 22
  • Firewall není nastaven (je to na systémových administrátorech)
  • The disk je přibližně 100 GB
    • /boot 512M
    • /30G
    • /home 60G
    • swap 4G
    • pro zvětšení kapacity použijte připravené LVM
  • Aplikace naslouchá na HTTPS, ale s vlastním podepsaným certifikátem, takže ho musíte co nejdříve nahradit (více podrobností níže)
  • Aplikace běží v /home/easy/[název aplikace]/current.

Přihlašování do Linuxu:

  • uživatelské jméno: easy
  • heslo: e4syPwd-

Změňte ho co nejdříve, použitím příkazu passwd v terminálu

Přihlašování do Mysql:
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žítky. Příklad: your-app-name by měl být your_app_name)

Přihlašování do aplikace:
V případě "čisté" databáze je výchozí přihlášení následující:

  • uživatelské jméno: admin
  • heslo: admin

V případě databáze s demo daty je výchozí přihlášení následující:

  • username: manager
  • password: easy848

V případě databáze z vaší Cloud aplikace zůstávají hesla stejná, jak jste je měli.

Struktura domovské stránky aplikace

.
├── zálohy                 # skript pro zálohování ukládá data sem
└── $APP_NAME
    ├── application.pid           
    ├── application.sock    # nginx používá tento socket
    ├── config
    │   ├──                 # předgenerované konfigurace aplikace  
    │   ├──                 # (databáze, mailing, tajemství, aplikační server, atd...)
    │   └── ...
    ├── aktuální
    │   ├── config                 # všechny konfigurace aplikace
    │   │    ├── configuration.yml # nastavení odchozí pošty se nastavuje zde
    │   │    ├── database.yml      # přístup k databázi se nastavuje zde
    │   │    └── ...
    │   ├── soubory                  # trvalá data aplikace
    │   ├── log                    # logy aplikace
    │   ├── veřejné                 # statické soubory
    │   └── verze                # verze aplikace
    └── public_html -> /home/easy/$APP_NAME/current

Restartování aplikace je jednoduché pomocí "systemctl restart puma@[název_aplikace]" jako sudo

Zodpovědnosti zákazníka

VM 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

Aktualizace

Provádějte často bezpečnostní aktualizace systému. Doporučujeme to provádět alespoň jednou týdně. Před aktualizací se ujistěte, že je k dispozici a funkční nejnovější záloha.

Oficiální dokumentace, jak spustit pouze bezpečnostní aktualizace: https://wiki.debian.org/UnattendedUpgrades

Resource monitoring

Společnost Easy Software má se systémem Prometheus 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 adrese https://prometheus.io/docs/guides/node-exporter/. Nejlepší dashboard Grafana pro rychlý start je na adrese https://grafana.com/grafana/dashboards/1860.

V závislosti na způsobu použití byste měli vyladit nastavení prostředků VM, například zvýšit množství paměti RAM nebo počet jader poskytovaných VM. Všechny tyto konfigurace by měl pravidelně provádět správce virtuálního prostředí.

Exportér pracuje na portu 9100.

Deaktivace node_exporter

node_exporter může být deaktivován tímto příkazem:

systemctl stop node_exporter.service
systemctl disable node_exporter.service
systemctl mask node_exporter.service

Zabrání spuštění node exporteru po dalším restartu...

Pokud potřebujete plnou podporu prostředí od společnosti 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áloha dat


Předkonfigurované zálohování, které je přítomno ve virtuálním počítači, je funkčním příkladem, který musí být přizpůsoben vaší infrastruktuře a musí být monitorován. Mějte na paměti, že správné zálohování by mělo být:

  • zkontrolovat po dokončení procesu zálohování (zkontrolujte alespoň velikost zálohy)
  • uchovávat na bezpečném místě
  • vzdáleně od běžícího prostředí (alespoň v jiném městě)
  • jednou za čas obnovena, aby se otestovala vaše schopnost provést obnovu

    Aplikace ukládá data na dvou místech, proto nezapomeňte zálohovat obě


DB

Zálohování databáze lze velmi snadno provést nesprávně. Nejlepší a nejbezpečnější způsob, jak provést zálohování databáze mysql, je pomocí výpisu databáze, jak můžete vidět v ukázkovém skriptu. Ten vytváří zálohy nezávislé na verzi, které lze obnovit celé, nebo umožňuje získat jen čá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 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.


Zásady bezpečnosti

Virtuální počítač obsahuje klíče SSH pro inženýry společnosti Easy Software v adresáři home/easy/.ssh/authorized_keys. Také pravidla pro firewall iptables v adresáři /etc/iptables povolují přístup IP adresy Easy Software.

Obě tato pravidla jsou určena pro případnou vzdálenou podporu ze strany našich pracovníků na vaši žádost. Zásady přístupu jsou plně pod vaší kontrolou.


Automatické úkoly

Všechny automatické úlohy jsou naplánovány pomocí CRON a Sidekiq, který spouští naplánované úlohy každých 5min. Vzhledem k vysokým nárokům na výkon nedoporučujeme tyto úlohy spouštět v kratších intervalech. Chcete-li provést jakékoli změny, můžete je upravit spuštěním níže uvedeného příkazu pod uživatelem easy

crontab -e

Detailní 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

Migrace dat do VM

Jak importovat starší data aplikace nebo Redmine (SOURCE) do virtuálního počítače (TARGET)? To funguje ve většině případů, ale tento postup nemusí fungovat v případě, že ve zdrojové instanci Redmine používáte zásuvné moduly třetích stran.

1. vytvořte ze svého (SOURCE) soubor MySQL:

mysqldump --opt easy > backup.sql

2. přesuňte backup.sql do (TARGET)

3. přejděte do složky Application v (TARGET)

cd /home/easy/[application_name]/current

4. znovu vytvořte databázi (TARGET) 

bundle exec rake db:drop db:create RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1

5. importujte backup.sql

mysql [db_name] < backup.sql

6. přeneste přílohy a další soubory z (SOURCE)[redmine]/files do (TARGET)/home/easy/[jméno_aplikace]/current/files

7. spusťte:

bundle exec rake easyproject:install RAILS_ENV=production

8. restartujte aplikaci

sudo systemctl restart puma@[application_name]


Chybějící sidekiq

Na některých strojích není přidán soubor sidekiq@.service. Zkontrolujte prosím složku /etc/systemd/system, zda je soubor sidekiq@.service přítomen. Pokud ne, přidejte ho, prosím. Měl by obsahovat následující:


[Unit]
Popis=SIDEKIQ služba pro %i
Po=redis.service
Část z=puma@%i.service unicorn@%i.service

[Service]
Typ=jednoduchý
PID soubor=/home/easy/%i/sidekiq.pid

Prostředí=RAILS_ENV=produkce
Prostředí=MALLOC_ARENA_MAX=2

Uživatel=easy
Skupina=www-data
Pracovní adresář=/home/easy/%i/public_html

ExecStart=/usr/local/rvm/bin/rvm default do bundle exec sidekiq -e produkce
ExecReload=/bin/kill -s TSTP $MAINPID

Restart=always

[Install]
WantedBy=multi-user.target puma@%i.service unicorn@%i.service

Po vytvoření souboru spusťte

sudo systemctl daemon-reload

restartovat puma

MYSQL zálohy jsou zaměřeny na špatnou databázi

Pro vyřešení tohoto problému otevřete prosím soubor /usr/local/bin/mysql-backups.sh a nahraďte název DB "easy" názvem aplikace DB (obvykle je stejný jako název aplikace, ale všechny pomlčky a tečky by měly být nahrazeny podtržítky)

Vyzkoušejte Easy Project na 30 dní zdarma

Všechny funkce, SSL zabezpečení, bez jakýchkoliv závazků.