Manpremo
REFERAAT ON VEEL POOLELI JA TÄIENEB JOOKSVALT!!!!
Manpremo on kaughaldus süsteem, mis on loodud selleks, et süsteemi administraatorid saaksid keskselt hallata paljusid arvuteid kiirelt ja mugavalt. Seda rakendust arendab Eesti firma Povi Software OÜ. Manpremo on vabavaraline ja avatud lähtekoodiga. Tarkvara loomisel on põhiliselt kasutatud Pythonit. Serveri poole loomiseks on kasutatud lahtise lähtekoodiga võrguraamistikku nimega Django. Kliendi pool on kirjutatud Pythonis. Manpremo projekt on hetkel veel varajases arengu staadiumis, kuid on kasutatav Linux põhiste süsteemide administreerimisel.
Praegune Manpremo versioon on 0.2.
Põhilised omadused
- Veebi põhine kasutajaliides laseb arvuteid hallata olenemata asukohast spetsiaalset tarkvara paigaldamata. Liides töötab korralikult kõikide peamiste veebilehitsejatega.
- Jõuline kasutajaõiguste kontroll annab täieliku kontrolli selle üle, mida kasutajad teha saavad. Näiteks võib neil keelata muude käskude jooksutamise peale nende, mis süsteemi administraator on lubanud, anda ligipääs ainult teatud arvutitele ja palju muud.
- Mitme operatsiooni süsteemi tugi laseb hallata Linuxi, Windowsi ja Mac OS X põhiseid arvutied ühe süsteemiga. Käskluseid võib teisendada operatsiooni süsteemide vahel, lastes administraatoril kasutada samu käsklusi kõikides erinevates süsteemides.
- Lihtne kasutada nii administraatorite poolel kui ka kasutajate. Administraator võib telegeerida ülesandeid kasutajatele ilma, et nemad peaks õppima keerulisi käsklusi kirjutama.
- Turvaline platvorm tagab selle, et kliendi ja serveri vahelist suhtlust ei saa pealt kuulata ega muuta.
Vajalikud mõisted, teadmised ja tarkvara
Selleks, et järgnevat oleks võimalik järgida seletan lahti mõned mõisted ja panen kirja vajalikud teadmised ja tarkvara.
Mõisted (lähtudes käesoleva referaadi teemast)
- Server on arvuti, millele on paigaldatud Manpremo serveri poolne tarkvara.
- Klient on arvuti, millele on paigaldatud Manpremi kliendi poolne tarkvara.
- Development server on Manpremo serveri poolne tarkvara, mis on eelkõige mõeldud testimiseks ja arendamiseks.
- Production server on Manpremo serveri poolne tarkvara, mis on mõeldud töös oleva arvutivõrgu haldamiseks. See server kasutab serveri ja klientide vahelise ühenduse turvamiseks SSL krüpteerimist.
Teadmised/Tarkvara
Mina kasutasin serveri poole paigaldamiseks Ubuntu 10.10 Maverick versiooni. Manpremo loojad ise on testinud paigaldamist Debian Squeeze peal. Nende sõnul peaks paigaldamine õnnestuma Ubuntu ja sarnaste operatsioonisüsteemide peal.
Selleks, et paigaldada Manpremo on vaja täita järgnevad nõuded:
- Django - Serveri veebiliides
- Gettext - Serveri veebiliides
- stunnel (valikuline) - Turvalisus
- Mercurial - Manpremo koodi saamiseks
- Python - Manpremo on kirjutatud Pythonis
Kõide vajaminevate pakettide paigaldamiseks võib kasutada järgnevat käsurea käsklust:
sudo apt-get install python-django gettext stunnel4 mercurial python-tz
Manpremo serverite paigaldamine
Järgnevalt käin läbi erinevate Manpremo osade paigladamise. Mina kasutasin serverite paigaldamisel operatsioonisüsteemi Ubuntu 10.10. Kõik juhised ja käsud lähtuvad antud operatsioonisüsteemist. Vigade tekkimise korral kontrollida, et kõik ülesse loetud paketid on korralikult arvutisse paigaldatud. Enne kui paigaldama hakata, tuleks läbi mõelda kumba versiooni soovitakse kasutada. Development serveri peale ei õnnestu ilma suuremate jamadeta paigaldada production serverit seega tuleks enne ära otsustada.
Manpremo Development Server
Töö alustamiseks avada Terminal. (Applications > Accessories > Terminal).
Kõige viimase Manpremo versiooni kloonimine:
hg clone http://manpremo.org/hg/manpremo/
Manpremo kataloogi sisenemine ja viimase versiooni valimine:
cd manpremo/ hg up default
Andmebaasi intialiseerimine:
cd pyserver/ ./manage.py syncdb ./manage.py createcachetable cache_manpremo_ccs
Serveri käivitamine:
./manage.py runserver
Kui server käivitus (konsooli ekraanile ilmub kinnitus teade), on serveri veebillides kätte saadav aadressilt 127.0.0.1:8000.
Production serveri paigaldamine
Töö alustamiseks avada Terminal. (Applications > Accessories > Terminal).
Kõige viimase Manpremo versiooni kloonimine ja selle paigutamine /srv/manpremo kataloogi:
hg clone http://manpremo.org/hg/manpremo/ cd manpremo/ hg up stable-0.2 cd sudo mv manpremo /srv/
Manpremo andmebaasi jaoks vajalike pakettide paigaldamine:
sudo apt-get install postgresql python-psycopg2
(Vaikimisi kasutatakse PostgreSQL andmebaasi. Django dokumentatsioon annab ülevaate võimalikest alternatiividest.)
Andmebaasi ja kasutaja loomine:
sudo -u postgres psql CREATE DATABASE manpremo; CREATE USER manpremo; //Või sisesta omal valikul mõni kasutajatunnus. ALTER USER manpremo WITH ENCRYPTED PASSWORD 'notsecure'; //Või sisesta omal valikul mõni parool. GRANT ALL PRIVILEGES ON DATABASE manpremo TO manpremo; \q
Andmebaasi seadistamine:
sudo gedit /srv/manpremo/pyserver/settings.py
(Mina kasutasin gedit tööriista. Võib asendada ka muude alternatiividega nagu näiteks nano.)
Avanenud aknas otsida järgnevad väljad ja muuta ringi vasvalt juhisele:
DATABASE_ENGINE = 'postgresql_psycopg2' DATABASE_NAME = 'manpremo' DATABASE_USER = 'manpremo' //Kui valisite enne mingi muu kasutajatunnuse, sisestada see siia. DATABASE_PASSWORD = 'notsecure' //Kui valisite enne mingi muu parooli, sisestada see siia. DATABASE_HOST = 'localhost' # Use TCP socket, not local UNIX domain socket DATABASE_PORT =
CACHE_BACKEND = 'db://cache_manpremo_ccs'
Andmebaasi initiliseerimine:
cd /srv/manpremo/pyserver ./manage.py syncdb //Käsu jooksutamisel lastakse luua "super" kasutaja, kui seda veel ei ole. ./manage.py createcachetable cache_manpremo_ccs
Süsteemi kasutaja loomine andmebaasi jaoks:
sudo useradd manpremo sudo mkdir -p /srv/manpremo/pyserver/data sudo chown manpremo:manpremo -R /srv/manpremo/pyserver/data
Apache veebiserveri jaoks vajalike pakettide paigaldamine:
sudo apt-get install apache2-mpm-prefork libapache2-mod-python libapache2-mod-wsgi
Serveri jaoks võtmete loomine:
sudo mkdir /etc/apache2/ssl sudo openssl req -new -x509 -nodes -out /etc/apache2/ssl/manpremo.crt -keyout /etc/apache2/ssl/manpremo.key //Käsu jooksutamisel küsitakse sertifikaadi loomiseks erinevat informatsiooni. //Väljale CN(Common Name) sisestada serveri IP aadress või URL. sudo chmod 600 -R /etc/apache2/ssl sudo chown root:root -R /etc/apache2/ssl
Apache seadistus faili loomine:
sudo touch /etc/apache2/sites-enabled/manpremo sudo gedit /etc/apache2/sites-enabled/manpremo
Avanenud aknasse kopeerida järgnev tekst ja see salvestada:
WSGIRestrictStdout Off <VirtualHost *:80> # Redirect from HTTP to HTTPS: RewriteEngine On RewriteRule ^/(.*)$ https://%{SERVER_NAME}/$1 [R,L] </VirtualHost> <VirtualHost *:443> ServerAdmin webmaster@localhost WSGIScriptAlias / /srv/manpremo/pyserver/manpremo.wsgi WSGIDaemonProcess manpremo user=manpremo group=manpremo WSGIProcessGroup manpremo Alias /media "/srv/manpremo/pyserver/media SSLEngine on SSLCertificateFile /etc/apache2/ssl/manpremo.crt SSLCertificateKeyFile /etc/apache2/ssl/manpremo.key </VirtualHost>
SSL aktiveerimine ja moodulite ülekirjutamine:
sudo a2enmod ssl rewrite
Apache veebiserveri restart:
sudo apache2ctl restart
Kui kõik sammud said õigesti ja edukalt läbitud, peaks saama aadressilt https://localhost/ siseneda Manpremo veebiliidesesse käsu ./manage.py syncdb ajal sisestatud kasutajatunnustega. Kui sellel aadressil pärast sertifikaadi laadimist kuvatakse Internal Server Error 500, sisestada terminali järgmine käsk ja uurida viimaseid ridu vea põhjuse leidmiseks:
gedit /var/log/apache2/error.log
Autor
Henrik Leinola A22