Select Page

NETWAYS Blog

Die Idee von freier Software

Wir als NETWAYS haben uns schon vor vielen Jahren Open Source auf die Fahnen geschrieben, und meinen damit freie Software. Man muss manchmal aufpassen mit den beiden Termini “Open Source” und “Free Software”, das ist nämlich nicht pauschal das Gleiche!
Open Source heißt einfach, dass der Quellcode offen ist, jeder kann ihn lesen, er ist nicht verschlüsselt oder vorkompiliert. Dies bedeutet aber noch lange nicht, dass Sie als Benutzer auch Änderungen daran vornehmen dürfen, oder diese gar weitergeben dürfen.
Free Software, dagegen ist die Idee, dass eine Software völlig frei ist, jeder darf sie benutzen, verändern, weiter verbreiten. Wie es ihm passt, und nur mit geringen Einschränkungen, wie z.B. Nennung des Ursprungs-Authors oder Hinweise auf Veränderungen.
Dabei sagt man: “Free as in liberty, not free beer” – also “Frei wie Freiheit, und nicht Freibier” – denn Freibier kann irgendwann zu Ende sein.

Tim O´Reilly und Richard Stallman


Es gibt viele bekannte Projekte hinter denen freie Software steht, Linux, GNU, Debian, Fedora, FreeBSD, Icinga und viele, viele mehr. Und das Konzept funktioniert, jeder kann es benutzen und jeder kann mitmachen, ob durch Meinungen, Bugs, Patches oder viele Zeilen Code.
Wir als NETWAYS möchten nicht einfach Software verkaufen, sondern unser Wissen. Sei es in Workshops bei Kunden, Schulungen, oder auch Programmierung, um unsere Kunden bei der Integration und Benutzung von freier Software unterstützen.
Organisationen wie die Free Software Foundation Europe (FSFE), die Open Source Business Foundation (OSBF) oder die Open Source Business Alliance (OSBA) versuchen die Politik und Öffentlichkeit mehr auf Open Source und freie Software aufmerksam zu machen. Und Diskussionen, wie sie in den letzten Monaten in München zum Thema LiMux stattfinden zeigen, wie nötig dies ist.
Zum Abschluss noch ein kurzes Video, genau richtig für die Mittagspause. Und dabei erzählt kein geringerer als Richard Stallmann (der Gründer des GNU Projektes) was zu seiner Vorstellung von “Free software, free society”. Natürlich auf Englisch!

Foreman und die PuppetDB

foreman_small
Ein schönes, aber selten gewürdigtes Feature von Puppet sind wohl die sogenannten exported resources.
In einem Standard Setup mit Foreman funktionieren diese Resources jedoch nicht, ich möchte heute zeigen wie das zusammen mit der PuppetDB recht einfach umsetzbar ist.

Aber was tut das?

Mit exportierten Resourcen können Resourcen aus der einzelnen Node Konfiguration herausgehoben, und auf allen Nodes verwendet werden.
Hier ein kleines Beispiel, bzw. eigentlich das Standardbeispiel.

@@sshkey { $::fqdn:
  type         => rsa,
  key          => $::sshrsakey,
  host_aliases => [ $::hostname, $::ipaddress ],
}

Die Resource SSH-Key kümmert sich hierbei darum, den Key auf Basis eines Facts in die Datei /etc/ssh/ssh_known_hosts einzupflegen.
Grundsätzlich würde die Resource aber nur für den gleichen Node gültig sein, dies ändert das Prefix “@@” vor dem Resourcentyp, er macht die Resource exportierbar.
Um die exportierten Resourcen nun auch zu benutzen muss noch folgender Puppetcode ergänzt werden:

Sshkey <<| |>>

Dieser Collector sorgt dafür dass die Resourcen dieses Typs verwendet werden.
Es gibt noch ein paar Tricks mit Tags um unterschiedliche Bereiche dieser Resourcen zu unterscheiden und aufzuteilen, hierzu empfehle ich die Dokumentation zu Tags und Kollektoren zu lesen.

Wie funktioniert die Speicherung?

read more…

End2End Monitoring mit CasperJS

CasperJS LogoWas ist eigentlich dieses End2End Monitoring? Während viele Nutzer von Icinga haarklein jede Ecke ihrer IT-Landschaft überwachen, und sofort merken sollten wenn ein Dienst ausfällt oder ein Dateisystem voll läuft, werden Funktionstests aus der Endbenutzer-Sicht oft vernachlässigt.
Hier bietet CasperJS einen netten Funktionsrahmen um solche Tests für Webseiten einfach zu machen und z.B. den Inhalt zu prüfen oder mit der Webseite zu interagieren.
Ein kleiner Auszug der Funktionen von Casper:

  • Navigations-Schritte definieren und abarbeiten
  • Formulare ausfüllen und absenden
  • Interaktion mit der Webseite (Buttons und Links)
  • Screenshots zu jedem Zeitpunkt
  • Javascript Code im Context der Webseite (DOM) ausführen
  • Test Funktionen für den Inhalt der Webseite

