+ All Categories
Home > Internet > systemd im Alltag

systemd im Alltag

Date post: 13-Apr-2017
Category:
Upload: b1-systems-gmbh
View: 126 times
Download: 1 times
Share this document with a friend
68
systemd im Alltag 16. April 2016 Bernd Müller Linux/OpenSource Consultant & Trainer B1 Systems GmbH [email protected] B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development
Transcript
Page 1: systemd im Alltag

systemd im Alltag16. April 2016

Bernd MüllerLinux/OpenSource Consultant & Trainer

B1 Systems [email protected]

B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

Page 2: systemd im Alltag

Vorstellung B1 Systems

gegründet 2004primär Linux/Open Source-Themennational & international tätigfast 100 Mitarbeiterunabhängig von Soft- und Hardware-HerstellernLeistungsangebot:

Beratung & ConsultingSupportEntwicklungTrainingBetriebLösungen

dezentrale Strukturen

B1 Systems GmbH systemd im Alltag 2 / 68

Page 3: systemd im Alltag

SchwerpunkteVirtualisierung (XEN, KVM & RHEV)Systemmanagement (Spacewalk, Red Hat Satellite, SUSEManager)Konfigurationsmanagement (Puppet & Chef)Monitoring (Nagios & Icinga)IaaS Cloud (Native OpenStack & SUSE Cloud & Red HatOpenStack Platform)Hochverfügbarkeit (Pacemaker)Shared Storage (GPFS, OCFS2, DRBD & CEPH)Dateiaustausch (ownCloud)Paketierung (Open Build Service)Administratoren oder Entwickler zur Unterstützung des Teamsvor Ort

B1 Systems GmbH systemd im Alltag 3 / 68

Page 4: systemd im Alltag

Vorstellung Bernd Müller

ausgebildeter Fachinformatiker-SystemintegrationTeil der B1-Crew seit 03/2009Linux/Unix Consultant und TrainerVortrag auf der LIT 2010 über DatenverschlüsselungVortragslink https://www.luga.de/Angebote/Vortraege/

Verschluesselung_LIT_2010

Vortrag auf der LIT 2014 über ownCloudVortragslink https:

//www.luga.de/Angebote/Vortraege/ownCloud_II_LIT_2014

B1 Systems GmbH systemd im Alltag 4 / 68

Page 5: systemd im Alltag

Übersicht

B1 Systems GmbH systemd im Alltag 5 / 68

Page 6: systemd im Alltag

Übersicht

old and well-hungnew hotness - Was ist systemd?systemd InformationenSysVinit vs systemd

RunlevelPower ManagementService ManagementHostnameJournal vs Logging

B1 Systems GmbH systemd im Alltag 6 / 68

Page 7: systemd im Alltag

Übersicht

systemdOn demandAutomountRemoteAnalyseNetzwerkTimer

Links

B1 Systems GmbH systemd im Alltag 7 / 68

Page 8: systemd im Alltag

old and well-hung

B1 Systems GmbH systemd im Alltag 8 / 68

Page 9: systemd im Alltag

old and well-hung

SysVinit

Upstart

OpenRC

...

B1 Systems GmbH systemd im Alltag 9 / 68

Page 10: systemd im Alltag

new hotness - Was ist systemd?

B1 Systems GmbH systemd im Alltag 10 / 68

Page 11: systemd im Alltag

Was ist systemd?

System und Service Manager für Linuxerstmals erschienen im April 2010kompatibel mit SysV und LSB Init SkriptenParallelisierungsfähig unter Verwendung von Sockets und D-Bus(Sockets halten Verbindung mit Programmen bei abgestürztemDienst)on-demand Starten von DaemonsKontrolle der Prozesse unter Verwendung von Linux controlgroupsVerwalten von Mount und Automount PointsRemote-Verwaltung via SSH

B1 Systems GmbH systemd im Alltag 11 / 68

Page 12: systemd im Alltag

Was ist systemd?

