Nerdkrams
Ein Monat mit OmniOS: Andere sind schon mit BSD überfordert.

Wer hier regel­mä­ßig mit­liest, der hat even­tu­ell mit­be­kom­men, dass mei­ne 2012 ent­fach­te und spä­ter gele­gent­lich wie­der the­ma­ti­sier­te Begei­ste­rung für das Betriebs­sy­stem Free­BSD im Febru­ar 2018 ein jähes Ende fand.

In einem selbst für mich über­ra­schen­den Anflug von Fol­ge­rich­tig­keit stell­te ich mit Erschei­nen des letzt­ver­link­ten Arti­kels jede Arbeit an Free­BSD-Unter­stüt­zung für jedes mei­ner Pro­gram­me ein und begab mich auf die Suche nach einem geeig­ne­ten Ersatz für mei­nen Web­ser­ver. Geplant hat­te ich wenig­stens die Mie­te neu­er Hard­ware schon seit län­ge­rer Zeit, nur dem Wunsch nach einem Wech­sel des Betriebs­sy­stems hat­te ich wenig­stens bis 2017 wider­stan­den. Aus didak­ti­schen Grün­den sei ange­merkt, dass die beschrie­be­nen Ereig­nis­se nicht der Grund, son­dern nur der Aus­lö­ser für mei­ne Abkehr waren. Über Mona­te hin­weg hat­te Free­BSD bei mir immer mal wie­der Pro­ble­me beim Update ver­ur­sacht. Das mag zum Teil mein Ver­schul­den sein, zum Teil liegt es aber auch dar­an, dass am Port­sy­stem von Free­BSD qua­si pau­sen­los gear­bei­tet wird und es manch­mal schein­bar von der Tages­form oder der Mond­pha­se abhängt, ob ein bestimm­ter Port mit einer bestimm­ten Kon­fi­gu­ra­ti­on kom­pi­liert und gestar­tet wer­den kann oder nicht. Das Ein­füh­ren von Fla­vors im Vor­jahr hat die Situa­ti­on dies­be­züg­lich nicht unbe­dingt ver­bes­sert. Free­BSD als sta­bi­les und zuver­läs­si­ges Gesamt­sy­stem bleibt inter­es­sant, falls man mit der Stan­dard­kon­fi­gu­ra­ti­on zufrie­den ist und zum Bei­spiel nur Binär­pa­ke­te nutzt, was ver­mut­lich der Regel­fall ist. Je mehr man aber anpas­sen möch­te, desto wahr­schein­li­cher kommt es zu Pro­ble­men. Ein ste­ti­ges Bei­spiel für klei­ne Ände­run­gen, die gro­ßen Ärger mit sich brin­gen kön­nen, ist LibreSSL, das man unter Free­BSD zwar statt OpenS­SL auto­ma­tisch in alle Ports hin­ein­kom­pi­lie­ren kann (hier­für DEFAULT_VERSIONS+= ssl=libressl in der Datei /etc/make.conf ein­tra­gen), aber dann fliegt einem eher frü­her als spä­ter irgend­was um die Ohren.

Auf Lap­tops hat­te ich schon vor Jah­ren lie­ber zu Open­BSD, das ein­fach funk­tio­nier­te, oder ande­ren Kon­kur­renz­sy­ste­men gegrif­fen und habe der­zeit also kei­nen sol­chen mit Free­BSD mehr im Ein­satz. Zwar stell­te mich Free­BSD als Nut­zer und Ent­wick­ler nicht mehr zufrie­den, aber die dort gepark­ten Dien­ste wol­len ja durch­aus immer noch wei­ter betrie­ben wer­den. Die offen­sicht­li­che Alter­na­ti­ve Open­BSD war vor­erst nicht ganz oben auf mei­ner Liste: Zwar treibt sie einen ande­ren mei­ner Ser­ver recht zuver­läs­sig an, aber ich bin inzwi­schen, fürch­te ich, ein wenig faul gewor­den und wür­de die ver­gleichs­wei­se arbeits­in­ten­si­ven halb­jähr­li­chen Updates ungern mehr als ein­mal machen müs­sen.

Ärger mit der Libel­le

