en
Wybierz język
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
Tłumaczenie SI
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

Łatwa maszyna wirtualna (VM)

Wprowadzenie

Ta dokumentacja dotyczy maszyn wirtualnych (VM) dostarczanych przez firmę Easy Software dla klientów, którzy kupili rozwiązanie serwerowe. Dotyczy maszyn wirtualnych wygenerowanych po 1 marca 2022 r.

Może również służyć jako inspiracja dla własnego środowiska serwerowego, ale w takim przypadku nie ma żadnych gwarancji ze względu na różnorodność możliwych komponentów i technologii, z których możesz korzystać.

Maszyna wirtualna jest skonfigurowana tylko dla małych witryn (ok. 10 jednocześnie pracujących użytkowników). Maszyna wirtualna to prawie gotowe do produkcji, ale WYMAGA doświadczonego administratora, aby zainstalować VM w Twoim środowisku, skonfigurować tworzenie kopii zapasowych, monitorowanie, sieci, polityki bezpieczeństwa itp. Easy Software nie może wziąć odpowiedzialności za uruchomienie tej maszyny wirtualnej w Twoim dedykowanym środowisku, VM jest przykładem tego, jak aplikacja może być hostowane.
Ten plik README odnosi się do „Aplikacji”, które można zastąpić przez „Łatwy projekt” lub „Łatwy Redmine”.

Pierwsze kroki

Ponieważ maszyna wirtualna została wygenerowana w określonym momencie, możliwe jest, że niektóre komponenty mogły już wydać pewne łatki lub poprawki bezpieczeństwa do czasu jej wdrożenia.
Dlatego zawsze powinieneś zaczynać od kopii zapasowej, a następnie aktualizacja systemu operacyjnego. Zainstaluje najnowsze poprawki bezpieczeństwa i zaktualizuje prawdopodobnie nieaktualne komponenty.

Opis maszyny wirtualnej

System operacyjny to Debian w wersji 64-bitowej.

Ważnymi wartościami domyślnymi są:

  • System operacyjny jest dostępny przez SSH przez port 22
  • Zapora nie jest ustawiona (zależy to od administratorów systemu)
  • Dysk ma ~100 GB
    • /boot 512M
    • / 30G
    • /dom 60G
    • zamień 4G
    • aby zwiększyć dysk, użyj dostępnego LVM
  • Aplikacja nasłuchuje na HTTPS, ale z samopodpisanym certyfikatem, więc musisz ją jak najszybciej zastąpić (więcej szczegółów poniżej)
  • Aplikacja działa w /home/easy/[nazwa_aplikacji]/current.

Logowanie do Linuksa:

  • nazwa użytkownika: łatwa
  • hasło: e4syPwd-

Zmień to JAK NAJSZYBCIEJ. Aby to zrobić, uruchom polecenie passwd w terminalu

Logowanie do MySQL:
Po prostu użyj polecenia mysql twoja_nazwa_aplikacji (wszystkie kropki lub myślniki w nazwie aplikacji należy zastąpić podkreśleniami. Przykład: nazwa-aplikacji powinna być nazwa-twojej_aplikacji)

Logowanie do aplikacji:
Domyślny login (w przypadku "czystej" bazy danych) to

  • nazwa użytkownika: admin
  • hasło: admin

Domyślny login dla maszyny wirtualnej z rozszerzeniem dane demo jest:

  • nazwa użytkownika: menedżer
  • hasło: easy848


W przypadku bazy danych z Twojej aplikacji Cloud, hasła pozostają takie, jak je posiadałeś.

Struktura strony głównej aplikacji

.
├── kopie zapasowe # skrypt kopii zapasowej zapisuje tam dane
└── $APP_NAME
    ├──aplikacja.pid           
    ├── application.sock # nginx używa tego gniazda
    ├── konfiguracja
    │ ├── # wstępnie wygenerowane konfiguracje aplikacji  
    │ ├── # (baza danych, poczta, sekrety, serwer aplikacji itp.)
    └── ...
    ├── prąd
    │ ├── config # wszystkie konfiguracje aplikacji
    │ │ ├── configuration.yml # ustaw tutaj konfigurację poczty wychodzącej
    │ │ ├── database.yml # dostęp do bazy danych skonfigurowany tutaj
    │ └── ...
    │ ├── pliki # trwałe dane aplikacji
    │ ├── dziennik # dzienniki aplikacji
    │ ├── publiczne # pliki statyczne
    │ └── wersja # wersja aplikacji
    └── public_html -> /home/easy/$APP_NAME/current