Servicekonfiguration unter /usr/lib/systemd/system/beim bootfest machen wird ein Link der Servicekonfigurationnach /etc/systemd/system/target.wants gesetztselber geschriebene Servicekonfigurationen werden unter/etc/systemd/system/ gespeichertNetzwerkkonfiguration unter /etc/systemd/network/

B1 Systems GmbH systemd im Alltag 12 / 68

Page 13: systemd im Alltag

systemd Informationen

B1 Systems GmbH systemd im Alltag 13 / 68

Page 14: systemd im Alltag

systemd Informationen

DBus /etc/dbus-1/system.d/ & /usr/share/dbus-1/

PAM /etc/pam.d/systemd-user

sysctl /etc/sysctl.d/

systemd /etc/systemd/

systemd generische Konfigurationen /usr/lib/systemd/system/

tmpfiles /etc/tmpfiles.d/, /usr/lib/tmpfiles.d und /run/tmpfiles.d

Kernel Install /usr/lib/kernel/install.d/

Load Modules /usr/lib/modules-load.d/

Udev Rules /usr/lib/udev/rules.d/

DOC /usr/share/doc/packages/systemd

Polkit/PolicyKit /usr/share/polkit-1/actions/

B1 Systems GmbH systemd im Alltag 14 / 68

Page 15: systemd im Alltag

systemd Units

systemd erkennt die Units an der Endung.service Hintergrunddienste

.mount Dateisysteme

.automount Dateisysteme bei Zugriff

.path überwacht via Inotify Dateien und Verzeichnisse und startet bei Zugriffdiese Unit

.socket Startet einen oder mehrere Sockets, sobald Zugriff auf einen Socket wirdder dazugehörige Service gestartet, ähnlich inetd

.target Aufruf anderer Units, vergleichbar mit den Runlevel

.timer arbeitet ähnlich Cron und startet .service zu bestimmten Zeiten

.device Von udev erstellte Pseudo-Units für Abhängigkeiten

.nspawn zur Konfiguration von nspawns

B1 Systems GmbH systemd im Alltag 15 / 68

Page 16: systemd im Alltag

systemd Units

systemd erkennt die Units an der Endung.network Netzwerkkonfiguration

.netdev Konfiguration virtueller Netzwerkinterfaces

.link Link-Konfiguration in /etc/systemd/network

.negative|positive Konfiguration für DNSSEC (dnssec-trust-anchors.d (5))

B1 Systems GmbH systemd im Alltag 16 / 68

Page 17: systemd im Alltag

SysVinit vs systemd(229)

B1 Systems GmbH systemd im Alltag 17 / 68

Page 18: systemd im Alltag

systemd - Runlevel

B1 Systems GmbH systemd im Alltag 18 / 68

Page 19: systemd im Alltag

RunlevelRunlevel

systemd SysVinit

Derzeitiges Runlevel systemctl get-default runlevel

In Runlevel wechseln systemctl isolategraphical.target

init/telinit 5

Default Runlevel einstellen systemctl set-defaultgraphical.target

vim /etc/inittab

System halt poweroff.target 0

Single user mode rescue.target 1,s,single

Multi user multi-user.target 2

Multi user mit Netzwerk multi-user.target 3

Experimental multi-user.target 4

Multi user, Netzwerk, graphical graphical.target 5

Reboot reboot.target 6

Emergency emergency.target emergency

B1 Systems GmbH systemd im Alltag 19 / 68

Page 20: systemd im Alltag

systemd - Power Management

B1 Systems GmbH systemd im Alltag 20 / 68

Page 21: systemd im Alltag

Power Management

Power Management

systemd SysVinit

Herunterfahren systemctl poweroff shutdown -h now/halt/init 0

Neustarten systemctl reboot shutdown -r now/reboot/init 6

Suspend/Hybernate systemctl suspend/hibernate pm-suspend/pm-hibernate

B1 Systems GmbH systemd im Alltag 21 / 68

Page 22: systemd im Alltag

systemd - Service Management

B1 Systems GmbH systemd im Alltag 22 / 68

Page 23: systemd im Alltag

Service Management

Service Management

systemd SysVinit

Dienst starten systemctl starthttpd(.service)

/etc/init.d/httpd startservice httpd start

