Enkel virtuell maskin (VM)
Beskrivning
Denna dokumentation är för virtuella maskiner (VM) som tillhandahålls av Easy Software för klienter som köpt serverlösning. Den är giltig för virtuella datorer genererade efter 1 mars 2022.
Det kan också tjäna som inspiration för din egen servermiljö, men i sådana fall finns det inga garantier på grund av de olika möjliga komponenter och teknologier du använder.
Den virtuella datorn är konfigurerad bara för små webbplatser (ca 10 samtidigt arbetande användare). VM är nästan produktionsklar men KRÄVER erfaren administratör för att installera virtuell dator i din miljö, ställa in säkerhetskopiering, övervakning, nätverk, säkerhetspolicyer etc. Easy Software kan inte ta ansvar för att köra denna virtuella dator i din dedikerade miljö, den virtuella datorn är ett exempel på hur applikationen kan vara värd.
Denna README adresserar "Application", som kan ersättas av antingen "Easy Project" eller "Easy Redmine".
Första stegen
Eftersom den virtuella datorn genererades vid en viss tidpunkt är det möjligt att vissa komponenter redan kan ha släppt vissa patchar eller säkerhetskorrigeringar när du distribuerar den.
Det är därför du alltid ska börja med en backup följt av uppdatering av OS. Det kommer att installera de senaste säkerhetskorrigeringarna och uppdatera eventuellt föråldrade komponenter.
VM beskrivning
OS är Debian i 64-bitars utgåva.
De viktiga standardinställningarna är:
- OS är tillgängligt av SSH via port 22
- Brandväggen är inte inställd (det är upp till systemadministratörer)
- Disken är ~100 GB
- /boot 512M
- / 30G
- /hem 60G
- byta 4G
- för att öka disken, använd den tillgängliga LVM
- Applikationen lyssnar på HTTPS men med självsignerat certifikat, så du måste byta ut det ASAP (mer information nedan)
- Applikationen körs i /home/easy/[application_name]/current.
Linux-inloggning:
- användarnamn: lätt
- lösenord: e4syPwd-
Vänligen ändra det ASAP. Kör kommandot för att göra det passwd i terminalen
Mysql inloggning:
Använd bara kommandot mysql ditt_app_namn (alla punkter eller streck i applikationsnamnet ska ersättas med understrykning. Exempel: ditt-app-namn ska vara ditt_app_namn)
Programinloggning:
Standardinloggning (vid "ren" databas) är
- användarnamn: admin
- lösenord: admin
Standardinloggningen för den virtuella datorn med demodata är:
- användarnamn: chef
- lösenord: easy848
Vid databas från din molnapplikation förblir lösenorden som du hade dem.
Struktur för ansökans hem
.
├── säkerhetskopior # backup script sparar data där
└── $APP_NAME
├── application.pid
├── application.sock # nginx använder denna socket
├── konfig
│ ├── # förgenererade applikationskonfigurationer
│ ├── # (databas, utskick, hemligheter, appserver, etc...)
│ └── ...
├── ström
│ ├── config # alla programkonfigurationer
│ │ ├── configuration.yml # ställ in konfigurationen för utgående e-post här
│ │ ├── database.yml # databasåtkomst konfigurerad här
│ │ └── ...
│ ├── filer # beständig applikationsdata
│ ├── logg # applikationsloggar
│ ├── offentliga # statiska filer
│ └── version # applikationsversion
└── public_html -> /home/easy/$APP_NAME/current
Att starta om programmet är helt enkelt via "systemctl restart puma@[application_name]" som sudo
Kundansvar
Den virtuella datorn körs på den senaste rekommenderade versionen av Debian. Systemet kräver vanligt underhåll som:
- regelbundna uppdateringar
- resursövervakning (ledigt utrymme, minnesanvändning, belastning, ...)
- säkerhetskopiering av data till en oberoende disk
- säkerhetspolitik
Uppdateringar
Gör säkerhetsuppdateringar av systemet ofta. Vi rekommenderar att du gör det minst en gång i veckan. Före uppdatering, se till att den senaste säkerhetskopian är tillgänglig och fungerar.
Officiell dokumentation hur man kör endast säkerhetsuppdateringar https://wiki.debian.org/UnattendedUpgrades
Resursövervakning
Easy Software har god erfarenhet av Prometheus. Därför är node_exporter en del av den virtuella datorn sedan 1.3. 2022.
Den officiella mycket grundläggande dokumentationen för Node Exporter och Prometheus finns på https://prometheus.io/docs/guides/node-exporter/ Den bästa snabbstartsinstrumentpanelen för grafana finns på https://grafana.com/grafana/dashboards/1860
Beroende på din användning bör du justera VM-resursinställningarna, till exempel öka mängden RAM eller antalet kärnor som tillhandahålls till VM. Alla dessa konfigurationer bör göras regelbundet av administratören för din virtuella miljö.
Nodexportör lyssnar på port 9100.
Inaktivera node_exporter
node_exporter skulle kunna inaktiveras genom att köra:
systemctl stoppa node_exporter.service
systemctl inaktivera node_exporter.service
systemctl-mask node_exporter.service
Det förhindrar att starta nodexporter efter nästa omstart...
Om du behöver fullt miljöstöd från Easy Software (säkerhets- och prestandaoptimeringar, säkerhetskopiering, övervakning, etc), rekommenderar vi att du går över till våra molnlösningar.
Säkerhetskopiering av data
Den förkonfigurerade säkerhetskopieringen som finns i den virtuella datorn är ett fungerande exempel, som måste passa din infrastruktur och måste övervakas. Tänk på att en korrekt säkerhetskopia bör vara:
- kontrolleras efter att säkerhetskopieringen avslutats (kontrollera åtminstone storleken på säkerhetskopian)
- förvaras på en säker plats
- långt från löparmiljön (åtminstone i en annan stad)
- återställs då och då för att testa din förmåga att utföra återhämtning
Applikationen lagrar data på två ställen, så glöm inte att säkerhetskopiera båda.
DB
Databassäkerhetskopiering kan mycket lätt göras felaktigt. Det bästa och säkraste sättet att säkerhetskopiera mysql-databasen är via databasdump som du kan se i exempelskriptet. Det gör versionsoberoende säkerhetskopior, som kan återställas hela eller låter dig få bara en del av den gamla data.
Exempelvis:
mysqldump --add-drop-tables --rutiner --triggers --flush-logs $DATABASE_NAME > sökväg/to/file_where_db_will_be_stored.sql
Att kopiera filer från /var/lib/mysql är ett FEL sätt att spara DB-säkerhetskopior.
Filer
Varje uppladdad fil/bilaga i applikationen lagras i /home/easy/$APP_NAME/current/files. Hela innehållet i denna katalog bör säkerhetskopieras. I det här fallet kan du helt enkelt kopiera innehållet.
Säkerhetspolicy
Den virtuella datorn innehåller SSH-nycklar för Easy Software-ingenjörer i home/easy/.ssh/authorized_keys. Dessutom tillåter reglerna för iptables-brandväggen i /etc/iptables åtkomst av en Easy Software IP-adress.
Båda dessa policyer är avsedda för eventuell fjärrsupport av vår personal på din begäran. Åtkomstpolicyerna är helt under din kontroll.
Automatiska uppgifter
Alla automatiska uppgifter schemaläggs av CRON och Sidekiq, som startar schemalagda jobb var 5:e minut. Vi rekommenderar att du inte kör dessa jobb med kortare intervaller på grund av deras höga prestandakrav. För att göra ändringar kan du redigera dem genom att köra kommandot nedan under användarenkelt
crontab -e
Detaljerad dokumentation för cron
https://www.easyredmine.com/resources/redmine-installation/common-troubles/cron-not-working-helpdesk-emails-alerts-repeating-tasks-etc-are-not-automatically-processed
Migrera data till denna virtuella dator
Hur man importerar äldre applikations- eller Redmine-data (SOURCE) till VM (TARGET). Detta fungerar i de flesta fall, men den här proceduren kanske inte fungerar om du använder plugin från tredje part i din Redmine-källa.
1. från din (KÄLLA) skapa MySQL-dumpfil:
mysqldump --opt easy > backup.sql
2. överför backup.sql till (TARGET)
3. gå till Application-mappen på (TARGET)
cd /home/easy/[application_name]/current
4. återskapa (TARGET) databas
bundle exec rake db:drop db:create RAILS_ENV=produktion DISABLE_DATABASE_ENVIRONMENT_CHECK=1
5. importera backup.sql
mysql [db_name] < backup.sql
6. överför bilagor och andra filer från (SOURCE)[redmine]/filer till (TARGET)/home/easy/[application_name]/current/files
7. kör:
bunt exec rake easyproject: installera RAILS_ENV = produktion
8. starta om programmet
sudo systemctl starta om puma@[applikationsnamn]
Felsökning
Saknar sidekiq
På vissa av maskinerna läggs inte filen sidekiq@.service till. Kontrollera mappen /etc/systemd/system om filen sidekiq@.service visas. Om inte - lägg till det. Den bör innehålla följande:
[Enhet]
Description=SIDEKIQ-tjänst för %i
After=redis.service
PartOf=puma@%i.service unicorn@%i.service
[Service]
Type = enkel
PIDFile=/home/easy/%i/sidekiq.pid
Miljö = RAILS_ENV = produktion
Miljö=MALLOC_ARENA_MAX=2
User = lätt
Group=www-data
WorkingDirectory=/home/easy/%i/public_html
ExecStart=/usr/local/rvm/bin/rvm standard do bundle exec sidekiq -e production
ExecReload=/bin/kill -s TSTP $MAINPID
Återstart = alltid
[Installera]
WantedBy=multi-user.target puma@%i.service unicorn@%i.service
Kör efter att filen har skapats
sudo systemctl daemon-reload
starta om puma
MYSQL-säkerhetskopior är inriktade på fel databas
För att åtgärda det här problemet, öppna filen /usr/local/bin/mysql-backups.sh och ersätt DB-namnet "lätt" till app-DB (vanligtvis är det samma som appnamn men alla streck och punkter ska ersättas med understrykning)