Skip to content

Taskwarrior und Taskserver ...

taskwarrior Ich werde hier in zwei oder drei Teilen einmal zusammenfassen, wie man die aktuelle Taskwarrior-Version und die aktuelle Taskserver-Version zur Zusammenarbeit bewegen kann. Wie das Ganze gedacht ist, zeigt die Übersicht.

Am Anfang steht das selber Kompilieren der aktuellen Versionen.

Dazu werden neben einem C++ Compiler, cmake und make auch libuuid, gnutls, readline und die entsprechenden Development-Pakete. Die aktuellen Development-Releases von Taskwarrior und Taskserver können von der Homepage heruntergeladen oder via Git geklont werden.

$ git clone git://tasktools.org/task.git task.git
$ cd task.git
$ git checkout 2.3.0

$ cd ..

$ git clone git://tasktools.org/taskd.git taskd.git
$ cd taskd.git
$ git checkout 1.0.0

$ cd ..


Dann übersetzen wir zuerst Taskwarrior:

$ cd task.git
$ cmake .
$ make
$ sudo make install


Wenn alles gut gegangen ist, liefert task diagnostics sehr viel hilfeiches, für uns wichtig ist, dass TLS (Transport Layer Security) eingebaut ist.
$ task diagnostics | grep tls
       Caps: -pthreads +tls
  libgnutls: 3.0.28


Für den Taskserver gehen wir ähnlich vor, aber wir lassen erst Tests laufen, bevor wir installieren:

$ cd taskd.git
$ cmake .
$ make


Jetzt gibt es einen Unterschied, Tests übersetzen und ausführen:

$ cd test
$ make
$ ./run_all


Erst wenn die erfolgreich waren, ist es sinnvoll, den Taskerver zu installieren:
$ cd ..
$ sudo make install


Auch hier liefert taskd diagnostics viel hilfreiches.

Sollte etwas schief gegangen sein, werft einen Blick in die mitgelierferte INSTALL-Datei und im Fall von Taskserver zusätzlich noch in die Datei doc/operation.txt.

Ansonsten gilt wie immer: Fragen? Fragen!

Präsentationsformen ...

Von Zeit zu Zeit bekomme ich das Vergnügen, einen Vortrag zu halten und jedes Mal aufs Neue stellt sich die Frage nach der richtigen Präsentationsform.

Ich halte nichts von den Präsentationsprogrammen der Office-Programme, egal, ob es Powerpoint, Impress oder irgendetwas anderes "integriertes" ist. Ich mag nicht gebremst werden und ich mag es, ohne Mausbenutzung, nur mit der Tastatur zu schreiben.

Wenn das ganze dann noch Open Source ist und möglichst, in einer einzigen Datei daher kommt, bin ich froh. Zwischenzeitlich habe ich einfache Textdateien benutzt. Das Verfahren ist hier im Blog schon beschrieben worden (meine beiden Workshops zu praktischer Administration habe ich so gehalten: Teil 1 und Teil 2 inklusive Videos).

So konnte es nicht weitergehen, daher habe ich mir die folgenden Tools und Möglichkeiten angeschaut:


Alle Verfahren haben spezifische Vor- und Nachteile.

Derzeit arbeite ich PDF-Dateien, die LaTeX Beamer erzeugt, sie enthalten auch Links und sind in meinem Speakerdeck-Account zu finden.

Taskserver (big picture) ...

taskwarrior So, nach der zweiten Beta von Taskwarrior 2.3.0 und Taskserver 1.0.0 ist es einmal an der Zeit, die Ideen hinter der Software zu erklären. Ich werde eine kleine Artikelreihe starten, in der ich auch das Aufsetzen eines eigenen Servers näher beleuchten werde.

Achtung: Wir befinden uns noch im beta-Status und haben keine Erfahrung mit grösseren Setups oder grösseren Umgebungen. Wir empfehlen noch nicht, den Server für produktive Daten einzusetzen.