Dienst stoppen systemctl stophttpd(.service)

/etc/init.d/httpd stopservice httpd stop

Dienst neustarten systemctl restarthttpd(.service)

/etc/init.d/httpd restartservice httpd restart

Dienst neuladen systemctl reloadhttpd(.service)

/etc/init.d/httpd reloadservice httpd reload

Dienst Status systemctl statushttpd(.service)

/etc/init.d/httpd statusservice httpd status

Dienst automatisch starten systemctl enablehttpd(.service)

chkconfig httpd on

Dienst nicht automatisch star-ten

systemctl disablehttpd(.service)

chkconfig httpd off

B1 Systems GmbH systemd im Alltag 23 / 68

Page 24: systemd im Alltag

Service Management

Service Management

systemd SysVinit

Status der automatisch starten-den Dienste

systemctl is-enabledhttpd(.service)

chkconfig -l httpd

Status der installierten Dienste systemctl list-unit-files chkconfig -l

B1 Systems GmbH systemd im Alltag 24 / 68

Page 25: systemd im Alltag

Service Management

Service Management

systemd SysVinit

Alle fehlgeschlagenen Dienstelisten

systemctl --(state=)failed for Schleife über alle Dienst undgrep

Reset fehlgeschlagene Dienste systemctl reset-failedPATTERN

for Schleife über alle Dienste,grep, restart

Dienste maskieren systemctl mask (--runtime)(--now) httpd(.service)

Dienste demaskieren systemctl unmaskhttpd(.service)

Dienstekonfiguration neu einle-sen

systemctl daemon-reload chkconfig httpd --add

Hilfe anzeigen systemctl helphttpd(.service)/PID

Abhängigkeiten anzeigen systemctl list-dependencieshttpd(.service)

B1 Systems GmbH systemd im Alltag 25 / 68

Page 26: systemd im Alltag

systemd - Hostname

B1 Systems GmbH systemd im Alltag 26 / 68

Page 27: systemd im Alltag

Hostname

Hostnamesystemd SysVinit

Derzeitiger Hostname hostnamectl (status) hostname (-f)

Hostname setzen hostnamectl set-hostnamevm.lit2016.aux

hostname vm.lit2016.aux

„Pretty“ Hostname hostnamectl set-hostname–pretty „VM für den LIT 2016“

„Static“ Hostname hostnamectl set-hostname–static vm

„Transient“ Hostname hostnamectl set-hostname–transient vm-net

B1 Systems GmbH systemd im Alltag 27 / 68

Page 28: systemd im Alltag

Hostname

„Pretty“beschreibt einen frei wählbaren Namen mit sehr wenigenRestriktionen und wird unter /etc/machine-info gespeichert.

„Static“ist derjenige, welche beim Starten des Computers dem Kernelübergeben wird und wird unter /etc/hostname abgelegt.

„Transient“wird als Fallback aus der Netzwerkkonfiguration bezogen.

Die beiden letzten Namen haben die Restriktion, welche für Internet Domänen gilt.

B1 Systems GmbH systemd im Alltag 28 / 68

Page 29: systemd im Alltag

Hostname

hostnamectl set-icon-name computer-laptopSetzt den System Icon Namen, welcher von grafischenAnwendungen ausgewertet werden kann zum Anzeigen deseigenen Systems. Icon Naming Specification

hostnamectl set-chassis laptopFolgende Chassis Typen gibt es desktop, laptop, server, tablet,handset, watch, embedded, vm und container.

hostnamectl set-deployment productionAls Deployment Umgebungen können folgende Werte gesetztwerden, development, integration, staging und production.

hostnamectl set-location „World, Europe, Germany, Augsburg,Friedbergerstr. 2, Raum C„

Hierbei darf alles eingegeben werden und beschreibt denStandort des Betriebssystems.

B1 Systems GmbH systemd im Alltag 29 / 68

Page 30: systemd im Alltag

systemd - Journal vs Logging

B1 Systems GmbH systemd im Alltag 30 / 68

Page 31: systemd im Alltag

Journal vs Logging

Journal vs Logging