Das erste Ziel war also wie­der ein­mal Dra­gon­Fly BSD, ein Fork einer alten Free­BSD-Ver­si­on mit enor­men Ver­bes­se­run­gen des Datei­sy­stems, jedoch auch einer weit­ge­hen­den Kom­pa­ti­bi­li­tät mit Free­BSD, was die Ports angeht. Dra­gon­Fly BSD funk­tio­nier­te bei der Erst­ein­rich­tung recht gut, jedoch bemerk­te ich schnell, dass auch eine Kehr­sei­te von Free­BSD kom­pa­ti­bel mit ihm ist: Der Port von SBCL, einer durch­aus nicht unwich­ti­gen Kom­po­nen­te, funk­tio­nier­te nicht wie erwar­tet. Zwar konn­te ich die­ses Pro­blem mit Raven­ports, einem alter­na­ti­ven Port­sy­stem eines Dra­gon­Fly-BSD-Ent­wick­lers, augen­schein­lich lösen, aber in Sum­me war der Weg dort­hin mir deut­lich zu stei­nig.

Weil ich den Ser­ver, wie bereits geschrie­ben, pro­duk­tiv ein­set­zen woll­te, nutz­te ich die­se Gele­gen­heit auch nicht, um wil­de Expe­ri­men­te zu wagen; 9front, die GNU Hurd oder gar das skur­ri­le Frickel­sy­stem Linux kamen hier also nicht in Fra­ge. (Dass ich mich gera­de aus ande­ren Grün­den mit dem 9front-Text­edi­tor Acme beschäf­ti­ge, ist viel­leicht eines Tages eine län­ge­re Abhand­lung wert.) Das soll natür­lich nicht bedeu­ten, dass mich Popu­la­ri­tät bei der Aus­wahl inter­es­sier­te, nur ver­nünf­tig lau­fen soll­te es schon. Und wel­ches System hat seit Jahr­zehn­ten den Ruf, so ver­nünf­tig zu lau­fen, dass es sogar kon­ser­va­ti­ve Unter­neh­men für viel Geld benut­zen wol­len? Na, Sola­ris natür­lich!

Sola­was?

Sola­ris – die Älte­ren erin­nern sich viel­leicht – wur­de Anfang der 1980er unter Mit­wir­kung von Bill Joy, dem Ent­wick­ler von ex, vi, Dis­tri­bu­tor von BSD UNIX und spä­ter lei­der auch Mit­schul­di­gen an der Exi­stenz von Java, als SunOS erst­mals ver­öf­fent­licht, seit der Umstel­lung von der BSD- auf die AT&T gehö­ren­de UNIX-System-V-Code­ba­sis etwa zehn Jah­re spä­ter trägt es sei­nen heu­ti­gen Namen. Von 2008 bis 2010 stand ein Groß­teil des Systems als Open­So­la­ris frei zur Ver­fü­gung, womit die­ses das erste freie System-V-UNIX war, denn die eben­falls Anfang der 1990er ent­stan­de­nen frei­en BSD-Deri­va­te durf­ten kei­nen AT&T‑lizenzierten Code mehr ver­wen­den, ohne Lizenz­ge­büh­ren zu zah­len.

Als der US-ame­ri­ka­ni­sche Daten­bank- und Heu­schrecken­kon­zern Ora­cle, der eigent­lich nur die Kon­kur­renz MySQL unter Kon­trol­le bekom­men woll­te, im Jahr 2010 aus Ver­se­hen auch den gan­zen Rest von Sun Micro­sy­stems mit­kauf­te, gehör­te das Brand­ro­den des Port­fo­li­os zu sei­nen näch­sten Schrit­ten, auch Sola­ris und die her­vor­ra­gen­den SPARC-Pro­zes­so­ren muss­ten seit­dem Federn las­sen. Open­So­la­ris wur­de nach kur­zer Zeit ein­ge­stellt und die bis dahin erhal­te­nen Code­bei­trä­ge von ande­ren Ent­wick­lern in das wie­der­um kom­mer­zi­el­le Sola­ris 11 inte­griert. Das mach­te vie­le Men­schen sehr unge­hal­ten.

