Innhold
1 Forberedelser
1.1 Installasjon av avhengigheter
Cerebrum er avhengig av en del tredjepartsprogrammer og biblioteker. Når vi benytter virtualenv og PIP med Cerebrum, vil vi også være avhengig av å bygge en del moduler lokalt på maskinen. Følgende pakker må installeres fra EPEL.
- python
- python-virtualenv
- postgresql92
- postgresql92-postgresql-devel
- cyrus-sasl-devel (for python 'sasl')
- openssl
- openssl-devel
- openldap
- libxml2-devel (for python 'lxml')
- libxslt-devel (for python 'lxml')
- libffi (for python 'pyOpenSSL')
- libffi-devel (for python 'pyOpenSSL')
- gcc
- gcc-c++
- swig
- uio-oracle-client12.1
- oracle-instantclient12.1-devel
- git
1.2 Cerebrum-verktøy
Cerebrum benytter seg også av noen programvarepakker for en del funksjonalitet:
- texlive-latex
- texlive-dvips
- barcode
- gnupg2
- uio-reguser
1.3 Installasjon av PIP-pakker som ligger utenfor pypi.python.org
Produksjonsmiljøet ligger i nedsperret nett, og kan ikke hente programvare uten å gå gjennom en proxy. Dette skaper problemer for enkelte python-moduler. Dette er bl.a. et kjent problem ved installasjon av egenix-mx-base gjennom PIP.
For å installere slike pakker må man:
- Hente ned komplett, ferdigbygget pakke. For mx-base vil dette være egenix-mx-base-3.2.8-py2.7_ucs4-linux-x86_64-prebuilt.zip fra egenix.com
- Legg filen inn på et passende område (f.eks. ~/pypi-local/). Filen må her ha et standardnavn som PIP kjenner igjen. Formatet er <pakkenavn>-<versjon>. For egenix-mx-base versjon 3.2.8 må filnavnet være egenix-mx-base-3.2.8.zip.
- Ved installasjon av pakker med PIP, bruk opsjonen --find-links ~/pypi-local/ for å instruere PIP om å hente pakker fra dette området, dersom de finnes der.
2 Filstruktur og oppsett
2.1 Repos
Cerebrum-konfigurasjonen forventer i enkelte tilfeller å finne cerebrum-relaterte repos sjekket ut på hjemmeområdet til brukeren som kjører scripts.
Benytt derfor følgende områder til utsjekket kode i test- og produksjonsmiljø:
- ~/src/cerebrum
- ~/src/cerebrum_config
- ~/src/cerebrum_hacks
2.2 Installasjon av Cerebrum
# Lag et rotområde for cerebrum, eid av cerebrum-brukeren (evt. # instansbruker dersom vi skal benytte en egen bruker per instans). sudo mkdir /cerebrum sudo chown cerebrum:cerebrum /cerebrum # Opprett et virtualenv på området virtualenv /cerebrum # Aktiver virtualenv i shellet source /cerebrum/bin/activate # Konfigurasjon for bygging av M2Crypto export SWIG_FEATURES="-cpperraswarn -includeall -I/usr/include/openssl" # Installere dependencies pip install -r ~/src/cerebrum/requirements.txt \ --find-links ~/pypi-local \ --proxy updateproxy.uio.no:3128 # Installere cerebrum pip install /path/to/cerebrum/ touch /cerebrum/etc/cerebrum/cerebrum_path.py
2.3 Konfigurasjon av shellet
Cerebrum/instansbrukeren bør få satt enkelte ting i sitt shell:
# Virtualenv source /cerebrum/bin/activate # Legg til config-mappe i PYTHONPATH export PYTHONPATH=/cerebrum/etc/cerebrum:$PYTHONPATH # Oppsett for Oracle-klient source /etc/oracle-client12.1/oraprofile.sh
2.4 Filstruktur
Gitt et virtualenv $venv, vil følgende steder benyttes for Cerebrum:
- $venv/var/cache
- Importfiler, eksportfiler og annen tilstandsinformasjon plasseres her. De fleste får egne underkataloger.
- $venv/var/log
- Logger. cronjobs ligger under $venv/var/log/cerebrum, mens spesielle logger, som f.eks. job_runner og autoadmin legges direkte under $venv/var/log.
- $venv/var/lock
- Låsefiler og PID-filer ligger her. Dette er det stort sett bare job_runner som benytter seg av.
- $venv/etc/cerebrum
- Inneholder config-filer. Dette vil være filer fra ~/src/cerebrum_config/etc/<instans>
- $venv/etc/templates
- Inneholder templates. Dette er filer fra ~/src/cerebrum_config/templates/<instans>
- $venv/etc/passwords
- Inneholder beskyttede filer (passordfiler, sertifikater, nøkler, etc...).
- $venv/etc/dictionaries
- Inneholder ordbøker som benyttes i generering og kontroll av brukernavn, og passord.