systemd SysVinit

Alle Logeinträge in Echtzeit ver-folgen

journalctl -f tail -f /var/log/*/var/log/httpd/*

Logeinträge zu einem bestimm-ten Dienst verfolgen

journalctl -f -u httpd tail -f /var/log/httpd/* tail-f /var/log/messages | grephttpd

Alle Logeinträge seit dem letz-ten Systemstart

journalctl -b grep nach jünger als uptime

Alle Logeinträge eines Dienstesseit dem letzten Systemstart

journalctl -b -u httpd grep nach jünger als uptime unddem Dienst

B1 Systems GmbH systemd im Alltag 31 / 68

Page 32: systemd im Alltag

systemd

B1 Systems GmbH systemd im Alltag 32 / 68

Page 33: systemd im Alltag

systemd - On demand

B1 Systems GmbH systemd im Alltag 33 / 68

Page 34: systemd im Alltag

systemd - On demand

systemd Socket Activation ist vergleichbar mit inetd/xinetd undstartet bei Bedarf einen Dienst. Dies wird ermöglicht, indem für einenDienst ein Socket geöffnet wird, der den eigentlichen Dienst bei einerAnfrage startet. Dazu muss der Socket gestartet werden

Socket Unitsystemctl start org.cups.cupsd.socketsystemctl enable org.cups.cupsd.socket

B1 Systems GmbH systemd im Alltag 34 / 68

Page 35: systemd im Alltag

systemd - On demand

Socket Unit/usr/lib/systemd/system/org.cups.cupsd.socket[Unit]Description=CUPS Scheduler[Socket]ListenStream=/run/cups/cups.sock[Install]WantedBy=sockets.target

B1 Systems GmbH systemd im Alltag 35 / 68

Page 36: systemd im Alltag

systemd - On demand

Service Unit/usr/lib/systemd/system/org.cups.cupsd.service[Unit]Description=CUPS SchedulerDocumentation=man:cupsd(8)[Service]ExecStart=/usr/bin/cupsd -lType=simple[Install]Also=org.cups.cupsd.socket org.cups.cupsd.pathWantedBy=printer.target

B1 Systems GmbH systemd im Alltag 36 / 68

Page 37: systemd im Alltag

systemd - Automount

B1 Systems GmbH systemd im Alltag 37 / 68

Page 38: systemd im Alltag

systemd - Automount

Das automatische Einbinden kann mit systemd auf zwei Artengemacht werden. Da systemd die /etc/fstab einliest und MountUnits erzeugt, kann dies über die Mountoptionen eingerichtet werden.

/etc/fstabUUID=1865c6d8-aa95-4789-b7a4-e9ad38b2377c /mnt/ssd ext4 x-systemd.automount,noauto 0 1

Die automatisch erzeugten Mount Units sind unter/run/systemd/generator zu finden.

B1 Systems GmbH systemd im Alltag 38 / 68

Page 39: systemd im Alltag

systemd - Automount

Die zweite Art ist über das Anlegen eines Mount und einesAutomount Units möglich. Dazu wird der Eintrag in der /etc/fstabwie folgt verarbeitet

/etc/fstab#UUID=1865c6d8-aa95-4789-b7a4-e9ad38b2377c /mnt/ssd ext4 defaults 0 1

B1 Systems GmbH systemd im Alltag 39 / 68

Page 40: systemd im Alltag

systemd - Automount

Mount Unit/etc/systemd/system/mnt-ssd.mount[Unit]Description=Mount for external SSD[Mount]What=/dev/disk/by-uuid/1865c6d8-aa95-4789-b7a4-e9ad38b2377cWhere=/mnt/ssdType=ext4Options=defaults[Install]WantedBy=multi-user.target

B1 Systems GmbH systemd im Alltag 40 / 68

Page 41: systemd im Alltag

systemd - Automount

Automount Unitcp /etc/systemd/system/mnt-ssd.mount /etc/systemd/system/mnt-ssd.automount

B1 Systems GmbH systemd im Alltag 41 / 68

Page 42: systemd im Alltag

systemd - Automount

Automount Unit[Unit]Description=Automount for external SSD[Automount]Where=/mnt/ssdTimeoutIdleSec=60[Install]WantedBy=multi-user.target

B1 Systems GmbH systemd im Alltag 42 / 68

Page 43: systemd im Alltag

systemd - Automount

Aktiviere Automount Unitsystemctl daemon-reloadsystemctl enable mnt-ssd.automountsystemctl start mnt-ssd.automount

B1 Systems GmbH systemd im Alltag 43 / 68

Page 44: systemd im Alltag

systemd - Automount

Prüfe Automount Unitmountlsblklsmountlsblk

B1 Systems GmbH systemd im Alltag 44 / 68

Page 45: systemd im Alltag

systemd - Remote

B1 Systems GmbH systemd im Alltag 45 / 68

Page 46: systemd im Alltag

systemd - Remote

Remote über das Netzwerksystemctl -H hostname (status)

systemctl -H hostname get-default

systemctl -H hostname poweroff

hostnamectl -H hostname (Machine/Boot ID Bug)

B1 Systems GmbH systemd im Alltag 46 / 68

Page 47: systemd im Alltag

systemd - Remote

Remote lokale Containersystemctl -M containername (status)

systemctl -M containername get-default

hostnamectl -M containername

journalctl -M containername -f

B1 Systems GmbH systemd im Alltag 47 / 68

Page 48: systemd im Alltag

systemd - Analyse

B1 Systems GmbH systemd im Alltag 48 / 68

Page 49: systemd im Alltag

systemd - Analyse

systemd-analyze (time): zeigt die Kernel und Userspace Zeitdes Systemstarts ansystemd-analyze blame: zeit alle Dienste und deren Startzeitansystemd-analyze critical-chain: zeigt in einerBaumstruktur die zeitkritischen Einheiten einer Reihesystemd-analyze plot > /dev/shm/local.svg: erstellt eineSVG Grafik des Systemstartssystemd-analyze plot -H 192.168.122.184 >/dev/shm/remote.svg: erstellt die SVG Grafik einesRemotesystems

B1 Systems GmbH systemd im Alltag 49 / 68

Page 50: systemd im Alltag

systemd - Analyse

folgenden Eintrag dem Kernel übergebeninit=/usr/lib/systemd/systemd-bootchart und es werdenfolgende Daten gesammelt

CPU LastHDD IO LastRAM AuslastungInformationen zu den einzelnen Prozessen

Konfigurationsdatei /etc/systemd/bootchart.conf

B1 Systems GmbH systemd im Alltag 50 / 68

Page 51: systemd im Alltag

systemd - Netzwerk

B1 Systems GmbH systemd im Alltag 51 / 68

Page 52: systemd im Alltag

systemd - Netzwerk

Die Netzwerkfunktionalität in systemd wird über systemd-networkdund systemd-resolved gestartet. Folgender Link muss angelegtwerden:

resolv.confln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

systemd-resolved kann über zwei Wege konfiguriert werden.Entweder global über /etc/systemd/resolved.conf oder direkt inder Netzwerkkonfiguration /etc/systemd/network/*.network.

B1 Systems GmbH systemd im Alltag 52 / 68

Page 53: systemd im Alltag

systemd - Netzwerk

DHCP/etc/systemd/network/enp1s0.network[Match]Name=enp1s0[Network]DHCP=yes

B1 Systems GmbH systemd im Alltag 53 / 68

Page 54: systemd im Alltag

systemd - Netzwerk

Statische Konfiguration/etc/systemd/network/enp1s0.network[Match]Name=enp1s0[Network]Address=192.168.122.184/24Gateway=192.168.122.1DNS=192.168.122.1Domains=aux[Link]MTUBytes=1500MACAddress=XX:XX:XX:XX:XX:XX

B1 Systems GmbH systemd im Alltag 54 / 68

Page 55: systemd im Alltag

systemd - Netzwerk

Bond Kernel/etc/modprobe.d/bonding.confoptions bonding mode=802.3ad miimon=100

B1 Systems GmbH systemd im Alltag 55 / 68

Page 56: systemd im Alltag

systemd - Netzwerk

Bond NICs/etc/systemd/network/10-create-bond0.network[Match]Name=eno*/eno1 enp1s0[Network]Bond=bond0

