Difference between pages "AutoDRAIN" and "Palvelut-Tekniikka"

From Tampere Hacklab Wiki
(Difference between pages)
Jump to: navigation, search
 
m
 
Line 1: Line 1:
 +
Tässä tekniset tiedot palveluista. '''Ei tunnuksia tai salasanoja wikiin'''.
  
== AutoDRAIN ==
+
Käyttäjille tarkoitettu sivu: [[Palvelut]]
Paineilmajärjestelmään liitettävä digitaalinen ajastin veden poistoa varten. Arduinopohjainen yksikkö kytkee paineilmasäiliöön liitettyjä magneettiventiileitä auki säädettävin aikajaksoin,
+
jolloin järjestelmään kertynyt vesi pääsee poistumaan viemäriin. Projekti alkoi kuivaimen kohoventiilin hajottua, jolloin alettiin ideoimaan sen korvaamisesta muulla ratkaisulla.
+
  
Käsikäyttöinen hana olisi ollut nopea ratkaisu, mutta vaatisi käyttäjältä muistamista, joten päädyttiin automaattiseen järjestelmään.
+
Hacklabin webbipalvelut pyörii FAR ry:n tarjoamassa virtuaalipalvelimessa Docker-konteissa.
Kuivaimen vedenerottimen pohjaan asennettiin sopivilla kierreadaptereilla magneettiventiili ja Ketturi rakensi AutoDRAIN järjestelmään ohjaamaan magneettiventiiliä.
+
  
[[File:AutoDRAIN1.jpg|800px]]
+
Docker-konteista ei pääse toisiinsa suoraan. Hostin IP on 172.17.0.1. Eli jos
[[File:AutoDRAIN2.jpg|800px|left]]
+
haluat käyttää esim LDAPpia kontista, se löytyy osoitteesta 172.17.0.1:8889 eikä 127.0.0.1.
  