Der kur­zen Zeit, in der es ein frei­es Sola­ris gab, ist es aber zu ver­dan­ken, dass bald unab­hän­gi­ge Nach­fol­ge­pro­jek­te auf Grund­la­ge des Open­So­la­ris-Forks illu­mos ent­stan­den waren, die oft von ent­täusch­ten ehe­ma­li­gen Sun-Ent­wick­lern vor­an­ge­trie­ben wur­den. Von den bis dahin ent­stan­de­nen tech­ni­schen Inno­va­tio­nen von Sola­ris, dar­un­ter das Datei­sy­stem ZFS, das Init­sy­stem Ser­vice Manage­ment Faci­li­ty (SMF), DTrace und die Con­tai­ner­tech­nik „Zones“ – mit etli­chen Jah­ren Ver­spä­tung und weni­ger Funk­tio­nen in der Linux­welt als „Docker“ nach­ge­baut – pro­fi­tier­ten auch die­se neu­en Pro­jek­te, allen vor­an Open­In­dia­na, das unter den illu­mos-Dis­tri­bu­tio­nen wegen sei­nes ver­gleichs­wei­se ein­fach zu instal­lie­ren­den Desk­tops die bekann­te­ste ist.

Dis­tri­bu­ti­ons­durch­ein­an­der

An die Exi­stenz die­ser Syste­me hat­te mich bereits im Sep­tem­ber 2017 der ehe­ma­li­ge Pira­ten­ak­ti­vist Ali Utlu erin­nert, was mir schon damals ein Aus­lö­ser dafür war, mich mit den gän­gi­gen Vari­an­ten zu befas­sen. Open­In­dia­na haf­te­te der Ruf an, nicht unbe­dingt das kom­pak­te­ste und schnell­ste System zu sein, im Web wur­de ich jedoch auf einen Blog­ar­ti­kel auf­merk­sam, der Tribb­lix, eine auf einen ver­gleichs­wei­se schlich­ten Desk­top aus­ge­rich­te­te Dis­tri­bu­ti­on, deren anschei­nend ein­zi­ger Ent­wick­ler bewusst zu kon­ser­va­ti­ven Lösun­gen wie den in älte­ren Sola­ris­ver­sio­nen ver­wen­de­ten SVR4-Pake­ten neigt, emp­fahl. Auf You­Tube wirk­te das System auch nicht unsym­pa­thisch, aber mein als Test­sy­stem genutz­ter Lap­top bekam kei­ne WLAN-Ver­bin­dung – die BSDs und illu­mos, die sich die Hard­ware­un­ter­stüt­zung gern ein­mal tei­len, unter­stütz­ten mei­nen Adap­ter noch nicht. Damit war das Kapi­tel illu­mos für mich erst ein­mal wie­der been­det.

Der neue Web­ser­ver aller­dings, nahm ich an, wür­de die­ses Pro­blem nicht haben, denn Ser­ver sind sel­ten kabel­los ange­bun­den. Die illu­mos-Welt war unter der wesent­li­chen Feder­füh­rung des inzwi­schen zu Sam­sung gehö­ren­den Unter­neh­mens Joy­ent, das sei­ner­seits die Dis­tri­bu­ti­on Smar­tOS in sei­nem Port­fo­lio führt, nicht ste­hen geblie­ben, bei­na­he regel­mä­ßi­ge Neu­ig­kei­ten blie­ben mir nicht ver­bor­gen. Ich ent­schied mich dafür, es ein­mal mit dem auf den Ser­ver­be­trieb spe­zia­li­sier­ten Omni­OS „Com­mu­ni­ty Edi­ti­on“ zu ver­su­chen, das im Som­mer 2017 als Nach­fol­ge­sy­stem des ein­ge­stell­ten Omni­OS von Omni­TI vor­ge­stellt wor­den war und des­sen Ent­wick­lung von einer eigens gegrün­de­ten Schwei­zer Stif­tung finan­ziert wird. Mal sehen, wie lan­ge das gut geht.

Omni­OS ja, nein?