B1 Systems GmbH systemd im Alltag 56 / 68

Page 57: systemd im Alltag

systemd - Netzwerk

Bond virtuelles Netzwerkinterface/etc/systemd/network/20-setup-bond0.netdev[NetDev]Name=bond0Kind=bond[Bond]Mode=802.3adLACPTransmitRate=fastMIIMonitorSec=1sUpDelaySec=2sDownDelaySec=8s

B1 Systems GmbH systemd im Alltag 57 / 68

Page 58: systemd im Alltag

systemd - Netzwerk

Bond Netzwerkkonfiguration/etc/systemd/network/30-IP-bond0.network[Match]Name=bond0[Network]Address=192.168.122.2/24Gateway=192.168.122.1DNS=192.168.122.1Domains=lit2016.aux

B1 Systems GmbH systemd im Alltag 58 / 68

Page 59: systemd im Alltag

systemd - Timer

B1 Systems GmbH systemd im Alltag 59 / 68

Page 60: systemd im Alltag

systemd - Timer

Die systemd Funktionalität Timer ist vergleichbar mit Cron und wirdam Beispiel von logrotate erklärt.

B1 Systems GmbH systemd im Alltag 60 / 68

Page 61: systemd im Alltag

systemd - Timer

Service Unit/usr/lib/systemd/system/logrotate.service[Unit]Description=Rotate log files[Service]Type=oneshotExecStart=/usr/bin/logrotate /etc/logrotate.confNice=19IOSchedulingClass=best-effortIOSchedulingPriority=7