AutoDRAINin aivot ovat Funduino Pro Micro, pieni dip-piirin kokoinen arduino-klooni. Firmware on opensourcea, ja arduino sketch löytyy githubista[https://github.com/TampereHacklab/AutoDrain].
+
'''HUOM! Jos hosti reboottaa, tuo IP voi vaihtua! Tähän pitäisi keksiä ratkaisu. Esim Mezzanine ja Wiki ei tue dns:ää LDAP-hostissa'''
Tällähetkellä järjestelmästä löytyy perustoiminnot, ajastin kahdelle eri ventiilille, asetusvalikko ja kytkimet käsikäyttöiselle veden tyhjennykselle.
+
Laite näyttää käynnistyessä mallin ja versionumeron, jonka jälkeen ilmestyy näytölle aika seuraaviin tyhjennyksiin(Drain).
+
Keskimmäistä menu-nappia painamalla pääsee asetusvalikkoon jossa voi säätää kummallekin ventiilille miten usein tyhjennys tapahtuu,
+
ja kuinka kauan ventiili on auki tyhjennyksen aikana. Up ja Down näppäimet lisäävät ja vähentävät näytöllä näkyvää arvoa, ja select napilla pääsee
+
seuraavaan asetukseen.
+
Kotiruudussa Drain 1 ja Drain 2 painikkeet avaavat ventiilit käsikäyttöisesti.
+
[[File:AutoDRAINventtiili1.jpg|800px]]
+
[[File:AutoDRAINventtiili2.jpg|400px]]
+
  
Mikäli laite jumiutuu, tai halutaan muuten palauttaa laite alkutilaan, voidaan arduinon EEPROM tyhjentää pitämällä menu näppäintä pohjassa virtojen kytkennän aikana.
+
Kontteihin pääsee shelliin tekemään huoltojuttuja näin:
Tällöin näytölle ilmestyy teksti "Clearing Settings" ja progress bar.
+
  
=== Parannusehdotuksia ===
+
docker exec -it <nimi> bash
* Oikea piirilevy nopean täpläkupariprototyyppilevyn sijasta
+
 
* Laserleikattu kotelo joka istuu kunnolla ja johon mahtuu paremmin osat
+
Kontissa tehdyt muutokset EIVÄT TALLENNU ellei konttia committoi:
* Liittimet johdoille piirilevyn ruuviliitinten sijasta
+
 
* Koodin hionta ja tarkistus, tällä hetkellä koodissa voi olla bugeja
+
docker commit <nimi>
* Painesensori/vesisensori jotta tyhjennys ei tapahdu kaiken aikaa vaan vain tarvittaessa
+
Kontin ulkopuolella, esim. /data hakemistossa oleva tieto sitävastoin säilyy. Ks. varmuuskopiointi
 +
 
 +
Jos teet isomman muutoksen, anna kontille uusi image-nimi ja tagi (versionumero):
 +
 
 +
docker commit <nimi> <image>:<tagi>
 +
 
 +
Muista päivittää tälle sivulle uusimman version image:tagi!
 +
 
 +
== Varmuuskopiointi ==
 +
 
 +
Skripti /root/backup_docker_containers.sh ottaa konteista talteen tarvittavat datat ja tallentaa ne päiväyksellä varustuettuun tiedostoon. Aja se roottina, kun haluat ottaa varmuuskopiot kaikesta.
 +
Nää olisi hyvä vielä kopsia johonkin muualle talteen jos FAR:n palveli leviää täysin.
 +
 
 +
<pre>
 +
$ sudo /root/backup_docker_containers.sh
 +
Dumping ldap data..
 +
Dumping MYSQL database..
 +
Creating backup archive /root/backup/backup-2016-02-21.tar.gz
 +
tar: Removing leading `/' from member names
 +
Deleting MYSQL database dump
 +
Backups done! Number of files saved:
 +
9233
 +
</pre>
 +
 
 +
= LDAP =
 +
 
 +
Tehty tämän ohjeen mukaan: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-a-basic-ldap-server-on-an-ubuntu-12-04-vps
 +
 
 +
== Docker-kontti ==
 +
 
 +
{{Template:DockerKontti
 +
|kuvaus = slapd LDAP-palvelin
 +
|nimi = ldap
 +
|tekija = cos
 +
|image = ldap_tuotanto_1
 +
|alkuperainen_image = ubuntu
 +
|kaynnistys =
 +
<pre>
 +
docker run -d -p 8888:80 -p 8889:389 -v /root/docker-data/ldap:/data --name ldap -t {{{image}}}
 +
docker exec ldap service apache2 start
 +
docker exec ldap service slapd start
 +
</pre>
 +
|jaetut_hakemistot = /root/docker-data/ldap:/data . Sisältää etc_ldap:n joka on /etc/ldap-hakemisto.
 +
|varmuuskopiointi = Aja komento sudo /root/backup_docker_containers.sh
 +
|verkko = LDAP portissa 8889 (389) ja phpldapadmin portissa 8888 (80)
 +
}}
 +
 
 +
== Debuggaus ==
 +
 
 +
=== Slapd:n logituksen saa näin ===
 +
 
 +
killall slapd (ei kuole service stop:lla!)
 +
slapd -d -1
 +
 
 +
=== ldapsearch ===
 +
 
 +
Ldapsearchilla voi tehdä kaikenlaisia hakuja (http://blogs.splunk.com/2009/07/30/ldapsearch-is-your-friend/)
 +
 
 +
ldapsearch -h 127.0.0.1 -p 8889 -x -b "dc=tampere,dc=hacklab,dc=fi" -D "cn=<tunnus>,ou=users,dc=tampere,dc=hacklab,dc=fi" -W
 +
 
 +
= Wiki =
 +
 
 +
Mediawiki. Luet sitä. Käyttää FAR:n MySQL-tietokantaa. Imageen asetettu uudempi versio mediawikistä ja LDAPAuthentication-lisäosa.
 +
 
 +
== WYSIWYG-editori ==
 +
 
 +
VisualEditor on suositeltu. Extensioni asennettu, MUTTA asennus kesken
 +
 
 +
https://www.mediawiki.org/wiki/Parsoid/Setup kohtaan apt-get install curl parsoid
 +
 
 +
parsoid : Depends: nodejs (>= 0.8.0) but 0.6.12~dfsg1-1ubuntu1 is to be installed
 +
E: Unable to correct problems, you have held broken packages.
 +
 
 +
== Docker-kontti ==
 +
 
 +
{{Template:DockerKontti
 +
|kuvaus = Mediawiki
 +
|nimi = mediawiki
 +
|tekija = cos
 +
|image = mediawiki:beta2
 +
|alkuperainen_image = nickstenning/mediawiki
 +
|kaynnistys =
 +
<pre>
 +
docker run -v /root/docker-data/mediawiki:/data -d -p 81:80 --name mediawiki mediawiki:beta2
 +
</pre>
 +
|jaetut_hakemistot = /root/docker-data/mediawiki <-> /data
 +
|varmuuskopiointi = /root/docker-data/mediawiki sekä MYSQL-tietokanta tallentuu skriptillä.
 +
|verkko = Mediawiki portissa 81
 +
}}
 +
 
 +
= Mezzanine =
 +
 
 +
Löytyy kontin sisältä hakemistosta /root/trehacklab
 +
 
 +
/root:ssa on myös mezzanine.sh, joka asettaa pari ympäristömuuttujaa oikein ja käynnistää mezzaninen. Käytä sitä.
 +
 
 +
== Muokkaus ==
 +
 
 +
Labin Mezzanine löytyy GitHubista osoitteesta https://github.com/TampereHacklab/mezzanine
 +
 
 +
Tarkoitus olisi, että tuota voi ajaa omalla koneella ja tehdä erilaisia kustomointeja kuten teeman muokkausta, pluginien asennusta jne. Muutokset sitten pullrequestin kautta githubiin ja sieltä palvelimelle.
 +
 
 +
TODO: Dokumentoi miten sitä ajetaan paikallisesti.
 +
 
 +
== Docker-kontti ==
 +
 
 +
{{Template:DockerKontti
 +
|kuvaus = Mezzanine CMS
 +
|nimi = mezzanine
 +
|tekija = cos
 +
|image = mezzanine_tuotanto:4
 +
|alkuperainen_image = ubuntu 15.10
 +
|kaynnistys =
 +
<pre>
 +
docker run -d -p 80:80 --name mezzanine -h tampere.hacklab.fi -v /root/docker-data/mezzanine:/data {{{image}}} /data/mezzanine.sh
 +
</pre>
 +
|{{{image}}} on imagen nimi esim. mezzanine_tuotanto:4
 +
| /data/mezzanine.sh on blogisovelluksen käynnistävä komentokuori, vastaa init prosessia normikoneessa.
 +
| --name mezzanine:a voi joutua muuttamaan, kun se on jo annettu aiemmin kontainerille. Sen voi myös jättää pois.
 +
|jaetut_hakemistot = /root/docker-data/mezzanine:/data
 +
|varmuuskopiointi = Koko roska on tuolla /data:n alla nykyään. Tietokanta on dev.db-nimiseen sqlite-tietokanta. Shelliskripti taltio nää kaikki.
 +
|verkko = Mezzanine portissa 80
 +
}}
 +
 
 +
= DLReg =
 +
 
 +
Cos:n tätä varten koodaamaa käyttäjille tarkotettu LDAP-rekisteröintikalu.
 +
Sorsat löytyy https://github.com/hacklab-fi/dlreg ja saa kontributoida.
 +
 
 +
URL: http://tampere.hacklab.fi:8887/
 +
 
 +
== Docker-kontti ==
 +
 
 +
{{Template:DockerKontti
 +
|kuvaus = DLReg LDAP-rekisteröinti
 +
|nimi = dlreg
 +
|tekija = cos
 +
|image = dlreg_image
 +
|alkuperainen_image = dlreg:n oma, gitistä löytyy dockerfile.
 +
|kaynnistys =
 +
<pre>
 +
docker run --name dlreg -d -p 8887:8000 -v /root/docker-data/dlreg:/data dlreg-image python /data/dlreg/manage.py runserver 0.0.0.0:8000
 +
</pre>
 +
|jaetut_hakemistot = /root/docker-data/dlreg:/data jossa on koko applikaatio.
 +
|varmuuskopiointi = Skripti tallentaa jaetusta hakemistosta kaiken. Varsinaista pysyvää dataahan ei ole.
 +
|verkko = Webbi-ui portissa 8887
 +
}}

Revision as of 15:17, 15 March 2016

Tässä tekniset tiedot palveluista. Ei tunnuksia tai salasanoja wikiin.

Käyttäjille tarkoitettu sivu: Palvelut

Hacklabin webbipalvelut pyörii FAR ry:n tarjoamassa virtuaalipalvelimessa Docker-konteissa.

Docker-konteista ei pääse toisiinsa suoraan. Hostin IP on 172.17.0.1. Eli jos haluat käyttää esim LDAPpia kontista, se löytyy osoitteesta 172.17.0.1:8889 eikä 127.0.0.1.

HUOM! Jos hosti reboottaa, tuo IP voi vaihtua! Tähän pitäisi keksiä ratkaisu. Esim Mezzanine ja Wiki ei tue dns:ää LDAP-hostissa

Kontteihin pääsee shelliin tekemään huoltojuttuja näin:

docker exec -it <nimi> bash

Kontissa tehdyt muutokset EIVÄT TALLENNU ellei konttia committoi:

docker commit <nimi>

Kontin ulkopuolella, esim. /data hakemistossa oleva tieto sitävastoin säilyy. Ks. varmuuskopiointi

Jos teet isomman muutoksen, anna kontille uusi image-nimi ja tagi (versionumero):

docker commit <nimi> <image>:<tagi>

Muista päivittää tälle sivulle uusimman version image:tagi!

Varmuuskopiointi

Skripti /root/backup_docker_containers.sh ottaa konteista talteen tarvittavat datat ja tallentaa ne päiväyksellä varustuettuun tiedostoon. Aja se roottina, kun haluat ottaa varmuuskopiot kaikesta. Nää olisi hyvä vielä kopsia johonkin muualle talteen jos FAR:n palveli leviää täysin.

$ sudo /root/backup_docker_containers.sh
Dumping ldap data..
Dumping MYSQL database..
Creating backup archive /root/backup/backup-2016-02-21.tar.gz
tar: Removing leading `/' from member names
Deleting MYSQL database dump
Backups done! Number of files saved:
9233

LDAP

Tehty tämän ohjeen mukaan: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-a-basic-ldap-server-on-an-ubuntu-12-04-vps

Docker-kontti

Docker-kontin tiedot
Kuvaus slapd LDAP-palvelin
Kontin nimi ldap
Tekijä cos
Image ldap_tuotanto_1
Alkuperäinen image ubuntu
Imagen käynnistys
 docker run -d -p 8888:80 -p 8889:389 -v /root/docker-data/ldap:/data --name ldap -t {{{image}}}
 docker exec ldap service apache2 start
 docker exec ldap service slapd start
Jaetut hakemistot /root/docker-data/ldap:/data . Sisältää etc_ldap:n joka on /etc/ldap-hakemisto.
Verkko LDAP portissa 8889 (389) ja phpldapadmin portissa 8888 (80)
Varmuuskopiointi Aja komento sudo /root/backup_docker_containers.sh

Debuggaus

Slapd:n logituksen saa näin

killall slapd (ei kuole service stop:lla!)
slapd -d -1

ldapsearch

Ldapsearchilla voi tehdä kaikenlaisia hakuja (http://blogs.splunk.com/2009/07/30/ldapsearch-is-your-friend/)

ldapsearch -h 127.0.0.1 -p 8889 -x -b "dc=tampere,dc=hacklab,dc=fi" -D "cn=<tunnus>,ou=users,dc=tampere,dc=hacklab,dc=fi" -W

Wiki

Mediawiki. Luet sitä. Käyttää FAR:n MySQL-tietokantaa. Imageen asetettu uudempi versio mediawikistä ja LDAPAuthentication-lisäosa.

WYSIWYG-editori

VisualEditor on suositeltu. Extensioni asennettu, MUTTA asennus kesken

https://www.mediawiki.org/wiki/Parsoid/Setup kohtaan apt-get install curl parsoid

parsoid : Depends: nodejs (>= 0.8.0) but 0.6.12~dfsg1-1ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.

Docker-kontti

Docker-kontin tiedot
Kuvaus Mediawiki
Kontin nimi mediawiki
Tekijä cos
Image mediawiki:beta2
Alkuperäinen image nickstenning/mediawiki
Imagen käynnistys
 docker run -v /root/docker-data/mediawiki:/data -d -p 81:80 --name mediawiki mediawiki:beta2
Jaetut hakemistot /root/docker-data/mediawiki <-> /data
Verkko Mediawiki portissa 81
Varmuuskopiointi /root/docker-data/mediawiki sekä MYSQL-tietokanta tallentuu skriptillä.

Mezzanine

Löytyy kontin sisältä hakemistosta /root/trehacklab

/root:ssa on myös mezzanine.sh, joka asettaa pari ympäristömuuttujaa oikein ja käynnistää mezzaninen. Käytä sitä.

Muokkaus

Labin Mezzanine löytyy GitHubista osoitteesta https://github.com/TampereHacklab/mezzanine

Tarkoitus olisi, että tuota voi ajaa omalla koneella ja tehdä erilaisia kustomointeja kuten teeman muokkausta, pluginien asennusta jne. Muutokset sitten pullrequestin kautta githubiin ja sieltä palvelimelle.

TODO: Dokumentoi miten sitä ajetaan paikallisesti.

Docker-kontti

Docker-kontin tiedot
Kuvaus Mezzanine CMS
Kontin nimi mezzanine
Tekijä cos
Image mezzanine_tuotanto:4
Alkuperäinen image ubuntu 15.10
Imagen käynnistys
 docker run -d -p 80:80 --name mezzanine -h tampere.hacklab.fi -v /root/docker-data/mezzanine:/data {{{image}}} /data/mezzanine.sh
Jaetut hakemistot /root/docker-data/mezzanine:/data
Verkko Mezzanine portissa 80
Varmuuskopiointi Koko roska on tuolla /data:n alla nykyään. Tietokanta on dev.db-nimiseen sqlite-tietokanta. Shelliskripti taltio nää kaikki.

DLReg

Cos:n tätä varten koodaamaa käyttäjille tarkotettu LDAP-rekisteröintikalu. Sorsat löytyy https://github.com/hacklab-fi/dlreg ja saa kontributoida.

URL: http://tampere.hacklab.fi:8887/

Docker-kontti

Docker-kontin tiedot
Kuvaus DLReg LDAP-rekisteröinti
Kontin nimi dlreg
Tekijä cos
Image dlreg_image
Alkuperäinen image dlreg:n oma, gitistä löytyy dockerfile.
Imagen käynnistys
 docker run --name dlreg -d -p 8887:8000 -v /root/docker-data/dlreg:/data dlreg-image python /data/dlreg/manage.py runserver 0.0.0.0:8000
Jaetut hakemistot /root/docker-data/dlreg:/data jossa on koko applikaatio.
Verkko Webbi-ui portissa 8887
Varmuuskopiointi Skripti tallentaa jaetusta hakemistosta kaiken. Varsinaista pysyvää dataahan ei ole.