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:
[shell]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[/shell]
Danach aktivieren und starten:
[shell]systemctl enable systemd-timesyncd
systemctl start systemd-timesyncd[/shell]
Mit timedatectl lässt sich die Konfiguration überprüfen:
[shell]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[/shell]
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
[shell]nano /etc/systemd/resolved.conf
[Resolve]
DNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844[/shell]
Ist in networkd zusätzlich der DNS Server 192.168.1.1 eingetragen, wird folgende /etc/resolve.conf erstellt:
[shell]192.168.1.1
8.8.8.8
8.8.4.4
2001:4860:4860::8888
2001:4860:4860::8844[/shell]
Jetzt den Service starten
[shell]systemctl enable systemd-resolved.service
systemctl start systemd-resolved.service[/shell]
und einen Symlink nach /etc/resolve.conf erstellen
[shell]ln -sf /run/systemd/resolve/resolv.conf /etc/resolve.conf[/shell]
systemd-networkd
Die Konfiguration von networkd wird in den /etc/systemd/network/*.network Dateien gepflegt.
Beispielkonfiguration für eth0:
[shell][Match]
# Wildcards möglich für z.B. DHCP (Name=eth*)
Name=eth0
Address=192.168.1.50/24
Gateway=192.168.1.1
DNS=192.168.1.1[/shell] 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!
[shell]ifdown eth0
cp /etc/network/{interfaces,interfaces.bak}
cat /dev/null > /etc/network/interfaces
update-rc.d networking remove[/shell] Und jetzt noch networkd aktivieren.
[shell]systemctl enable systemd-networkd
systemctl start systemd-networkd[/shell]
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
[shell][NetDev] Name=bridge0Kind=bridge[/shell] 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
[shell][NetDev] Name=vlan99Kind=vlan [VLAN] Id=99[/shell] Auch hier muss die passende .network Datei unter [Network] angepasst werden:
VLAN=vlan99
.link Beispiel
[shell][Match] MACAddress=12:34:56:78:9a:bcType=wlan [Link] Name=wireless0
MTUBytes=1450
MACAddress=cb:a9:87:65:43:21[/shell] 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