From b579dc492875f9785e63031675f062821a9afae0 Mon Sep 17 00:00:00 2001 From: mwiegand Date: Sat, 12 Feb 2022 15:20:00 +0100 Subject: [PATCH] autologin --- bundles/systemd/items.py | 11 ++++++++++- bundles/systemd/metadata.py | 14 +++++++++----- groups/applications/autologin.py | 22 ++++++++++++++++++++++ nodes/home.backups.py | 1 + nodes/home.homematic.py | 1 + nodes/home.openhab.py | 1 + nodes/home.server.py | 1 + nodes/home.stromzaehler.py | 1 + 8 files changed, 46 insertions(+), 6 deletions(-) create mode 100644 groups/applications/autologin.py diff --git a/bundles/systemd/items.py b/bundles/systemd/items.py index e28a2b5..89150f2 100644 --- a/bundles/systemd/items.py +++ b/bundles/systemd/items.py @@ -9,7 +9,7 @@ actions = { } for name, unit in node.metadata.get('systemd/units').items(): - extension = name.split('.')[-1] + extension = name.split('.')[1] if extension in ['netdev', 'network']: path = f'/etc/systemd/network/{name}' @@ -27,6 +27,9 @@ for name, unit in node.metadata.get('systemd/units').items(): } if name in node.metadata.get('systemd/services'): dependencies['triggers'].append(f'svc_systemd:{name}:restart') + else: + raise Exception(f'unknown type {extension}') + files[path] = { 'content': repo.libs.systemd.generate_unitfile(unit), @@ -39,3 +42,9 @@ for name, config in node.metadata.get('systemd/services').items(): 'action:systemd-reload', ], }) + +files['/etc/systemd/logind.conf'] = { + 'content': repo.libs.systemd.generate_unitfile({ + 'Login': node.metadata.get('systemd/logind'), + }), +} diff --git a/bundles/systemd/metadata.py b/bundles/systemd/metadata.py index 617c2cd..a4bd8e9 100644 --- a/bundles/systemd/metadata.py +++ b/bundles/systemd/metadata.py @@ -2,6 +2,7 @@ defaults = { 'systemd': { 'units': {}, 'services': {}, + 'logind': {}, } } @@ -12,19 +13,22 @@ def units(metadata): units = {} for name, config in metadata.get('systemd/units').items(): - extension = name.split('.')[-1] + if '/' in name: + continue - if extension not in ['timer', 'service', 'network', 'netdev', 'mount', 'swap']: - raise Exception(f'unknown extension {extension}') + type = name.split('.')[-1] + + if type not in ['timer', 'service', 'network', 'netdev', 'mount', 'swap']: + raise Exception(f'unknown type {type}') if not config.get('Install/WantedBy'): - if extension == 'service': + if type == 'service': units[name] = { 'Install': { 'WantedBy': {'multi-user.target'}, } } - elif extension == 'timer': + elif type == 'timer': units[name] = { 'Install': { 'WantedBy': {'timers.target'}, diff --git a/groups/applications/autologin.py b/groups/applications/autologin.py new file mode 100644 index 0000000..7aa73dd --- /dev/null +++ b/groups/applications/autologin.py @@ -0,0 +1,22 @@ +{ + 'metadata': { + 'systemd': { + 'units': { + 'getty@tty1.service.d/override.conf': { + 'Service': { + 'ExecStart': [ + '', + '-/usr/sbin/agetty --autologin root --noclear %I $TERM', + ], + }, + }, + }, + 'services': { + 'getty@tty1.service': {}, + }, + 'logind': { + 'NAutoVTs': 1, + }, + }, + }, +} diff --git a/nodes/home.backups.py b/nodes/home.backups.py index a99315e..406582a 100644 --- a/nodes/home.backups.py +++ b/nodes/home.backups.py @@ -4,6 +4,7 @@ 'debian-11', 'backup-server', 'monitored', + 'autologin', ], 'bundles': [ 'smartctl', diff --git a/nodes/home.homematic.py b/nodes/home.homematic.py index 78a42ec..e2221f5 100644 --- a/nodes/home.homematic.py +++ b/nodes/home.homematic.py @@ -2,6 +2,7 @@ 'hostname': '10.0.2.8', 'groups': [ 'raspberrymatic', + 'autologin', ], 'bundles': [ 'hostname', diff --git a/nodes/home.openhab.py b/nodes/home.openhab.py index 62985c5..bac4607 100644 --- a/nodes/home.openhab.py +++ b/nodes/home.openhab.py @@ -6,6 +6,7 @@ 'monitored', 'raspberry-pi', 'webserver', + 'autologin', ], 'bundles': [ 'build-agent', diff --git a/nodes/home.server.py b/nodes/home.server.py index 22557c9..ef29b96 100644 --- a/nodes/home.server.py +++ b/nodes/home.server.py @@ -8,6 +8,7 @@ 'webserver', 'hardware', 'build-server', + 'autologin', ], 'bundles': [ 'apcupsd', diff --git a/nodes/home.stromzaehler.py b/nodes/home.stromzaehler.py index b5d44a8..840bfe0 100644 --- a/nodes/home.stromzaehler.py +++ b/nodes/home.stromzaehler.py @@ -4,6 +4,7 @@ 'debian-11', 'raspberry-pi', 'monitored', + 'autologin', ], 'bundles': [ 'stromzaehler',