Utleggsys

Utleggsys er en liten flask-app som UKEfunker bruker for å sende utlegg til de økonomiansvarlige.

Per dags dato er det essesielt et form + pdfgenerering, skjønt, jeg spår at det det kommer til å dukke opp noen feature-requests etterhvert (Adminpanel, sending til gjengen sin økonomiansvarlig, utsendingslogg).

Hvordan utvikle

1. Sett opp Apache, Bind, tls og µWSGI slik som en vilkårlig annen UKEinstans, se for eksempel Innsida, hvordan utvikle.

2. Lag en local_settings.py, variablene satt her overskriver variablene i settings.py: Her er et eksempel for utviklingsformål:

flask_config = dict(DEBUG=True, SECRET_KEY='lakjsdhfaw')
db_config = dict(dbname='mdb2_dev')
mail_recipients = ['sveinrou@uka.no']

Lage lokal kopi

Man setter gjerne opp en utviklings-instans på cirkus, og vi ønsker en url alá https://sveinrou.utlegg.uka.no

Først tar vi en klone av master-branchen.

bruker@cirkus:~/dev$ git clone /home/cassarossa/itk/felles/git/utleggsys

Kopier local_settings.py fra en annen som utvikler eller fra eksempelet over, her er databaseinnstillingene, og div innstillinger som programmet bruker

Kjøre på cirkus

I resten av noden skal BRUKERNAVN byttes ut med ditt brukernavn.

Apache-konfigurasjon

Kopier en fungerende config fra en annen på cirkus, og erstatt brukernavnet deres med ditt eget alle steder det står. Apache-config-filene ligger i /etc/apache2/sites-available/

AssignUserID skal settes til uka-httpd uka-web

For å legge til denne i sites-enabled bruker vi følgende:

bruker@maskin:~$ sudo a2ensite BRUKERNAVN.utlegg.uka.no
bruker@maskin:~$ sudo systemctl reload apache2

Før apacheconfigen lastes inn, må vi legge til en DNS-oppføring.

Bind

Vi ønsker å få DNS til å peke riktig, og må legge dette inn i bind sin config.

bruker@maskin:~$ vim /etc/bind/pz/uka.no

Find de linjene hvor andre har innsida DNS records og legg deg selv til.

Ser nok slik ut:

BRUKERNAVN.utlegg   IN      CNAME   cirkus.samfundet.no

Deretter signerer du sonen og reloader BIND ved:

bruker@cirkus:~$ cd /etc/bind/pz
bruker@cirkus:~$ sudo zonesigner uka.no
bruker@cirkus:~$ sudo systemctl reload bind9

Reload Apacheconfigen:

bruker@cirkus:~$ sudo systemctl reload apache2

Kerberos

Du har kanskje gjort det allerede, og innsett at passord/brukernavnet ditt ikke virker. Vi må sette opp egen Kerberos-keytab for utviklings-instansen din.

Under kan det være greit å godta defaults. Følg det som står i "Opprette Kerberos-keytab" i itkaclbruk-artikkelen

Nå må vi redigere apache-configen til å bruke den nye keytaben

    <Location />
        AuthType Kerberos
        KrbAuthRealms AD.SAMFUNDET.NO
        Krb5Keytab /etc/apache2/krb5/BRUKERNAVN.utlegg.keytab
        KrbServiceName HTTP/BRUKERNAVN.utlegg.uka.no@AD.SAMFUNDET.NO
        KrbMethodK5Passwd on
        AuthName "Litt random tekst"
        require itkacl /web/uka/admin
    </Location>

uwsgi

Nå må vi opprette en uwsgi config-fil. Kopier en annen person sin, og endre den slik at den bruker din dev-instans.

bruker@cirkus:~$ cd /etc/uwsgi/apps-available
bruker@cirkus:~$ cp sveinrou.utlegg.uka.no.ini BRUKERNAVN.utlegg.uka.no.ini
bruker@cirkus:~$ ln -s ../apps-available/BRUKERNAVN.utlegg.uka.no.ini ../apps-enabled.custom/

Av sikkerhetsgrunner er det også viktig å sette uid og gid i configen til riktig bruker avhengig av hvilken side det er snakk om, eks uka sider er uid=uka-httpd, og gid=uka-web, tilsvarende for ufs er uid=ufs-httpd, og gid=ufs-web. Dette er fordi vi ikke vil ha uwsgi instanser kjørende som din personlige bruker siden denne har sudo-tilgang.

Da må du også passe på at gruppen, eks uka-web har lesetilgang til kildekoden. NB kun gruppen uka-web skal ha lesetilgang, ikke uka-httpd.

Så må vi fortelle uwsgi om instansen din.

bruker@cirkus:~$ sudo systemctl enable uwsgi-custom@BRUKERNAVN.utlegg.uka.no
bruker@cirkus:~$ sudo systemctl start uwsgi-custom@BRUKERNAVN.utlegg.uka.no

https

Vi har lyst til å bruke https, se noden om Let's Encrypt. Kort sagt:

bruker@cirkus:~$ sudo certbot -d BRUKERNAVN.utlegg.uka.no -a letsencrypt-varnish-plugin:varnish -i letsencrypt-hitch-plugin:hitch

Lenker: Start, uka-no

Mail: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2020-11-19 22:50 | Revisjon: 13 (historie, blame) | Totalt: 1662 kB | Rediger