Skip to content

Oppdatere ∇ server

Joliv3r edited this page Mar 17, 2022 · 3 revisions

Hvordan oppdatere nablaserveren

[TOC]

tegnforklaring:
kommandoer omgitt av <> avhenger;
kommandoer omgitt av () er valgfrie;

1. ssh til serveren

ssh <username>@babel.nabla.no

<password>

ssh er Secure SHell; en måte å sikkert koble seg til eksterne servere. Dette krever at du allerede har fått opprettet en bruker på serveren.

Etter dette steget skal det stå <brukernavn>@babel:~$ i terminalen.

2. gå til sidemappa

cd /srv/nablaweb OR cd /srv/jubileum.nabla.no

cd er Change Directory, en måte å endre mappen du står i (på den eksterne serveren). I ugangspunktet skal du være plasssert i "~" (kanskje bedre kjent som "hjem/heim" [home]). Den innledende "/" er rot-mappa [root-directory], så stien er en en absolutt sti [absolute path]. Fjernes denne får man en relativ sti [relative path], altså cd ~/srv/jubileum.nabla.no, som kanskje ikke engang eksisterer.

3. sjekk git-statusen (valgfri)

git status, git log

Kan være nyttig om en ønsker å se den nåværende versjonen av siden.

4. logg inn på rotbrukeren

sudo su <brukernavn> f. eks. sudo su nablaweb

For å få tilgang til å endre på filene i mappa må vi logge på brukeren som eier mappa. For å gå ut av denne brukeren etterpå, skriver man exit.

Etter dette steget skal det stå nablaweb@babel:/srv/nablaweb$ eller tilsvarende mappe i terminalen.

5. pull oppdateringer

git pull

Dersom du får en error som likner error: cannot open .git/FETCH_HEAD: Permission denied er eierskapet på mappa feil, da må du gå tilbake til din egen bruker og endre på eierskapet med f. eks. sudo chown -R <username>:webapps /srv/<nettside> f. eks. sudo chown -R nablaweb:webapps /srv/nablaweb.

6. sjekk git-status (valgfri)

git diff HEAD^

Denne kan brukes til å se endringen mellom den nåværende og forrige commit-en.

OBS

Steg 7-10 er bare nødvendig viss du har gjort endringer til statiske filer (css, javascript) eller modeller. Viss du bare har gjort endringer i HTML-koden eller andre mindre endringer, kan du hopper over disse stegene, og gå rett til hjem-mappa (steg 11).

7. venv

pipenv shell

venv er et virtuelt miljø [Virtual ENVironment]. Dette er et avhengighets-kontrollverktøy som brukes for å forsikre om at alle pakker og filer er kompatible.

Etter dette steget skal det stå (nablaweb-########) nablaweb@babel:/srv/nablaweb$ eller tilsvarende mappe i terminalen, der ######## er en streng med tegn.

Pipenv laster også inn .env-filen for oss, hvor blant annet info om databasen (navn, bruker, passord) ligger. Dette er nødvendig viss man f.eks. vil bruke python manage.py shell for å se/endre info i databasen.

8. collectstatic (valgfri)

python manage.py collectstatic

Våre statiske filer serveres ikke gjennom django, men direkte med nginx. Dette betyr at de må ligge på riktig plass på serveren for at nginx skal finne dem. Dersom du har endret på statiske filer må du kopiere disse filene til dette riktige stedet. Dette gjøres med collectstatic-kommandoen.

Denne spør kanskje om å overskrive eksisterende files; bare svar yes.

9. migrate (valgfri)

python manage.py migrate

Viss du har gjort endringer i modeller så må disse legges til. Man burde også ta backup av databasen før dette gjøres. makemigrations skal IKKE kjøres på production ettersom dette burde gjøres lokalt og inkluderes i repositoriet.

10. logg ut av pipenv

exit

Vi trenger ikke lenger å være i det virtuelle miljøet (venv) lenger.

Etter dette steget skal det stå nablaweb@babel:/srv/nablaweb$ eller tilsvarende mappe i terminalen.

11. logg ut av brukeren

exit

Vi trenger ikke lenger å være bruker i de neste stegene.

Etter dette steget skal det stå <brukernavn>@babel:/srv/nablaweb$ eller tilsvarende mappe i terminalen.

12. restart serveren

sudo systemctl restart nablaweb eller sudo systemctl restart jubside

Denne restarter serveren med de nyeste endringene som er lagt til.

13. sjekk statusen tile nettsia (valgfri)

systemctl status nablaweb (eventuelt: systemctl status jubside)

Viss vi vil kan vi sjekke statusen til nettsiden (om den er online, osv.)

14. avslutt ssh

exit

Avslutt den eksterne tilkoblingen til serveren.

A. status

stat <location>

Denne brukes til å få informasjon om en mappe, enten det skulle være filrettigheter eller hvem-hvet-hva.