Ponowne uruchomienie aplikacji odbywa się po prostu przez „systemctl restart puma@[nazwa_aplikacji]” jako sudo

Obowiązki klienta

Maszyna wirtualna działa na najnowszej zalecanej wersji Debiana. System wymaga wspólnej konserwacji, takiej jak:

  • regularne aktualizacje
  • monitorowanie zasobów (wolne miejsce, wykorzystanie pamięci, obciążenie, ...)
  • kopie zapasowe danych na niezależny dysk
  • zasady bezpieczeństwa

Nowości

Często przeprowadzaj aktualizacje zabezpieczeń systemu. Zalecamy robić to przynajmniej raz w tygodniu. Przed aktualizacją upewnij się, że najnowsza kopia zapasowa jest dostępna i działa.

Oficjalna dokumentacja, jak uruchamiać tylko aktualizacje zabezpieczeń https://wiki.debian.org/UnattendedUpgrades

Monitorowanie zasobów

Easy Software ma dobre doświadczenia z Prometheusem. Dlatego node_exporter jest częścią maszyny wirtualnej od wersji 1.3. 2022.

Oficjalna, bardzo podstawowa dokumentacja dla Node Exporter i Prometheus znajduje się pod adresem https://prometheus.io/docs/guides/node-exporter/ Najlepszy pulpit nawigacyjny grafana jest dostępny pod adresem https://grafana.com/grafana/dashboards/1860

W zależności od wykorzystania należy dostroić ustawienia zasobów maszyny wirtualnej, na przykład zwiększyć ilość pamięci RAM lub liczbę rdzeni dostarczanych do maszyny wirtualnej. Wszystkie te konfiguracje powinny być regularnie wykonywane przez administratora środowiska wirtualnego.

Eksporter węzła nasłuchuje na porcie 9100.

Wyłącz node_exporter

node_exporter można wyłączyć, uruchamiając:

systemctl zatrzymaj node_exporter.service
systemctl wyłącz node_exporter.service
maska ​​systemctl node_exporter.service

Uniemożliwia uruchomienie eksportera węzła po ponownym uruchomieniu...

Jeśli potrzebujesz pełnego wsparcia środowiska ze strony Easy Software (optymalizacje bezpieczeństwa i wydajności, tworzenie kopii zapasowych, monitorowanie itp.), zalecamy przeniesienie do naszych rozwiązań w chmurze.

Kopie zapasowe danych

Wstępnie skonfigurowana kopia zapasowa, która jest obecna w maszynie wirtualnej, to działający przykład, który musi być dopasowany do Twojej infrastruktury i musi być monitorowany. Należy pamiętać, że odpowiednia kopia zapasowa powinna być:

  • sprawdzane po zakończeniu procesu tworzenia kopii zapasowej (sprawdź co najmniej rozmiar kopii zapasowej)
  • przechowywane w bezpiecznym miejscu
  • oddalony od środowiska biegowego (przynajmniej w innym mieście)
  • przywracany raz na jakiś czas, aby przetestować zdolność do odzyskiwania

Aplikacja przechowuje dane w dwóch miejscach, więc nie zapomnij wykonać ich kopii zapasowej.

DB

Kopia zapasowa bazy danych może być bardzo łatwo wykonana nieprawidłowo. Najlepszym i najbezpieczniejszym sposobem tworzenia kopii zapasowych bazy danych mysql jest zrzut bazy danych, jak widać w przykładowym skrypcie. Tworzy niezależne od wersji kopie zapasowe, które można przywrócić w całości lub uzyskać tylko część starych danych.

Przykład:

mysqldump --add-drop-tables --routines --triggers --flush-logs $DATABASE_NAME > ścieżka/do/pliku, gdzie_db_będzie_zapisany.sql

Kopiowanie plików z /var/lib/mysql to NIEPRAWIDŁOWY sposób zapisywania kopii zapasowych bazy danych.