Das stän­dig im Fluss befind­li­che Omni­OS, das (wohl auch aus recht­li­chen Grün­den) man­che Anwen­dun­gen aus Free­BSD über­nom­men hat, dar­un­ter inzwi­schen auch den Boot­loa­der sowie Tei­le des User­lands, ist trotz­dem von Anfang an als ein Betriebs­sy­stem mit ganz eige­nen Wur­zeln zu erken­nen. Das beginnt beim Instal­la­ti­ons­pro­gramm, das bis gestern „Kayak“ hieß und mit sei­nem Fra­ge-Ant­wort-Kon­zept der Instal­la­ti­on von Open­BSD sehr ähnel­te, jedoch waren alle mög­li­chen Ant­wor­ten bereits vor­ge­ge­ben und man wähl­te ein­fach die Zahl aus, die zu der jeweils pas­sen­den Ant­wort gehört. Das galt auch für Ja-Nein-Fra­gen, was nur zu Beginn ein Umden­ken erfor­der­te. – Mit der vor weni­gen Stun­den ver­öf­fent­lich­ten Omni­OS-Ver­si­on r151026 wur­de die­ses Instal­la­ti­ons­pro­gramm durch eines ersetzt, das sich wie­der mit Menüs bedie­nen lässt, jedoch kann, wer (wie ich) bun­te Text­wü­sten nur mäßig inter­es­sant fin­det, per Druck auf „T“ bei Beginn der Instal­la­ti­on die vor­he­ri­ge Ver­si­on wei­ter­hin benut­zen.

Nach der anson­sten brauch­bar doku­men­tier­ten Instal­la­ti­on hat man ein System vor sich, das mög­li­cher­wei­se funk­tio­niert. Schnell merkt man aber trotz der Stan­dardshell ksh93, dass in ande­ren Syste­men erar­bei­te­tes Wis­sen hier auf­grund des immer noch haupt­säch­lich von Sun ent­wor­fe­nen User­lands kaum anwend­bar ist:

$ ping tuxproject.de
tuxproject.de is alive

Immer­hin: Das Netz­werk funk­tio­niert anschei­nend, auch wenn die Mel­dung, die dies signa­li­siert, anders aus­sieht als gewohnt. Ich gebe gern zu, dass mir die­se Dar­stel­lung sogar noch ein biss­chen bes­ser gefällt als die sonst übli­che; ich per­sön­lich benut­ze ping in der Regel tat­säch­lich nur, um die Erreich­bar­keit von irgend­wel­chen Ser­vern (sel­ten: die Ver­füg­bar­keit der Inter­net­ver­bin­dung) zu ermit­teln. Apro­pos anders: Bei der Instal­la­ti­on wur­de ich dar­auf hin­ge­wie­sen, dass sudo hin­ter pfe­xec nur eine unter­ge­ord­ne­te Rol­le spielt und ob ich mit mei­nem eben­dort ein­ge­rich­te­ten Benut­zer­kon­to trotz­dem sudo ver­wen­den möch­te. Ich habe das zwar bejaht, aber wer­de im Fol­gen­den trotz­dem pfe­xec benut­zen. Es fühlt sich viel rich­ti­ger an.

Paket­dien­ste und mehr

Zwar kommt Omni­OS ab Werk mit einer nen­nens­wer­ten Samm­lung an nicht völ­lig unin­ter­es­san­ter Soft­ware, aber wenn etwas fehlt, dann ist es nicht gera­de offen­sicht­lich, woher man es neh­men könn­te. Die haus­ei­ge­ne Paket­ver­wal­tung pkg, die Free­BS­Ds pkgng (inzwi­schen eben­falls als pkg bekannt) augen­schein­lich ähnelt, aber wesent­lich gesprä­chi­ger ist und auch mehr Din­ge zu tun scheint, die sich mir noch nicht in jedem Fall ganz erschlos­sen haben, besticht nicht gera­de durch ein reich­hal­ti­ges Ange­bot:

$ pfexec pkg search nginx
$

Die offi­zi­ell emp­foh­le­ne Vor­ge­hens­wei­se ist es, die Paket­ver­zeich­nis­se von Frei­wil­li­gen ein­zu­bin­den. Ich stand nun vor der schwie­ri­gen Ent­schei­dung, vie­le zwei­fel­haf­te Quel­len in mein nor­ma­les pkg ein­zu­bin­den oder die offen­sicht­li­che Alter­na­ti­ve, den von Joy­ent (und damit einem Unter­neh­men, das es sich nicht lei­sten kann, Murks zu ent­wickeln) bereit­ge­stell­ten Fork von pkgsrc, zu nut­zen. Ich ent­schied mich für letz­te­re Vari­an­te, wohl wis­send, dass ich dann eigent­lich auch bei Dra­gon­Fly BSD hät­te blei­ben kön­nen. Tja – zu spät!

pkgsrc funk­tio­niert wie aus ande­ren Syste­men bekannt:

