Enkel virtuell maskin (VM)
Introduksjon
Denne dokumentasjonen er for virtuelle maskiner (VM) levert av Easy Software for klienter som har kjøpt serverløsning. Den er gyldig for VM-er generert etter 1. mars 2022.
Det kan også tjene som inspirasjon for ditt eget servermiljø, men i slike tilfeller er det ingen garantier på grunn av mangfoldet av mulige komponenter og teknologier du kan bruke.
VM-en er konfigurert kun for små nettsteder (ca 10 brukere som jobber samtidig). VM er nesten produksjonsklar men KREVER erfaren administrator for å installere VM i ditt miljø, sette opp backup, overvåking, nettverk, sikkerhetspolicyer etc. Easy Software kan ikke ta ansvar for å kjøre denne VM i ditt dedikerte miljø, VM er et eksempel på hvordan applikasjonen kan være vert.
Denne README adresser "Application", som kan erstattes av enten "Easy Project" eller "Easy Redmine".
Første steg
Fordi VM-en ble generert på et bestemt tidspunkt, er det mulig at noen komponenter allerede har utgitt noen oppdateringer eller sikkerhetsrettinger når du distribuerer den.
Derfor bør du alltid starte med en sikkerhetskopi etterfulgt av oppdatering av OS. Den vil installere de siste sikkerhetsreparasjonene og oppdatere muligens utdaterte komponenter.
VM beskrivelse
OS er Debian i 64-biters utgave.
De viktige standardinnstillingene er:
- OS er tilgjengelig av SSH via port 22
- Brannmur er ikke satt (det er opp til systemadministratorer)
- Disken er ~100 GB
- /boot 512M
- / 30G
- /hjem 60G
- bytte 4G
- for å øke disken, bruk tilgjengelig LVM
- Applikasjonen lytter på HTTPS, men med selvsignert sertifikat, så du må erstatte det ASAP (mer detaljer nedenfor)
- Applikasjonen kjører i /home/easy/[application_name]/current.
Linux pålogging:
- brukernavn: enkelt
- passord: e4syPwd-
Vennligst endre det ASAP. For å gjøre det, kjør kommandoen passwd i terminal
Mysql pålogging:
Bare bruk kommandoen mysql ditt_app_navn (alle prikker eller bindestreker i applikasjonsnavnet bør erstattes med understrekinger. Eksempel: app-navnet ditt skal være app-navnet ditt)
Programpålogging:
Standard pålogging (i tilfelle av "ren" database) er:
- brukernavn: admin
- passord: admin
Standard pålogging for VM med demodata er:
- brukernavn: manager
- passord: easy848
Ved database fra skyapplikasjonen forblir passordene som du hadde dem.
Struktur av søknadens hjem
.
├── sikkerhetskopier # backup script lagrer data der
└── $APP_NAME
├── application.pid
├── application.sock # nginx bruker denne kontakten
├── konfig
│ ├── # forhåndsgenererte applikasjonskonfigurasjoner
│ ├── # (database, e-post, hemmeligheter, appserver osv...)
│ └── ...
├── gjeldende
│ ├── config # alle applikasjonskonfigurasjoner
│ │ ├── configuration.yml # sett opp konfigurasjon for utgående e-post her
│ │ ├── database.yml # databasetilgang konfigurert her
│ │ └── ...
│ ├── filer # vedvarende programdata
│ ├── logg # applikasjonslogger
│ ├── offentlige # statiske filer
│ └── versjon # applikasjonsversjon
└── public_html -> /home/easy/$APP_NAME/current
Å starte applikasjonen på nytt er ganske enkelt via "systemctl restart puma@[application_name]" som sudo
Kundeansvar
VM kjører på den siste anbefalte versjonen av Debian. Systemet krever vanlig vedlikehold som:
- jevnlige oppdateringer
- ressursovervåking (ledig plass, minnebruk, belastning, ...)
- sikkerhetskopiering av data til en uavhengig disk
- sikkerhetspolitikk
oppdateringer
Gjør sikkerhetsoppdateringer av systemet ofte. Vi anbefaler å gjøre det minst en gang i uken. Før oppdatering, vær sikker på at siste sikkerhetskopi er tilgjengelig og fungerer.
Offisiell dokumentasjon hvordan du kjører bare sikkerhetsoppdateringer https://wiki.debian.org/UnattendedUpgrades
Ressursovervåking
Easy Software har god erfaring med Prometheus. Derfor er node_exporter en del av VM siden 1.3. 2022.
Den offisielle helt grunnleggende dokumentasjonen for Node Exporter og Prometheus er på https://prometheus.io/docs/guides/node-exporter/ Det beste hurtigstart-grafana-dashbordet er på https://grafana.com/grafana/dashboards/1860
Avhengig av bruken din bør du justere VM-ressursinnstillingene, for eksempel øke mengden RAM eller antall kjerner som leveres til VM. Alle disse konfigurasjonene bør gjøres regelmessig av administratoren for det virtuelle miljøet.
Nodeeksportør lytter på port 9100.
Deaktiver node_exporter
node_exporter kan deaktiveres ved å kjøre:
systemctl stoppe node_exporter.service
systemctl deaktiver node_exporter.service
systemctl mask node_exporter.service
Det forhindrer å starte nodeeksportør etter neste omstart...
Hvis du trenger full miljøstøtte fra Easy Software (sikkerhets- og ytelsesoptimaliseringer, sikkerhetskopiering, overvåking osv.), anbefaler vi å overføre til våre Cloud-løsninger.
Sikkerhetskopier av data
Den forhåndskonfigurerte sikkerhetskopieringen som finnes i VM-en er et fungerende eksempel, som må passe til infrastrukturen din og overvåkes. Vær oppmerksom på at en riktig sikkerhetskopi bør være:
- sjekket etter at sikkerhetskopieringsprosessen er fullført (sjekk i det minste størrelsen på sikkerhetskopien)
- oppbevares på et trygt sted
- fjernt fra løpemiljøet (i hvert fall i en annen by)
- gjenopprettes en gang i blant for å teste din evne til å gjenopprette
Applikasjonen lagrer data på to steder, så ikke glem å sikkerhetskopiere begge.
DB
Databasesikkerhetskopiering kan veldig lett gjøres feil. Den beste og sikreste måten å sikkerhetskopiere mysql-databasen på er via databasedump, som du kan se i eksempelskriptet. Den lager versjonsuavhengige sikkerhetskopier, som kan gjenopprettes hele eller lar deg få bare deler av de gamle dataene.
Eksempel:
mysqldump --add-drop-tables --rutiner --triggere --flush-logs $DATABASE_NAME > sti/til/fil_hvor_db_will_be_stored.sql
Å kopiere filer fra /var/lib/mysql er en FEIL måte å lagre DB-sikkerhetskopier på.
Filer
Hver opplastet fil/vedlegg i applikasjonen lagres i /home/easy/$APP_NAME/current/files. Hele innholdet i denne katalogen bør sikkerhetskopieres. I dette tilfellet kan du ganske enkelt kopiere innholdet.
Sikkerhetspolitikk
VM-en inneholder SSH-nøkler for Easy Software-ingeniører i home/easy/.ssh/authorized_keys. Reglene for iptables-brannmuren i /etc/iptables tillater også tilgang til en Easy Software IP-adresse.
Begge disse retningslinjene er ment for eventuell ekstern støtte fra våre ansatte på din forespørsel. Tilgangspolicyene er fullstendig under din kontroll.
Automatiske oppgaver
Alle automatiske oppgaver planlegges av CRON og Sidekiq, som starter planlagte jobber hver 5.m. Vi anbefaler å ikke kjøre disse jobbene med kortere intervaller på grunn av deres høye ytelseskrav. For å gjøre endringer, kan du redigere dem ved å kjøre kommandoen nedenfor under brukerenkelt
crontab -e
Detaljert dokumentasjon for cron
https://www.easyredmine.com/resources/redmine-installation/common-troubles/cron-not-working-helpdesk-emails-alerts-repeating-tasks-etc-are-not-automatically-processed
Migrer data til denne VM
Hvordan importere eldre applikasjons- eller Redmine-data (SOURCE) til VM (TARGET). Dette fungerer i de fleste tilfeller, men denne prosedyren fungerer kanskje ikke i tilfelle du bruker tredjeparts plugins i Redmine-kildeforekomsten.
1. fra (KILDEN) oppretter MySQL-dumpfilen:
mysqldump --opt easy > backup.sql
2. overfør backup.sql til (TARGET)
3. gå til Application-mappen på (TARGET)
cd /home/easy/[application_name]/current
4. gjenskape (TARGET) database
bundle exec rake db:drop db:create RAILS_ENV=produksjon DISABLE_DATABASE_ENVIRONMENT_CHECK=1
5. importer backup.sql
mysql [db_name] < backup.sql
6. overføre vedlegg og andre filer fra (KILDE)[redmine]/filer til (TARGET)/home/easy/[application_name]/current/files
7. løp:
bundle exec rake easyproject: installere RAILS_ENV = produksjon
8. start programmet på nytt
sudo systemctl restart puma@[application_name]
Feilsøking
Mangler sidekiq
På noen av maskinene er sidekiq@.service-filen ikke lagt til. Vennligst sjekk /etc/systemd/system-mappen hvis sidekiq@.service-filen er presentert. Hvis ikke - legg det til. Den skal inneholde følgende:
[Enhet]
Description=SIDEKIQ-tjeneste for %i
After=redis.service
PartOf=puma@%i.service unicorn@%i.service
[Service]
Type = enkel
PIDFile=/home/easy/%i/sidekiq.pid
Miljø = RAILS_ENV = produksjon
Miljø=MALLOC_ARENA_MAX=2
User = lett
Gruppe=www-data
WorkingDirectory=/home/easy/%i/public_html
ExecStart=/usr/local/rvm/bin/rvm standard bunte exec sidekiq -e production
ExecReload=/bin/kill -s TSTP $MAINPID
Restart = alltid
[Installere]
WantedBy=multi-user.target puma@%i.service unicorn@%i.service
Etter at filen er opprettet, kjør
sudo systemctl daemon-reload
start puma på nytt
MYSQL-sikkerhetskopier er rettet mot feil database
For å fikse dette problemet, åpne filen /usr/local/bin/mysql-backups.sh og erstatt DB-navnet "enkelt" til app-DB (vanligvis er det det samme som appnavn, men alle streker og prikker skal erstattes med understreker)