datentraeger

geistige Umweltverschmutzung

taskwarrior server (taskd)

May 1, 2018 cli Debian/GNU Linux Groupware

Seit nun doch einiger Zeit setze ich den Taskwarrior ein. Bisher jedoch nur im “lokalen” Modus, also ohne die Daten zu synchronisieren. Das ganze hat mir aber doch keine Ruhe gelassen und ich hab mir mal einen Taskserver (taskd) montiert.

Initiales

Von bestehenden Daten macht man bestenfalls eine Sicherung

cd ~/.task
tar czf task-backup-$(date +'%Y%m%d').tar.gz *
mv task-backup*.tar.gz ~/Documents (als Beispiel)

Setup Server

Unter Debian montiert man einfach das taskd-Package.

Konfiguration

Zertfikate erstellen

cd /usr/share/taskd/pki/

Hier editiert man als erstes das vars-File und passt es nach Gusto an

BITS=4096
EXPIRATION_DAYS=365
ORGANIZATION="foo.li systeme + software"
CN=mail.foo.li
COUNTRY=LI
STATE="Oberland"
LOCALITY="Balzers"

Ist dies erledigt, können die Zertfikate erstellt werden

./generate.ca
./generate.server
./generate.crl

Nun passen wir noch die Rechte der generierten Files an

chown Debian-taskd.Debian-taskd ca.cert.pem ca.key.pem server.cert.pem server.crl.pem server.key.pem
chmod 400 ca.cert.pem ca.key.pem server.cert.pem server.crl.pem server.key.pem

Daemon einrichten

export TASKDATA=/var/lib/taskd
cd $TASKDATA

Nun verlinken wir die erstellten Zertifikate hierher

ln -s /usr/share/taskd/pki/ca.cert.pem .
ln -s /usr/share/taskd/pki/server.cert.pem .
ln -s /usr/share/taskd/pki/server.crl.pem .
ln -s /usr/share/taskd/pki/server.key.pem .

Und jetzt können wir das ganze initialisieren

taskd init --data $TASKDATA

und einige Configwerte anpassen (ich bevorzuge ein normales editieren des config-files)

taskd config --data $TASKDATA --force server 10.1.1.1:53589 (Interface, wo taskd laufen soll)
taskd config --data $TASKDATA --force ca.cert $TASKDDATA/ca.cert.pem
taskd config --data $TASKDATA --force server.cert $TASKDDATA/server.cert.pem
taskd config --data $TASKDATA --force server.crl $TASKDDATA/server.crl.pem
taskd config --data $TASKDATA --force server.key $TASKDDATA/server.key.pem

im Systemd-Unit ist (so wie ich es verstehe) das Logging by default deaktiviert. Möchte man das haben, was bei der Fehlersuche sicher nicht schlecht ist, entfernt man einfach den Suffix “–log=-” aus dem taskd.service bei ExecStart. Nun wird nach /tmp/taskd.log geloggt.

Jetzt noch den Service starten und evtl. das Log checken 😉

systemctl enable taskd
systemctl start taskd

Client Configuration

Organisation erstellen

Man kann mehrere Organisationen mit entsprechenden Nutzern erstellen. Brauche ich zwar nicht, bin aber nicht 100%ig sicher, ob das ein must ist, also mach ich es. Generell ist es eigentlich der im Manual beschriebene Vorgang hier…

$ task add org foo --data /var/lib/taskd/
Created organization 'foo'

User und Zertifikate erstellen

Nun erstellen wir einen Benutzer

$ taskd add user 'foo' 'Peter Beck' --data /var/lib/taskd
New user key: cf31f287-ee9e-43a8-843e-e8bbd5de4294
Created user 'Peter Beck' for organization 'foo'

Mittels generate.client können nun die Zertifikate für den User auf dem Server erzeugt werden.

cd /usr/share/taskd/pki
./generate-client NAME

Hiermit wird NAME.cert.pem und NAME.key.pem angelegt. Diese beiden Files und das CA File müssen nun zum Client übertragen und unter ~/.task abgelegt werden.

tar czf client-certs.tar.gz NAME.* ca.cert.pem

Taskwarrior/Client einrichten

Jetzt kann man endlich taskwarrior am Client einrichten.

task config taskd.certificate -- ~/.task/NAME.cert.pem
task config taskd.key -- ~/.task/NAME.key.pem
task config taskd.server -- mail.foo.li:53589
task config taskd.credentials -- foo/Peter Beck/cf31f287-ee9e-43a8-843e-e8bbd5de4294

Auch hier: das ganze kann manuell im .taskrc eingetragen werden, jedoch muss beachtet werden, dass die Pfade escapt sind:

taskd.certificate=\/home\/peter\/.task\/NAME.cert.pem                              
taskd.key=\/home\/peter\/.task\/NAME.key.pem
taskd.ca=\/home\/peter\/.task\/ca.cert.pem
taskd.server=mail.foo.li:53589
taskd.credentials=foo\/Peter Beck\/cf31f287-ee9e-43a8-843e-e8bbd5de4294

Wenn man nicht ständig manuell den sync anschmeissen will (geht eh vergessen..) ist ein kleiner cronjob alle paar Minuten das richtige Mittel zum automatischen Sync.

Debugging

Generell kann ich sagen, das ganze läuft reibungslos. Jedoch hatte ich zu Beginn ein kleines Problem:

task sync init
Please confirm that you wish to upload all your pending tasks to the Taskserver (yes/no) yes
Syncing with mail.foo.li:53589

Sync failed.  Either your credentials are incorrect, or your account doesn't exist on the Taskserver.

Die Lösung war banal: Ich habe die Organisation / den User unter root angelegt. Die Directories gehörten dann natürlich root anstatt dem taskd-User, folglich konnte es nicht gelesen werden. Lösung: Rechte korrigieren 😉

$ chown -R Debian-taskd.Debian-taskd /var/lib/taskd/orgs/
task sync init
Please confirm that you wish to upload all your pending tasks to the Taskserver (yes/no) yes
Syncing with mail.foo.li:53589

Sync successful.  695 changes uploaded.

Bei der Fehlersuche ist sonst die taskd Troubleshooting Site recht hilfreich.

Generell sieht man im Log schnell, was nicht passt. Ein ‘taskd diagnostics’ kann auch wertvolle Infos liefern.

cligroupwarepim

buku

vim: Files verschlüsseln

2 thoughts on “taskwarrior server (taskd)”
  1. Peter V. Beck, I.
    May 1, 2018 at 9:53 pm

    taskwarrior server (taskd) https://blog.datentraeger.li/?p=1494

  2. Pingback: taskwarrior – datentraeger

Comments are closed.

Search
Posts
  • tt-rss update
  • freerdp ERRCONNECT_TLS_CONNECT_FAILED
  • Windose – kein Internet
  • Rechner ohne IP
  • Goodbye Nvidia
Archives
Categories
Tags
3D-Printing Android Apple Arch BBOS/QNX cli Container Database Debian/GNU Linux Docker foo.li FSFE fvwm git Gnome Gnusocial Groupware irc IT Java LaTeX lvm Mail Mobile Movies Multimedia Music Nonsense Office Packaging PHP Puppet Redmine SQL Think-About Uncategorized Vaping vim Virtualisierung Web Win WTF www-links X11 XMPP
Meta
  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
Blogroll
  • Datentraeger Pics
  • foo.li systeme + software
  • GnuSocial.li
Proudly powered by WordPress | Theme: Doo by ThemeVS.