Ein lokaler Taskwarrior Nutzer (Version 2.3.0 beta2 und folgende) kann sich nur mit einem einzigen Taskserver verbinden. Für weitere Server sind separate Settings (Datenverzeichnisse, Zertifikate, User, ...) nötig. Jeder User kann einer einzigen Organisation angehören, innerhalb dieser Organisation Mitglied mehrerer Gruppen sein (ist noch nicht fertig), Vom Server gibt es ein Zertifikat und den passenden Schlüssel, mit dem der Nutzer sich verbinden kann.

Je nachdem, was User brauchen, werden noch weitere Features nachgerüstet.

Ein Taskserver (Version 1.0.0 beta2 und folgende) kann mehrere Organisationen, Gruppen (in Vorbereitung) und Nutzer hosten.

Um einen User zu einem laufenden Server hinzuzufügen, muss er angelegt und zu einer Organisation hinzugefügt werden. Um sich verbinden zu können, sind die folgenden Informationen und Dateien nötig:
  • Username in einer für Menschen lesbaren Form, zum Beispiel "Dirk Deimeke".
  • Das Passswort ist eine UUID (Unique User ID), so dass auch mehrere User gleichen Namens angelegt werden können.
  • Datei: client.cert.pem zur Identifiation als valider Client.
  • Datei: client.key.pem für die Verschlüsselung des Datentransfers.
  • Um die Verbindung aufzubauen sind noch server:port nötig.


Momentan gibt es nur ein einziges Client-Zertifikat für alle User, um die Verschlüsselung zu ermöglichen. More to come ...

Derzeit gibt es noch ein Problem, das Zertifikat auf Mobiltelefone zu bekommen. Wir arbeiten da an einem Webfrontend, mit dem sich das Telefon verbinden kann und das das generelle Usermanagement übernimmt. Derzeit ist das noch Arbeit auf der Kommandozeile.

Zur Information: Der Server wird später auch 301/302 status Codes erzeugen, so wird es möglich sein, einen User transparent auf einen anderen Server umzuziehen.

Um das mal in "Datenbank-Relationen" aufzulösen:

  • 1:n host:server (auf einem Host können mehrere Serverinstanzen laufen).
  • 1:n server:clients (gegen einen Server können sich viele Klienten verbinden).
  • 1:n server:organisations (ein Server kann mehrere Organisationen verwalten, hier wäre n:m aus Hochverfügbarkeitsgründen prima)
  • 1:n clients:users (das ist noch etwas schwierig, es gibt derzeit nur ein Client-Zertifikat, eventuell wird das mal 1:1 der n:1)
  • 1:n organisations:users (eine Organisation kann mehrere User beherbergen, später kann vielleicht ein User auch in mehreren Organisationen sein (n:m), das geht momentan nur mit verschiedenen Konfigurationsoptionen)
  • Später: 1:n users:groups (e
  • Später: 1:n orgs:groups


Was wir noch nicht wissen, ist, wie viele User ein Server verkraften kann. Wir werten zwar unseren eigenen Server aus, können aber noch keine weiteren Vermutungen anstellen.

Weitere Style Guides ...

Via Twitter habe ich das Mutterprojekt der Google Styleguides ("Style guides for Google-originated open-source projects") gefunden.




Da gibt es also nicht nur den Shell Style Guide, den ich hier erwähnt habe. Es hätte mich auch überrascht, wenn es anders wäre.

sudo bei openSUSE ...

opensuse Standard-Einstellungen muss ich manchmal nicht verstehen.

Um openSUSE kompatibel zu anderen sudo-Installationen zu machen, so dass das User-Passwort für sudo verwendet wird, müssen folgende zwei Einstellungen getroffen werden.

Mit /usr/sbin/usermod -G wheel username oder vigr den User zur Gruppe wheel (den historischen Grund für den Namen wüsste ich gerne, drehen die Leute am Rad?) hinzufügen.

Anschliessend mittels visudo die folgenden beiden Zeilen auskommentieren.
# Defaults targetpw   # ask for the password of the target user i.e. root
# ALL   ALL=(ALL) ALL   # WARNING! Only use this together with 'Defaults targetpw'!

und die die Kommentarzeichen zu Beginn der Zeile
%wheel ALL=(ALL) ALL

löschen.

Nach einer erneuten Anmeldung des User fragt sudo nach dem Userpasswort und nicht mehr nach dem root-Passwort.

Shell Style Guide ...

Bei Google gibt es einen Shell Style Guide, den ich wirklich jedem nur ans Herz legen kann.

Die Regeln sind sinnvoll und helfen, dass Skripte auch eine Woche nachdem sie geschrieben wurden noch verstanden werden können. :-)

