diff --git a/bundles/openssh/items.py b/bundles/openssh/items.py index 0d3bf6f..4760d87 100644 --- a/bundles/openssh/items.py +++ b/bundles/openssh/items.py @@ -26,22 +26,29 @@ files = { }, } +if node.has_bundle('pacman'): + package = 'pkg_pacman:openssh' + service = 'sshd' +else: + package = 'pkg_apt:openssh-server' + service = 'ssh' + actions = { 'sshd_check_config': { 'command': 'sshd -T -C user=root -C host=localhost -C addr=localhost', 'triggered': True, 'triggers': { - 'svc_systemd:ssh:restart', + 'svc_systemd:{}:restart'.format(service), }, }, } svc_systemd = { - 'ssh': { + service: { 'needs': { - 'pkg_apt:openssh-server', 'file:/etc/systemd/system/ssh.service.d/bundlewrap.conf', 'file:/etc/ssh/sshd_config', + package, }, }, } diff --git a/bundles/openssh/metadata.py b/bundles/openssh/metadata.py index f4ebe16..d3e805c 100644 --- a/bundles/openssh/metadata.py +++ b/bundles/openssh/metadata.py @@ -6,4 +6,9 @@ defaults = { 'openssh-sftp-server': {}, }, }, + 'pacman': { + 'packages': { + 'openssh': {}, + }, + }, } diff --git a/bundles/pacman/items.py b/bundles/pacman/items.py new file mode 100644 index 0000000..0e6f5e6 --- /dev/null +++ b/bundles/pacman/items.py @@ -0,0 +1,19 @@ +assert node.os == 'arch' + +# This is more targeted to GUI systems. This is intentional. + +pkg_pacman = { + 'fish': {}, + 'fwupd': {}, + 'dialog': {}, + 'linux': {}, + 'netctl': {}, + 'rfkill': {}, + 'tmux': {}, + 'vim': {}, + 'wpa_supplicant': {}, + 'wpa_actiond': {}, +} + +for pkg, config in node.metadata.get('pacman', {}).get('packages', {}).items(): + pkg_pacman[pkg] = config diff --git a/bundles/sudo/metadata.py b/bundles/sudo/metadata.py new file mode 100644 index 0000000..82b007d --- /dev/null +++ b/bundles/sudo/metadata.py @@ -0,0 +1,12 @@ +defaults = { + 'apt': { + 'packages': { + 'sudo': {}, + }, + }, + 'pacman': { + 'packages': { + 'sudo': {}, + }, + }, +}