Montag, 12. Mai 2014

SVN backup

In meinem letzten Post habe ich beschrieben, wie man den RPI als SVN Server konfiguriert. Da ich schon einige male Probleme mit der verwendeten SD-Card hatte, möchte ich hier beschreiben, wie man von seinem Repository ein Backup anlegen und dieses wieder einspielen kann.

1. Backup anlegen
svnadmin dump /var/local/svn/repo > /home/pi/svn_bu.dump
Das Backup, kann dann z.B. per FTP auf einen Host bzw. RPI übertragen werden.

2. Backup einspielen

2.1. Repository anlegen
sudo svnadmin create --fs-type fsfs /var/local/svn/repo
2.2 Repository laden
sudo svnadmin load /var/local/svn/repo/ < /home/pi/svnexport.dump
3 Ordner Rechte für den webserver setzten
sudo chown -R www-data:www-data /var/local/svn
4. Zum Abschluss den Webserver neustarten.
sudo /etc/init.d/apache2 restart

Raspberry Pi als SVN Server einrichten

Diesmal geht es darum, wie man seinem Raspberry Pi als SVN Server konfigurieren kann.

1. Installation von Subversion
sudo apt-get install subversion
2. Anlegen eines Ordners indem das Repository gespeichert werden soll
sudo mkdir -p /var/local/svn/
3. Repository anlegen
svnadmin create --fs-type fsfs /var/local/svn/repo
4. Remote Zugang über http einrichten

4.1 Installation des Webservers
sudo apt-get install apache2 libapache2-svn
4.2 Ordner Rechte für den webserver setzten
sudo chown -R www-data:www-data /var/local/svn
4.3 Konfiguration mittels dav_svn.conf
sudo nano /etc/apache2/mods-enabled/dav_svn.conf

Darin ist bereits eine kommentierte Beispielkonfiguration entahlten. Diese wie folgt anpassen, damit alle Repositories im angelegten Ordner verfügbar sind.
<Location /svn>
  DAV svn
  SVNParentPath /var/local/svn
</Location>

4.4 Falls auf dem System mehrer Webserver laufen (z.B. Raspbmc), muss noch der Port auf dem der Webserver lauscht, angepasst werden. Dazu den Port hinter Listen entsprechend anpassen (z.B. 8080)
sudo nano /etc/apache2/mods-enabled/ports.conf
4.5 Zum Abschluss den Webserver neustarten, damit dieser die Konfiguration übernimmt.
sudo /etc/init.d/apache2 restart
5. Funktionstest mit Browser
 http://<rpi ip>:8080/svn/repo
Es wird eine Webseite mit repo - Revision 0: / dargestellt.

6. Funktionstest per Kommandozeile
svn checkout http://<rpi ip>:8080/svn/repo repo/
Ein noch leeres Repository wird in den Ordner repo ausgecheckt.

7. Weitere Repositories können durch wiederholen von 3. angelegt werden.

Sonntag, 4. Mai 2014

Raspberry Pi Autostart einrichten

Heute möchte ich kurz Beschreiben, wie beim PI ein Autostart umgesetzt werden kann.
Dazu habe ich unter /var/scripte ein Script hinterlegt, was bei jedem Start ausgeführt wird.

1. Ordner Scripte erzeugen, das -p erzeugt die übergeordneten Ordner falls diese nicht existieren
sudo mkdir -p /var/scripte 

2. Die Script Datei anlegen:
sudo touch autostart.sh

3. Das Script ausführbar machen:
sudo chmod +x autostart.sh

4. Jetzt kann das Script mit "Leben" befüllt werden. Das bedeutet alle Kommandos oder Programmaufrufe können darin eingetragen werden, diese werden beim Start entsprechend der Reihenfolge ausgeführt. Hier ein Beispiel, wie eine index.html aus dem Home Ordner des Users Pi mittels eines Python HTTP servers am Port 8081 verfügbar gemacht wird.
Dies verwende ich in einem weiterem Post zur Browser basierenden Visualisierung der PI Temperatur.

Datei zum bearbeiten öffnen:
sudo nano autostart.sh

Folgenden Inhalt eintragen:

#!/bin/bash
cd /home/pi
/usr/bin/python -m SimpleHTTPServer 8081

5. Damit das Script beim Start auch ausgeführt wird, muss es noch  in das Script /etc/rc.local eingetragen werden. Damit können alle nicht graphischen Programme beim Systemstart ausgeführt werden. Dabei muss beachtet werden, dass dieses Script immer mit exit 0 abgeschlossen werden muss.

In meinem Fall sieht das Script wie folgt aus:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/var/scripte/autostart.sh
exit 0
Bearbeiten kann man es wieder mit:

sudo nano /etc/rc.local