Einiges ist sicherlich diskussionswürdig und Geschmackssache, ich würde Perl statt Python für längere Skripte nehmen, aber in Summe ist das Dokument prima.

Solarized und Konsole ...

opensuse Solarized hatte ich hier schon einmal als Thema. Dass die Konsole das als Farbschema gleich mitbringt, finde ich prima. Aber leider scheinen einige Farben nicht so zu sein, wie bei anderen Solarized-Implementationen, die ich kenne (Taskwarrior sah einfach doof aus).

Daher bin ich ganz froh auf GitHub das Projekt konsole-colors-solarized gefunden zu haben. Das löst das "Problem".

Monatlicher Debian Stammtisch in Zürich ...

debian Die folgende Nachricht rauschte gerade in meine Mailbox und ich bin so frei, das hier über das Blog publik zu machen.

Die Mailadressen habe ich herausgenommen.

Das Originalposting findet sich hier.

Wir wollen in Zürich einen regelmässigen Debian-Stammtisch etablieren.

Das erste Treffen findet statt:

Am Dienstag, 2013-Nov-05, ab 19 Uhr (CET)
Im Gloria, Josefstrasse 59, 8005 Zürich

Jeder, der sich für Debian interessiert, ist eingeladen. Eine Anmeldung ist nicht notwendig.

Als regelmässigen Termin visieren wir den ersten Dienstag im Monat an.

E-Mail-Diskussionen zum Stammtisch bitte auf der Debian CH Community Mailingliste, bevorzugt auf Englisch, Deutsch ist aber auch in Ordnung.

Axel und Michael


Dienstag entwickelt sich einmal mehr zu einem echten Stautermin.

Zurück auf den Start ...

opensuse In der Oktober-Sendung von RadioTux hat Leszek von openSUSE erzählt und mich sehr damit angesprochen. Da ich zusätzlich fand, dass es mal Zeit für einen Taptenwechsel ist, habe ich mein Notebook auf openSUSE migriert und bin gerade mittelschwer begeistert.

Es gefällt mir richtig gut und das, obwohl ich KDE gewählt habe :->

Irgendwann vor 100 Jahren startete meine Linux-"Karriere" mit SUSE und jetzt bin ich wieder zurück. Schauen wir mal.

Task Server Beta ...

taskwarrior So, endlich ist es soweit, der neue Task Server hat den beta-Status erreicht.

Zusammen mit dem Task Server ist auch Taskwarrior in einer neuen Beta-Version erschienen, die als einziges neues Feature die Kommunikation mit dem Task Server implementiert hat.

Taskwarrior 2.3.0 Beta 1 (1.2 MB)
Task Server 1.0.0 Beta 1 (120 kB)

Wir würden uns freuen, wenn möglichst viele von Euch an dem Beta-Test teilnehmen. Bitte lest die Dokumentation sorgfältig.

ACHTUNG: Das ist Beta, bitte macht regelmässig Backups von Euren Daten!

Ich werde in den nächsten Tagen mehr dazu schreiben und einen Test-Taskserver anbieten, wer dort gerne einen Account möchte, melde sich bitte bei mir.

Vramsteg 1.0.1 ...

taskwarrior Paul hat gerade Version 1.0.1 von Vramsteg veröffentlicht.

Vramsteg ist ein "commandline progress bar", also ein Fortschrittsbalken für die Kommandozeile. Er ist natürlich hoch konfigurier- und an die eigenen Bedürfnisse anpassbar.



Vramsteg gehört zu den Tasktools, den Hilfsmitteln aus dem Taskwarrior-Universum. Der Tarball ist gerade einmal 12k gross.

Die G4-Schreibmaschine ...