Den Kern hinter Casper bildet dabei das Browser-Framework PhantomJS, dass einen Webkit Browser simuliert den man über Javascript steuern kann. Der große Unterschied zu einem echten Browser ist nur dass PhantomJS keinerlei Frontend bietet, alles geschieht im Hintergrund, und erfordert somit auch keine Desktop Oberfläche. Als Alternative lässt sich auch SlimerJS nutzen, was einen ähnlichen Funktionsumfang wie Phantom bietet, aber auf der Firefox Engine (Gecko) basiert.
Beide Tools liefern eine komplette Javascript API um den Browser zu steuern, was Casper beisteuert sind viele Hilfsfunktionen, die man sich sonst selbst schreiben müsste.
Aber wie sieht so ein CasperJS Skript eigentlich aus? Hier ein einfaches Beispiel:

/*
 * Webseite www.netways.de
 */
var url = 'http://www.netways.de';
casper.test.begin('NETWAYS.de', 4, function suite(test) {
  casper.start(url, function() {
    test.assertHttpStatus(200, "HTTP Request erfolgreich");
    test.assertUrlMatch(url, "auf der richtigen Webseite");
    test.assertTitleMatch(/NETWAYS/, "Titel der Webseite");
    test.assertExists('a[href="de/info/jobs/"]', 'Link auf Jobs');
  });
  casper.run(function() {
    test.done();
  });
});

Das Ergebnis auf der Kommandozeile sieht dann so aus:
CasperJS www.netways.de
Für einen Kunden integriere ich gerade CasperJS in Icinga, damit man zum einen die Ergebnisse melden, als auch Performancedaten sammeln und auswerten kann. Ich werde berichten sobald es etwas herzeigbares gibt!
Für alle die gerne jetzt, oder am Wochenende, mit CasperJS erste Gehversuche machen folgen noch ein paar Links. Am besten sollte man mit der Beta Version testen – dort sind viele neue Funktionen enthalten.
Weiterführende Links

P.S. Unsere Stellenanzeigen sollte man übrigens wirklich mal “von Hand” checken, Automatisierung ist nicht für alles gut…

Eindrücke vom LinuxTag 2014

Ende der vergangenen Woche fand der Linux Tag in neuer Umgebung in Berlin statt.
Nachdem die Konferenz nun einige Jahre in der Messe Berlin gastiert hat, hat man sich nun entschieden eine neue Umgebung zu suchen und bildet einen gemeinsamen Rahmen mit der re:publica und der droidcon.
Und dieser neue Rahmen funktioniert sehr gut, viele Teilnehmer, sehr interessante Vorträge und eine Ausstellung verschiedener Projekte und Firmen. Viele bekannte Gesichter, und auch, durch die unterschiedlichen Veranstaltungen, neue interessante Ideen.
read more…

Und das war die PGConf.DE 2013

PostgreSQL Elephant Kollege Lennart und ich haben letzte Woche einen Abstecher nach Oberhausen gemacht, um an der deutschsprachigen PostgreSQL Konferenz 2013 teil zu nehmen.
In über 20 Vorträgen gab es viele Neuigkeiten zu PostgreSQL, der Community und einigen Projekten für und mit PostgreSQL. Wie auch an unseren Konferenzen zu spüren wächst das internationale Interesse an deutschen Konferenzen immer mehr, und so gab es auch viele englischsprachige Vorträge.
Aus einigen Vorträgen war zu entnehmen dass viele viele Anwender an Performance-Problemen scheitern, die meist auf grundsätzliche Index-Probleme, fehlende Tuningeinstellungen oder sogar schlecht durchdachte Anwendungen zurückzuführen sind.
Einige Unternehmen waren anwesend und berichteten von Ihren positiven Erfahrungen bei, Einsatz von PostgreSQL und der Migration von anderen RDBMS.
Es ist immer wieder eine Freude viele bekannte Gesichter zu treffen und sich über den neuesten “IT Tratsch” auszutauschen.
Wer uns auf einer Konferenz entdeckt, darf übrigens gerne Hallo sagen, wir beißen nicht! 😉 Wir haben auch Steckbrief-Bilder zum einprägen!
Hier noch ein paar Vortrags-Empfehlungen:

The PostgreSQL name and logo are trademarks of The PostgreSQL Community Association of Canada. (source)