Ja, ich gestehe. Ich bin ein befürworter von systemd. Es mag in der Linux Entwicklerszene sehr kontrovers sein aber als Sysadmin finde ich die Vereinheitlichung der Tools sehr angenehm. Es wird auf jedem System einfach immer gleich bedient. Zudem liefert es schon viele Tools mit.
Die meisten werden systemd wahrscheinlich vor allem durch die Ablöse des SysV Init Systems kennen. Es ist und kann aber noch viel mehr. Hervorheben möchte hier vor allem folgende Services, die meiner Meinung nach noch zu wenig Beachtung erhalten:
timesyncd, networkd und resolved
systemd-timesyncd
Zeitzone setzen: timedatectl set-timezone Europe/Berlin
Mit timesyncd lässt sich die Uhrzeit per ntp syncen. Es wird kein vollwertiger ntp(d) Server mehr benötigt nur um die Zeit synchron zu halten. Konfiguriert wird timesyncd in der folgenden Datei:
nano /etc/systemd/timesyncd.conf [Time] NTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
Danach aktivieren und starten:
systemctl enable systemd-timesyncd systemctl start systemd-timesyncd
Mit timedatectl lässt sich die Konfiguration überprüfen:
root@vps06:/etc/systemd# timedatectl Local time: Fr 2018-01-05 14:36:49 CET Universal time: Fr 2018-01-05 13:36:49 UTC RTC time: Fr 2018-01-05 13:36:49 Time zone: Europe/Berlin (CET, +0100) Network time on: yes NTP synchronized: yes RTC in local TZ: no
systemd-resolved
systemd-resolved hat fast den selben Zweck wie das resolveconf package. Es aktualisiert dynamisch die Datei /etc/resolv.conf. Der Unterschied allerdings ist, dass es nicht gnadenlos die resolv.conf überschreibt, wie es das resolveconf package macht. Es arbeitet hingegen mit systemd-networkd zusammen.
Denn alle in systemd-resolved konfigurierten DNS-Server werden erst NACH dem in systemd-networkd konfigurierten DNS Server eingetragen.
Die Konfiguration von resolved liegt wieder unter /etc/systemd
nano /etc/systemd/resolved.conf [Resolve] DNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
Ist in networkd zusätzlich der DNS Server 192.168.1.1 eingetragen, wird folgende /etc/resolve.conf erstellt:
192.168.1.1 8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844
Jetzt den Service starten
systemctl enable systemd-resolved.service systemctl start systemd-resolved.service
und einen Symlink nach /etc/resolve.conf erstellen
ln -sf /run/systemd/resolve/resolv.conf /etc/resolve.conf
systemd-networkd
Die Konfiguration von networkd wird in den /etc/systemd/network/*.network Dateien gepflegt.
Beispielkonfiguration für eth0:
[Match] # Wildcards möglich für z.B. DHCP (Name=eth*) Name=eth0 [Network] #DHCP=v4 Address=192.168.1.50/24 Gateway=192.168.1.1 DNS=192.168.1.1
Unter Debian kann das natürlich nicht einfach so genutzt werden. Wir haben vorher wahrscheinlich alles in /etc/network/interfaces konfiguriert.
ACHTUNG! Aufpassen, dass man sich hier nicht aussperrt!
ifdown eth0 cp /etc/network/{interfaces,interfaces.bak} cat /dev/null > /etc/network/interfaces update-rc.d networking remove
Und jetzt noch networkd aktivieren.
systemctl enable systemd-networkd systemctl start systemd-networkd
Neben .network Dateien können unter /etc/systemd/network/ noch .netdev und .link Dateien erstellt werden. *.netdev erstellt virtuelle Interfaces, wie bridges oder vlans. *.link Dateien ändern Konfigurationen bestehender Interfaces, wie MAC Adresse oder Interface Namen.
.netdev bridge Beispiel
[NetDev] Name=bridge0 Kind=bridge
In der .network Datei unter [Network] dann noch Bridge=bridge0 eintragen damit der Bridge auch Interfaces zugeordnet werden.
.netdev vlan Beispiel für VLAN ID 99
[NetDev] Name=vlan99 Kind=vlan [VLAN] Id=99
Auch hier muss die passende .network Datei unter [Network] angepasst werden:
VLAN=vlan99
.link Beispiel
[Match] MACAddress=12:34:56:78:9a:bc Type=wlan [Link] Name=wireless0 MTUBytes=1450 MACAddress=cb:a9:87:65:43:21
Das WLAN Interface mit der MAC 12:34:56:78:9a:bc bekommt den Interface Namen wireless0 und die MAC Adresse cb:a9:87:65:43:21.
systemd hat eine umfangreiche man Page Sammlung unter https://www.freedesktop.org/software/systemd/man/. Da es ständig weiter entwickelt wird, kann es sein, dass eure favorisierte Distro noch nicht alle Funktionen hat. Gerade Debian ist da ja gern mal ein bisschen langsamer.
Danke für den Beitrag
jetzt wäre noch ein kleiner 2. Teil schön mit dem anlegen eigener systemd services
Zu eigenen Unit Files hatte ich bisher nichts geschrieben weil es dafür Anleitungen wie Sand am Meer gibt. Was aber viele vergessen, Systemd kann noch viel mehr. Der Beitrag soll drauf hinweisen, dass Systemd noch mehr coole Features hat und wie man sie benutzen kann