debian Meine bessere Hälfte hat sich entschieden, ihr altes und kleines iBook G4 zu reaktivieren und als "Schreibmaschine" zu nutzen. Die Hardware ist natürlich etwas in die Jahre gekommen und die 800 MHz des Prozessors und die 640 MB (nicht GB!) RAM waren damals viel, heute natürlich nicht mehr.

Das Betriebssystem des Herstellers wird schon sehr lange nicht mehr unterstützt und für die Power-PC-Prozessor-Architektur ist die Auswahl, nun ja, sehr beschränkt.

Genau da kommt eine der wirklich grossen Stärken von Debian zum Tragen. Debian ist eine der wenigen Distributionen, die für wirklich viele Architekturen vorhanden ist (amd64, armel, armhf, i386, ia64, mips, mipsel, powerpc, sparc, s390, s390x).

Die Installation lief nach Erstellung der CD (!), USB-Stick geht nicht, reibungslos. Als Desktopumgebung kommt LXDE zum Einsatz, was man bei der Netzwerk-CD mit dem Kernelparameter expert desktop=lxde vorauswählen kann.

Leider kann die WLAN-Karte kein WPA, das ist der einzige Wehrmutstropfen, alles andere funktioniert perfekt.

sysadmin-utils ...

linux Bei Jochen habe ich das GitHub-Repository sysadmin-util gefunden. Darin enthalten sind einige wirklich interessante Tools.

Neben anderen haben es mir die folgenden besonders angetan:
  • ago: Zeigt in einer menschlich lesbaren Form wie lange die letzte Änderung einer Datei her ist.
  • empty-dir: Gibt zurück, ob ein Verzeichnis leer ist oder nicht.
  • since: Zeigt alle Ausgaben seit dem letzten Lesen einer Datei, sehr hilfreich, um Logs zu verfolgen.
  • timeout: Timeout killt ein Kommando, nach einer bestimmten Laufzeit.
  • with-lock: Startet ein Kommando mit einer Lockdatei und verhindert so, dass es zwei Mal ausgeführt wird.

Natürlich kann man das auch alles selber machen, aber zu verstehen, wie andere das implementieren, erweitert den Horizont.

Einstieg in Linux ...

linux Weil ich danach gefragt wurde:

Es gibt natürlich unfassbar viele Webseiten zu Linux. Hier sind Bücher, die ich empfehlen würde (es gibt noch viel mehr), ich habe bewusst, deutschsprachige Bücher ausgewählt. Unter der ISBN verbirgt sich ein Affiliate-Link.

Einführung in Linux

Linux 2013; Michael Kofler (DIE Linux-Bibel); ISBN 978-3-8273-3208-0

ACHTUNG: "Der Kofler" kommt vermutlich in den nächsten Wochen in einer aktualisierten Auflage bei Galileo Computing.

Für Basiswissen müssen es nicht die aktuellen Exemplare sein.
Linux 2011
Linux 2012

Einstieg in Linux; Steffen Wendzel, Johannes Plötner; ISBN 978-3-8362-1939-6

Linux, Das umfassende Handbuch; Johannes Plötner, Steffen Wendzel; ISBN 978-3-8362-1822-1

Dummies

Lasst Euch bitte vom Titel nicht beeindrucken, aber die Dummies-Reihe ist immer sehr gut:

Linux für Dummies; Richard Blum; ISBN 978-3-527-70649-5

UNIX für Dummies; John R. Levine, Margaret Levine Young; ISBN 978-3-527-70265-7

Befehle

Es ist leider vergriffen, aber wenn Ihr noch eine Kopie ergattern könntt, lohnt es sich. Enthalten sind fast alle wichtigen Manpages und sie sind übersetzt auf Deutsch.

Linux in a Nutshell; Ellen Siever, Aaron Weber, Stephen Figgins, Robert Love, Arnold Robbins & Lars Schulten

Eigenwerbung für Fortgeschrittene

Linux-Server, Das Administrationshandbuch; Dirk Deimeke, Stefan Kania, Charly Kühnast, Stefan Semmelroggen, Daniel van Soest; ISBN 978-3-8362-1879-5