B1 Systems GmbH systemd im Alltag 61 / 68

Page 62: systemd im Alltag

systemd - Timer

Timer Unit/usr/lib/systemd/system/logrotate.timer[Unit]Description=Daily rotation of log files[Timer]OnCalendar=dailyAccuracySec=12hPersistent=true

B1 Systems GmbH systemd im Alltag 62 / 68

Page 63: systemd im Alltag

systemd - Timer

Aktiviere Timer Unitsystemctl start logrotate.timersystemctl enable logrotate.timer

B1 Systems GmbH systemd im Alltag 63 / 68

Page 64: systemd im Alltag

systemd - Timer

systemctl list-timers --allNEXT LEFT LAST PASSED UNIT ACTIVATESSun 2016-04-10 00:00:00 CEST 1h 3min left Sat 2016-04-09 13:20:00 CEST 9h ago logrotate.timer logrotate.service

B1 Systems GmbH systemd im Alltag 64 / 68

Page 65: systemd im Alltag

Linksammlung

offizielle systemd Webseitehttps://www.freedesktop.org/wiki/Software/systemd/

Lennart Poetterings Blog über systemdhttp:

//0pointer.de/blog/projects/systemd-for-admins-1.html

Chaos Radio Express (CRE) 209 Das Linux System Podcast mitLennart Poettering

http://cre.fm/cre209-das-linux-system

Icon Naming Specificationhttp://standards.freedesktop.org/icon-naming-spec/

icon-naming-spec-latest.html

B1 Systems GmbH systemd im Alltag 65 / 68

Page 66: systemd im Alltag

Linksammlung

802.3ad - LACPhttp://ieeexplore.ieee.org/servlet/opac?punumber=6867

Vortrag auf der LIT 2010 über Datenverschlüsselunghttps://www.luga.de/Angebote/Vortraege/

Verschluesselung_LIT_2010

Vortrag auf der LIT 2014 über ownCloudhttps:

//www.luga.de/Angebote/Vortraege/ownCloud_II_LIT_2014

B1 Systems GmbH systemd im Alltag 66 / 68

Page 67: systemd im Alltag

Fragen?

B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

Page 68: systemd im Alltag

Vielen Dank für Ihre Aufmerksamkeit!Bei weiteren Fragen wenden Sie sich bitte an [email protected]

oder +49 (0)8457 - 931096

B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development


Recommended