make some bundles arch-compatible, more default packages for arch
This commit is contained in:
parent
c136c33a58
commit
5a182fadef
12 changed files with 170 additions and 35 deletions
|
@ -115,7 +115,16 @@ pkg_apt = {
|
||||||
'nmap': {},
|
'nmap': {},
|
||||||
'python3': {},
|
'python3': {},
|
||||||
'python3-dev': {},
|
'python3-dev': {},
|
||||||
'python3-pip': {},
|
'python3-setuptools': {
|
||||||
|
'needed_by': {
|
||||||
|
'pkg_pip:',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'python3-pip': {
|
||||||
|
'needed_by': {
|
||||||
|
'pkg_pip:',
|
||||||
|
},
|
||||||
|
},
|
||||||
'python3-virtualenv': {},
|
'python3-virtualenv': {},
|
||||||
'rsync': {},
|
'rsync': {},
|
||||||
'tar': {},
|
'tar': {},
|
||||||
|
|
|
@ -1,5 +1,13 @@
|
||||||
from bundlewrap.exceptions import BundleError
|
from bundlewrap.exceptions import BundleError
|
||||||
|
|
||||||
|
defaults = {
|
||||||
|
'pacman': {
|
||||||
|
'packages': {
|
||||||
|
'iptables': {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
@metadata_reactor.provides(
|
@metadata_reactor.provides(
|
||||||
'iptables/bundle_rules/iptables',
|
'iptables/bundle_rules/iptables',
|
||||||
)
|
)
|
||||||
|
|
|
@ -6,18 +6,78 @@ if not node.os == 'arch':
|
||||||
# This is more targeted to GUI systems. This is intentional.
|
# This is more targeted to GUI systems. This is intentional.
|
||||||
|
|
||||||
pkg_pacman = {
|
pkg_pacman = {
|
||||||
'fish': {},
|
'at': {},
|
||||||
'fwupd': {},
|
'autoconf': {},
|
||||||
|
'automake': {},
|
||||||
|
'binutils': {},
|
||||||
|
'bison': {},
|
||||||
|
'bzip2': {},
|
||||||
|
'curl': {},
|
||||||
'dialog': {},
|
'dialog': {},
|
||||||
|
'diffutils': {},
|
||||||
|
'fakeroot': {},
|
||||||
|
'file': {},
|
||||||
|
'findutils': {},
|
||||||
|
'flex': {},
|
||||||
|
'fwupd': {},
|
||||||
|
'gawk': {},
|
||||||
|
'gcc': {},
|
||||||
|
'gettext': {},
|
||||||
|
'git': {},
|
||||||
|
'gnu-netcat': {},
|
||||||
|
'grep': {},
|
||||||
|
'groff': {},
|
||||||
|
'gzip': {},
|
||||||
|
'ldns': {},
|
||||||
|
'less': {},
|
||||||
|
'libtool': {},
|
||||||
'linux': {},
|
'linux': {},
|
||||||
|
'logrotate': {},
|
||||||
|
'lsof': {},
|
||||||
|
'm4': {},
|
||||||
|
'mailutils': {},
|
||||||
|
'make': {},
|
||||||
|
'moreutils': {},
|
||||||
|
'mtr': {},
|
||||||
|
'ncdu': {},
|
||||||
|
'nmap': {},
|
||||||
|
'patch': {},
|
||||||
|
'pkgconf': {},
|
||||||
|
'python': {},
|
||||||
|
'python-setuptools': {
|
||||||
|
'needed_by': {
|
||||||
|
'pkg_pip:',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'python-pip': {
|
||||||
|
'needed_by': {
|
||||||
|
'pkg_pip:',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'python-virtualenv': {},
|
||||||
|
'rsync': {},
|
||||||
|
'sed': {},
|
||||||
|
'tar': {},
|
||||||
|
'texinfo': {},
|
||||||
|
'tmux': {},
|
||||||
|
'tree': {},
|
||||||
|
'unzip': {},
|
||||||
|
'vim': {},
|
||||||
|
'wget': {},
|
||||||
|
'which': {},
|
||||||
|
'whois': {},
|
||||||
|
'zip': {},
|
||||||
|
}
|
||||||
|
|
||||||
|
if node.metadata.get('pacman/install_gui', False):
|
||||||
|
pkg_pacman = {
|
||||||
|
'fish': {},
|
||||||
'netctl': {},
|
'netctl': {},
|
||||||
'rfkill': {},
|
'rfkill': {},
|
||||||
'tmux': {},
|
|
||||||
'vim': {},
|
|
||||||
'wpa_supplicant': {},
|
'wpa_supplicant': {},
|
||||||
'wpa_actiond': {},
|
'wpa_actiond': {},
|
||||||
'lm_sensors': {},
|
'lm_sensors': {},
|
||||||
}
|
}
|
||||||
|
|
||||||
for pkg, config in node.metadata.get('pacman/packages', {}).items():
|
for pkg, config in node.metadata.get('pacman/packages', {}).items():
|
||||||
pkg_pacman[pkg] = config
|
pkg_pacman[pkg] = config
|
||||||
|
|
|
@ -21,6 +21,12 @@ for identifier in node.metadata.get('postfix/mynetworks', set()):
|
||||||
netmask = '128'
|
netmask = '128'
|
||||||
mynetworks.add(f'[{ip6}]/{netmask}')
|
mynetworks.add(f'[{ip6}]/{netmask}')
|
||||||
|
|
||||||
|
my_package = 'pkg_pacman:postfix' if node.has_bundle('pacman') else 'pkg_apt:postfix'
|
||||||
|
|
||||||
|
pkg_pip = {
|
||||||
|
'dnsq': {},
|
||||||
|
}
|
||||||
|
|
||||||
files = {
|
files = {
|
||||||
'/etc/mailname': {
|
'/etc/mailname': {
|
||||||
'content': node.metadata.get('postfix/myhostname', node.metadata['hostname']),
|
'content': node.metadata.get('postfix/myhostname', node.metadata['hostname']),
|
||||||
|
@ -70,7 +76,7 @@ actions = {
|
||||||
'command': 'newaliases',
|
'command': 'newaliases',
|
||||||
'triggered': True,
|
'triggered': True,
|
||||||
'needs': {
|
'needs': {
|
||||||
'pkg_apt:postfix',
|
my_package,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -80,7 +86,7 @@ svc_systemd = {
|
||||||
'needs': {
|
'needs': {
|
||||||
'file:/etc/postfix/master.cf',
|
'file:/etc/postfix/master.cf',
|
||||||
'file:/etc/postfix/main.cf',
|
'file:/etc/postfix/main.cf',
|
||||||
'pkg_apt:',
|
my_package,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,10 @@ defaults = {
|
||||||
'apt': {
|
'apt': {
|
||||||
'packages': {
|
'packages': {
|
||||||
'postfix': {},
|
'postfix': {},
|
||||||
'python3-dnsq': {},
|
'python3-dnsq': {
|
||||||
|
# handled by pkg_pip
|
||||||
|
'installed': False,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
'icinga2_api': {
|
'icinga2_api': {
|
||||||
|
@ -19,6 +22,11 @@ defaults = {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
'pacman': {
|
||||||
|
'packages': {
|
||||||
|
'postfix': {},
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
if node.has_bundle('postfixadmin'):
|
if node.has_bundle('postfixadmin'):
|
||||||
|
|
|
@ -21,13 +21,6 @@ users = {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
pkg_apt = {
|
|
||||||
'gawk': {}, # needed by check_ram
|
|
||||||
'libwww-perl': {}, # needed by check_nginx_status
|
|
||||||
'sysstat': {}, # needed by check_cpu_stats
|
|
||||||
'monitoring-plugins': {},
|
|
||||||
}
|
|
||||||
|
|
||||||
with open(join(repo.path, 'data', 'sshmon', 'sshmon.pub'), 'r') as fp:
|
with open(join(repo.path, 'data', 'sshmon', 'sshmon.pub'), 'r') as fp:
|
||||||
pubkey = fp.read().strip()
|
pubkey = fp.read().strip()
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,11 @@ from re import sub
|
||||||
defaults = {
|
defaults = {
|
||||||
'apt': {
|
'apt': {
|
||||||
'packages': {
|
'packages': {
|
||||||
|
'gawk': {}, # needed by check_ram
|
||||||
|
'libwww-perl': {}, # needed by check_nginx_status
|
||||||
|
'monitoring-plugins': {},
|
||||||
'python3-requests': {},
|
'python3-requests': {},
|
||||||
|
'sysstat': {}, # needed by check_cpu_stats
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
'icinga2_api': {
|
'icinga2_api': {
|
||||||
|
@ -23,6 +27,15 @@ defaults = {
|
||||||
'sshmon',
|
'sshmon',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
'pacman': {
|
||||||
|
'packages': {
|
||||||
|
'gawk': {},
|
||||||
|
'perl-libwww': {},
|
||||||
|
'monitoring-plugins': {},
|
||||||
|
'python-requests': {},
|
||||||
|
'sysstat': {},
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,3 +19,9 @@ files = {
|
||||||
'content_type': 'mako',
|
'content_type': 'mako',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for filename, content in node.metadata.get('sudo/extra_configs', {}).items():
|
||||||
|
files[f'/etc/sudoers.d/{filename}'] = {
|
||||||
|
'content': '\n'.join(sorted(content)) + '\n',
|
||||||
|
'mode': '0440',
|
||||||
|
}
|
||||||
|
|
|
@ -11,11 +11,24 @@ files = {
|
||||||
if node.metadata.get('systemd-networkd/enable-resolved', False):
|
if node.metadata.get('systemd-networkd/enable-resolved', False):
|
||||||
symlinks['/etc/resolv.conf'] = {
|
symlinks['/etc/resolv.conf'] = {
|
||||||
'target': '/run/systemd/resolve/stub-resolv.conf',
|
'target': '/run/systemd/resolve/stub-resolv.conf',
|
||||||
|
'needed_by': {
|
||||||
|
'pkg_apt:',
|
||||||
|
'pkg_pacman:',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
svc_systemd['systemd-resolved'] = {
|
||||||
|
'needed_by': {
|
||||||
|
'pkg_apt:',
|
||||||
|
'pkg_pacman:',
|
||||||
|
},
|
||||||
}
|
}
|
||||||
svc_systemd['systemd-resolved'] = {}
|
|
||||||
else:
|
else:
|
||||||
files['/etc/resolv.conf'] = {
|
files['/etc/resolv.conf'] = {
|
||||||
'content_type': 'mako',
|
'content_type': 'mako',
|
||||||
|
'needed_by': {
|
||||||
|
'pkg_apt:',
|
||||||
|
'pkg_pacman:',
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,9 @@ defaults = {
|
||||||
'packages': {
|
'packages': {
|
||||||
'libvirt-clients': {},
|
'libvirt-clients': {},
|
||||||
'libvirt-daemon-system': {},
|
'libvirt-daemon-system': {},
|
||||||
|
'netcat-openbsd': {}, # for virt-manager
|
||||||
'qemu-utils': {},
|
'qemu-utils': {},
|
||||||
|
'qemu-kvm': {},
|
||||||
'qemu-system-x86': {},
|
'qemu-system-x86': {},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -21,3 +23,6 @@ defaults = {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if node.has_bundle('zfs'):
|
||||||
|
defaults['apt']['packages']['libvirt-daemon-driver-storage-zfs'] = {}
|
||||||
|
|
24
groups/os.py
24
groups/os.py
|
@ -13,16 +13,14 @@ groups['raspberry'] = {
|
||||||
|
|
||||||
groups['linux'] = {
|
groups['linux'] = {
|
||||||
'subgroups': {
|
'subgroups': {
|
||||||
|
'arch',
|
||||||
'debian',
|
'debian',
|
||||||
'raspberry',
|
'raspberry',
|
||||||
},
|
},
|
||||||
'bundles': {
|
'bundles': {
|
||||||
'apt',
|
|
||||||
'backup-client',
|
|
||||||
'basic',
|
'basic',
|
||||||
'cron',
|
'cron',
|
||||||
'iptables',
|
'iptables',
|
||||||
'molly-guard',
|
|
||||||
'openssh',
|
'openssh',
|
||||||
'postfix',
|
'postfix',
|
||||||
'sshmon',
|
'sshmon',
|
||||||
|
@ -61,13 +59,31 @@ groups['linux'] = {
|
||||||
'pip_command': 'pip3',
|
'pip_command': 'pip3',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
groups['arch'] = {
|
||||||
|
'bundles': {
|
||||||
|
'pacman',
|
||||||
|
},
|
||||||
|
'metadata': {
|
||||||
|
'icinga_options': {
|
||||||
|
'exclude_from_monitoring': True,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'os': 'arch',
|
||||||
|
}
|
||||||
|
|
||||||
groups['debian'] = {
|
groups['debian'] = {
|
||||||
'subgroups': {
|
'subgroups': {
|
||||||
'debian-buster',
|
'debian-buster',
|
||||||
'debian-bullseye',
|
'debian-bullseye',
|
||||||
'debian-sid',
|
'debian-sid',
|
||||||
},
|
},
|
||||||
'os': 'debian'
|
'bundles': {
|
||||||
|
'apt',
|
||||||
|
'backup-client',
|
||||||
|
'molly-guard',
|
||||||
|
},
|
||||||
|
'os': 'debian',
|
||||||
|
'pip_command': 'pip3',
|
||||||
}
|
}
|
||||||
|
|
||||||
groups['debian-buster'] = {
|
groups['debian-buster'] = {
|
||||||
|
|
|
@ -3,18 +3,12 @@
|
||||||
nodes['kunsi-t470'] = {
|
nodes['kunsi-t470'] = {
|
||||||
'hostname': 'localhost',
|
'hostname': 'localhost',
|
||||||
'bundles': {
|
'bundles': {
|
||||||
'basic',
|
|
||||||
'lldp',
|
'lldp',
|
||||||
'nfs-client',
|
'nfs-client',
|
||||||
'pacman',
|
|
||||||
'openssh',
|
|
||||||
'sudo',
|
|
||||||
'systemd',
|
|
||||||
'systemd-networkd',
|
|
||||||
'telegraf',
|
|
||||||
'users',
|
|
||||||
},
|
},
|
||||||
'groups': set(),
|
'groups': {
|
||||||
|
'arch',
|
||||||
|
},
|
||||||
'metadata': {
|
'metadata': {
|
||||||
'timezone': 'Europe/Berlin',
|
'timezone': 'Europe/Berlin',
|
||||||
'icinga_options': {
|
'icinga_options': {
|
||||||
|
@ -37,6 +31,12 @@ nodes['kunsi-t470'] = {
|
||||||
},
|
},
|
||||||
# there is also wlp4s0, but that's managed by netctl
|
# there is also wlp4s0, but that's managed by netctl
|
||||||
},
|
},
|
||||||
|
'iptables': {
|
||||||
|
'port_rules': {
|
||||||
|
# For the occasional file-share using `python -m http.server`
|
||||||
|
'8000': {'*'},
|
||||||
|
},
|
||||||
|
},
|
||||||
'locale': {
|
'locale': {
|
||||||
'default': 'en_DK.UTF-8',
|
'default': 'en_DK.UTF-8',
|
||||||
},
|
},
|
||||||
|
@ -53,9 +53,7 @@ nodes['kunsi-t470'] = {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
'pacman': {
|
'pacman': {
|
||||||
'packages': {
|
'install_gui': True,
|
||||||
'fish': {},
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
'systemd-networkd': {
|
'systemd-networkd': {
|
||||||
'enable-resolved': True,
|
'enable-resolved': True,
|
||||||
|
|
Loading…
Reference in a new issue