Akta

Każdy przesłany plik/załącznik w aplikacji jest przechowywany w /home/easy/$APP_NAME/aktualne/pliki. Należy wykonać kopię zapasową całej zawartości tego katalogu. W takim przypadku możesz po prostu skopiować zawartość.

Polityki bezpieczeństwa

Maszyna wirtualna zawiera klucze SSH dla inżynierów Easy Software w katalogu home/easy/.ssh/authorized_keys. Ponadto reguły zapory iptables w /etc/iptables umożliwiają dostęp do adresu IP Easy Software.

Obie te zasady mają na celu ewentualne zdalne wsparcie ze strony naszego personelu na Twoją prośbę. Zasady dostępu są w pełni pod Twoją kontrolą.

Zadania automatyczne

Wszystkie automatyczne zadania są zaplanowane przez CRON i Sidekiq, który uruchamia zaplanowane zadania co 5m. Zalecamy, aby nie uruchamiać tych zadań w krótszych odstępach czasu ze względu na ich wysokie wymagania dotyczące wydajności. Aby wprowadzić jakiekolwiek zmiany, możesz je edytować, uruchamiając poniższe polecenie w menu user easy

crontab -e

Szczegółowa dokumentacja dla cron
https://www.easyredmine.com/resources/redmine-installation/common-troubles/cron-not-working-helpdesk-emails-alerts-repeating-tasks-etc-are-not-automatically-processed

Przenieś dane do tej maszyny wirtualnej

Jak zaimportować starsze dane aplikacji lub Redmine (SOURCE) do maszyny wirtualnej (TARGET). Działa to w większości przypadków, ale ta procedura może nie działać w przypadku korzystania z wtyczek innych firm w źródłowej instancji Redmine.

1. ze swojego (SOURCE) utwórz plik zrzutu MySQL:

mysqldump --opt easy > backup.sql

2. przenieś backup.sql do (TARGET)

3. przejdź do folderu aplikacji na (TARGET)

cd /home/easy/[nazwa_aplikacji]/current

4. odtwórz (TARGET) bazę danych

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

5. importuj backup.sql

mysql [nazwa_bazy_danych] < backup.sql

6. przenieś załączniki i inne pliki z (SOURCE)[redmine]/files do (TARGET)/home/easy/[application_name]/current/files

7. uruchom:

bundle exec natarcia easyproject: zainstaluj RAILS_ENV = produkcja

8. uruchom ponownie aplikację

sudo systemctl restart puma@[nazwa_aplikacji]

Rozwiązywanie problemów

Brakujący pomocnik

Na niektórych maszynach plik sidekiq@.service nie jest dodawany. Sprawdź folder /etc/systemd/system, jeśli jest prezentowany plik sidekiq@.service. Jeśli nie - dodaj to. Powinien zawierać następne:


[Jednostka]
Description=Usługa SIDEKIQ dla %i
After=redis.usługa
PartOf=puma@%i.service jednorożec@%i.service

[Usługa]
Typ = prosty
PIDFfile=/home/easy/%i/sidekiq.pid

Środowisko = RAILS_ENV = produkcja
Środowisko=MALLOC_ARENA_MAX=2

Użytkownik = łatwy
Grupa=www-dane
Katalog roboczy=/home/easy/%i/public_html

ExecStart=/usr/local/rvm/bin/rvm domyślnie wykonaj pakiet exec sidekiq -e production
ExecReload=/bin/kill -s TSTP $MAINPID

Uruchom ponownie = zawsze

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

Po utworzeniu pliku uruchom

sudo systemctl daemon-reload

uruchom ponownie pumę

Kopie zapasowe MYSQL są kierowane do niewłaściwej bazy danych

Aby rozwiązać ten problem, otwórz plik /usr/local/bin/mysql-backups.sh i zamień nazwę bazy danych „easy” na bazę danych aplikacji (zwykle jest to to samo co nazwa aplikacji, ale wszystkie myślniki i kropki należy zastąpić podkreśleniami)

Wypróbuj Easy Redmine w 30-dniowym bezpłatnym okresie próbnym

Pełne funkcje, ochrona SSL, codzienne kopie zapasowe w Twojej geolokalizacji