$ pfexec pkgin search nginx
nginx-1.13.10 =      Lightweight HTTP server and mail proxy server
nginx-1.12.2nb1 >    Lightweight HTTP server and mail proxy server

=: package is installed and up-to-date
: package is installed but newer version is available
>: installed package has a greater version than available package

Über „Boot­strap­ping“ hät­te ich hier auch die Mög­lich­keit, statt­des­sen Ports selbst zu kom­pi­lie­ren, aber in die­se Tie­fen woll­te ich noch nicht wie­der vor­drin­gen. Das Port­sy­stem von Free­BSD liegt mir immer noch schwer im Magen.

Zu Dien­sten!

Bei der Instal­la­ti­on von Pake­ten wie nginx weist pkgin auch unter Omni­OS gele­gent­lich dar­auf hin, wie man – falls vor­han­den – ihren System­dienst in SMF inte­griert. Grund­sätz­lich scheint mir die­ser super­vi­sor, wenn­gleich nicht unbe­dingt der schnell­ste, doch ein ziem­lich durch­dach­ter zu sein: Per svcadm enable/disable [Dienst] star­tet man einen Dienst oder hält ihn an, wenn dabei etwas schief­läuft und er zum Bei­spiel auf­grund von Kon­fi­gu­ra­ti­ons­feh­lern nicht wie­der star­tet, zeigt svcs ihn im „War­tungs­mo­dus“ (main­ten­an­ce) an. Sind die Feh­ler gefun­den und beho­ben, setzt svcadm clear [Dienst] sei­ne Arbeit fort. Die Rei­hen­fol­ge der Para­me­ter unter­schei­det sich hier von der aus Free­BSD gewohn­ten (ser­vice [Dienst] [Befehl]), aber die­ser Umstand macht sich beim Ver­tip­pen in der Regel von allein bemerk­bar.

Als ich nach einer Wei­le her­aus­fin­den woll­te, wie res­sour­cen­hung­rig mein neu­er Ser­ver wohl sein mag, fiel mir aber­mals eine Beson­der­heit von Sola­ris-Syste­men sozu­sa­gen auf die Füße: top exi­stiert hier nur als exter­nes Paket. Eine Tabel­le im Wiki von Smar­tOS ließ mich her­aus­fin­den, dass es unter illu­mos statt­des­sen eine gan­ze Hor­de an Befeh­len gibt, die auf „stat“ enden und prin­zi­pi­ell alles sta­ti­stisch abbil­den kön­nen, was man bei der Arbeit mit dem System so braucht. top am näch­sten kommt hier wahr­schein­lich prstat, was für „Pro­zess­sta­ti­stik“ zu ste­hen scheint.

Vir­tua­li­sier mich am Arsch

Ich erwähn­te oben „Zones“, also illu­mos‘ ein­ge­bau­tes Docker-Vor­bild. Die­se kön­nen nicht nur für den Betrieb von vir­tu­el­len Maschi­nen genutzt wer­den, son­dern sind zusam­men mit den Con­tai­ner­funk­tio­nen von ZFS so tief in das System inte­griert, dass auch das Datei­sy­stem selbst in der Stan­dard­aus­füh­rung völ­lig anders funk­tio­niert als etwa ZFS unter Free­BSD. Das beginnt bereits beim Update des Systems: Die vor­he­ri­ge Ver­si­on des Betriebs­sy­stems wird in eine neue Boot­um­ge­bung kopiert, die man im Feh­ler­fall dann wie­der star­ten kann. Die­se Boot­um­ge­bung umfasst alles unter­halb des Wur­zel­ver­zeich­nis­ses /, was kei­nen eige­nen Bereich im ZFS reser­viert bekom­men hat. Auch das hat mich über­rascht, denn nach mei­nem ersten Omni­OS-Upgrade auf die Ver­si­on r151024 war plötz­lich mein /opt-Ver­zeich­nis ver­schwun­den und mit ihm pkgsrc mit allen bis dahin instal­lier­ten Pake­ten.

Das Anle­gen eines Ver­zeich­nis­ses, das auch eine neue Boot­um­ge­bung über­steht, funk­tio­niert direkt auf Datei­sy­stem­ebe­ne. Wenn der bei der Instal­la­ti­on ange­leg­te ZFS-Pool (wie stan­dard­mä­ßig) rpool heißt, geht das so:

