Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:openshift:gnusocial

Gnusocial on OpenShift Online

Ich habe Gnusocial probehalber auf Openshift ausgerollt um einmal zu sehen wie es in dieser Umgebung läuft.

Dafür reichen die Ressourcen die man mit einem Free-Account erhält durchaus aus. Allerdings dürfte der Speicherplatz bzw Inodes die man im Free Account bekommt nicht lange halten wenn die Instanz gut genutzt wird. Nach dem Build Vorgang wurden pro Tag ca 1-2 Mbyte mehr an Speicherplatz verbraucht. Die zulässige Inode Quota liegt bei 80000. Zur Zeit liege ich nach ca. 1 Monate Laufzeit bei ca 210 Mbyte und 23000 Inode Einträgen. Irgendwann, vermutlich sehr bald, wird das freie Kontingent von 1 Gbyte aufgebraucht sein.

Ich denke für eine private Instanz sollte das ganze ausreichend sein. ich habe viele Nachrichtenfeeds abonniert und einige Leutchen reposten jeden Quatsch. Das geht natürlich auf die Quota :) Nach gut 3 Monaten absolut problemloser Laufzeit ist der Wermutstropfen weiterhin die Inode Quota und nicht der Speicherplatz von 1 GB.

Das Kommandozeilentool rhc bietet mit

$ rhc app-tidy <appname>

eine Funktion um quasi aufzuräumen (Logdatein, etc) und Speicherplatz freizugeben. Man müsste genauer untersuchen, was dort den Speicher verbraucht. Übrigens läuft in meiner Installation der Queue Daemon sowie der Jabber Bot ohne Probleme.

Notwendige Cartridges

  • PHP 5.4
  • MySQL 5.5
  • optional Cron 1.4

In der Konfigurationsdatei zu Gnusocial ist es hilfreich den Datenbank Host mit

$_ENV['OPENSHIFT_MYSQL_DB_HOST']

anszusprechen (hier MYSQL). Sollte sich die Hostadresse mal ändern was durchaus passieren kann, z.B. weil Openshift am System was gefummelt hat läuft die Datenbankandbindung nicht gleich ins leere. Siehe dazu auch im Blog, falls die Umgebungsvariable nicht zur Verfügung steht.

Beispielausgabe im Terminal:

$ echo $OPENSHIFT_MYSQL_DB_HOST
127.8.32.130

Daten Persistenz

Im Container befindet sich im ./app-root/data/ der Bereich, wo Daten dauerhaft abgelegt werden können:

$ echo $OPENSHIFT_DATA_DIR
 
/var/lib/openshift/54e4af0843123456/app-root/data/

Um die Daten die von Gnusocial abgelegt werden wie Avatare, Dateianhänge etc persistent zu speichern, muss man ein Action Hook anlegen. Ansonsten ist bei neuen Build wieder alles im Datennirvana verschwunden. Folgendes Script .openshift/action_hooks/build hilft da weiter:

Abgelegt unter .openshift/action_hooks/build im lokalen Repository. Nicht vergessen das Skript ausführbar zu machen chmod +x build. Überlegenswert ist auch ein „Hot Deploy“ mit einem Marker zu initialisieren, der den Php/Apache/MySQL Container nicht bei jedem neuen Push neustartet.

build
#!/bin/bash
 
echo "make gnusocialdata persistent.."
 
if [ ! -d $OPENSHIFT_DATA_DIR/gnusocial/avatar ]; then
	mkdir -pv $OPENSHIFT_DATA_DIR/gnusocial/avatar
fi
 
ln -sf $OPENSHIFT_DATA_DIR/gnusocial/avatar $OPENSHIFT_REPO_DIR/avatar
 
if [ ! -d $OPENSHIFT_DATA_DIR/gnusocial/file ]; then
	mkdir -pv $OPENSHIFT_DATA_DIR/gnusocial/file
fi
 
ln -sf $OPENSHIFT_DATA_DIR/gnusocial/file $OPENSHIFT_REPO_DIR/file

Das Script prüft immer beim Ausrollen ob die Verzeichnisse im OpenShift Datencontainer vorhanden sind und werden ggf neu angelegt. Um das zu bewerkstelligen helfen die Umgebungsvariablen $OPENSHIFTDATADIR und $OPENSHIFTREPODIR. Ein Symlink der Verzeichnisse macht sie von der Gnusocial Installation aus erreichbar.

Die aktuelle Belegung der eigenen Quota kann man innerhalb der App wie gewohnt anschauen:

$ rhc ssh <appname>
 
[appname-domain.rhcloud.com 54e4af0843123456]\> quota -s
 
Disk quotas for user 54e4af0843123456 (uid 1000): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/mapper/EBSStore01-user_home01
                   210M       0   1024M           20041       0   80000     

…. mehr folgt dann…

Nach 3 Monaten Laufzeit sieht das so aus:

quota -s
Disk quotas for user 54e4af084382ec4d780000ee (uid 4161): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/mapper/EBSStore01-user_home01
                   226M       0   1024M           22440       0   80000        

Diskussion

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
O X Z O J
 
linux/openshift/gnusocial.txt · Zuletzt geändert: 2015/05/14 16:47 von haiko