$ pfexec zfs create rpool/opt
$ pfexec zfs set mountpoint=/opt rpool/opt

Eine Über­prü­fung via zfs list soll­te /opt jetzt außer­halb der „ROOT“ genann­ten Boot­um­ge­bung anzei­gen. Ich emp­feh­le außer­dem, die Stan­dard­be­le­gung des /home-Ver­zeich­nis­ses nicht anzu­rüh­ren, denn auch die­ses funk­tio­niert, falls nicht geän­dert, nicht so wie man es erwar­ten soll­te.

Unter den Dien­sten, die ein jung­fräu­li­ches Omni­OS zu star­ten pflegt, befin­det sich auch auto­mount, das über die Datei /etc/auto_master gesteu­ert wird und von dort aus über die Datei /etc/auto_home das Benut­zer­ver­zeich­nis auto­ma­tisch aus dem ZFS-Pool moun­tet, stan­dard­mä­ßig anschei­nend aus rpool/export/home/. Das ist prak­tisch, wenn man weiß, dass es da ist, und ver­wir­rend, wenn man es nicht weiß. Ich habe mich dazu ent­schie­den, lie­ber auf die alt­her­ge­brach­te Metho­de zurück­zu­grei­fen, die auf nicht vir­tua­li­sier­ten Ser­vern kei­nen offen­sicht­li­chen Nach­teil mit sich bringt:

$ pfexec svcadm disable automount
$ pfexec mkdir /home/benutzer
$ pfexec chown -R benutzer /home/benutzer

Ein eige­ner ZFS-Bereich wur­de wie oben beschrie­ben eben­falls reser­viert. Damit war der Spuk vor­bei. Die vor Ver­öf­fent­li­chung die­ses Arti­kels durch­ge­führ­te Aktua­li­sie­rung des Systems dau­er­te unge­fähr drei Minu­ten und nach dem fäl­li­gen Neu­start war alles – ein­schließ­lich der instal­lier­ten Dien­ste – noch an sei­nem Platz. Es ist etwas scha­de, dass das ande­ren Syste­men manch­mal so schwer fällt.

Früh­jahrs­putz

Als ich den alten Ser­ver 2010 erst­mals ein­ge­rich­tet habe, habe ich auf eine Tren­nung zwi­schen ein­zel­nen Dien­sten nur sehr wenig geach­tet: Sehr weni­ge Domains tei­len sich sehr vie­le Dien­ste. Der alte Ser­ver ist also, um es ange­mes­sen form­los aus­zu­drücken, schei­ße kon­fi­gu­riert. Der Wech­sel zu einer völ­lig neu­en Umge­bung wird also selbst unter der Annah­me, dass Omni­OS als System nicht noch acht Jah­re über­le­ben wird, zumin­dest den Vor­teil haben, dass ich jetzt end­lich eine ver­nünf­ti­ge Gele­gen­heit habe, eine Inven­tur vor­zu­neh­men und das Vor­han­de­ne unter Zuhil­fe­nah­me von Sub­do­mains etwas sinn­vol­ler auf­zu­tei­len als bis­her.

Für einen Umzug ein­zel­ner Dien­ste, deren Domain nicht ein­fach geän­dert wer­den kann, ohne mehr Arbeit nach sich zu zie­hen, scheint HAPro­xy sich zu eig­nen. Ich wer­de sehen, ob ich es bereu­en wer­de, die­sen Schritt gegan­gen zu sein.

Bis­lang sieht es nicht so aus.

Senfecke:

  1. Uiuiui, da muss aber jemand frickeln. Man gut, dass du als Linux-Ver­wei­ge­rer noch nicht aus der Übung gekom­men bist ;)

Comments are closed.

https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_smilenew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_biggrin2.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_sadnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_eek.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_shocked.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_confusednew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_coolnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_lol.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_madnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_aufsmaul.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_seb_zunge.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_blushnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_frown.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_twistedevil1.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_twistedevil2.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/icon_mad.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_rolleyesnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_wink2.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_idea2.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_arrow2.gif 
mehr …
 

Erlaubte Tags:
<strong> <em> <pre> <code> <a href="" title=""> <img src="" title="" alt=""> <blockquote> <q> <b> <i> <del> <tt> <span style=""> <strike>

Datenschutzhinweis: Deine IP-Adresse wird nicht gespeichert. Details findest du hier.