177 lines
		
	
	
	
		
			5.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			177 lines
		
	
	
	
		
			5.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| defaults = {
 | |
|     'apt': {
 | |
|         'packages': {
 | |
|             'apt-listchanges': {
 | |
|                 'installed': False,
 | |
|             },
 | |
|         },
 | |
|         'config': {
 | |
|             'DPkg': {
 | |
|                 'Pre-Install-Pkgs': {
 | |
|                     '/usr/sbin/dpkg-preconfigure --apt || true',
 | |
|                 },
 | |
|                 'Post-Invoke': {
 | |
|                     # keep package cache empty
 | |
|                     '/bin/rm -f /var/cache/apt/archives/*.deb || true',
 | |
|                 },
 | |
|                 'Options': {
 | |
|                     # https://unix.stackexchange.com/a/642541/357916
 | |
|                     '--force-confold',
 | |
|                     '--force-confdef',
 | |
|                 },
 | |
|             },
 | |
|             'APT': {
 | |
|                 'NeverAutoRemove': {
 | |
|                     '^firmware-linux.*',
 | |
|                     '^linux-firmware$',
 | |
|                     '^linux-image-[a-z0-9]*$',
 | |
|                     '^linux-image-[a-z0-9]*-[a-z0-9]*$',
 | |
|                 },
 | |
|                 'VersionedKernelPackages': {
 | |
|                     # kernels
 | |
|                     'linux-.*',
 | |
|                     'kfreebsd-.*',
 | |
|                     'gnumach-.*',
 | |
|                     # (out-of-tree) modules
 | |
|                     '.*-modules',
 | |
|                     '.*-kernel',
 | |
|                 },
 | |
|                 'Never-MarkAuto-Sections': {
 | |
|                     'metapackages',
 | |
|                     'tasks',
 | |
|                 },
 | |
|                 'Move-Autobit-Sections': {
 | |
|                     'oldlibs',
 | |
|                 },
 | |
|                 'Update': {
 | |
|                     # https://unix.stackexchange.com/a/653377/357916
 | |
|                     'Error-Mode': 'any',
 | |
|                 },
 | |
|             },
 | |
|         },
 | |
|         'sources': {},
 | |
|     },
 | |
|     'monitoring': {
 | |
|         'services': {
 | |
|             'apt upgradable': {
 | |
|                 'vars.command': '/usr/lib/nagios/plugins/check_apt_upgradable',
 | |
|                 'vars.sudo': True,
 | |
|                 'check_interval': '1h',
 | |
|             },
 | |
|             'current kernel': {
 | |
|                 'vars.command': 'ls /boot/vmlinuz-* | sort -V | tail -n 1 | xargs -n1 basename | cut -d "-" -f 2- | grep -q "^$(uname -r)$"',
 | |
|                 'check_interval': '1h',
 | |
|             },
 | |
|             'apt reboot-required': {
 | |
|                 'vars.command': 'ls /var/run/reboot-required 2> /dev/null && exit 1 || exit 0',
 | |
|                 'check_interval': '1h',
 | |
|             },
 | |
|         },
 | |
|     },
 | |
| }
 | |
| 
 | |
| 
 | |
| @metadata_reactor.provides(
 | |
|     'apt/sources',
 | |
| )
 | |
| def key(metadata):
 | |
|     return {
 | |
|         'apt': {
 | |
|             'sources': {
 | |
|                 source_name: {
 | |
|                     'key': source_name,
 | |
|                 }
 | |
|                     for source_name, source_config in metadata.get('apt/sources').items()
 | |
|                     if 'key' not in source_config
 | |
|             },
 | |
|         },
 | |
|     }
 | |
| 
 | |
| 
 | |
| @metadata_reactor.provides(
 | |
|     'apt/sources',
 | |
| )
 | |
| def signed_by(metadata):
 | |
|     return {
 | |
|         'apt': {
 | |
|             'sources': {
 | |
|                 source_name: {
 | |
|                     'options': {
 | |
|                         'Signed-By': '/etc/apt/keyrings/' + metadata.get(f'apt/sources/{source_name}/key') + '.' + repo.libs.apt.find_keyfile_extension(node, metadata.get(f'apt/sources/{source_name}/key')),
 | |
|                     },
 | |
|                 }
 | |
|                     for source_name in metadata.get('apt/sources')
 | |
|             },
 | |
|         },
 | |
|     }
 | |
| 
 | |
| 
 | |
| @metadata_reactor.provides(
 | |
|     'apt/config',
 | |
|     'apt/packages',
 | |
| )
 | |
| def unattended_upgrades(metadata):
 | |
|     return {
 | |
|         'apt': {
 | |
|             'config': {
 | |
|                 'APT': {
 | |
|                     'Periodic': {
 | |
|                         'Update-Package-Lists': '1',
 | |
|                         'Unattended-Upgrade': '1',
 | |
|                     },
 | |
|                 },
 | |
|                 'Unattended-Upgrade': {
 | |
|                     'Origins-Pattern': {
 | |
|                         "origin=*",
 | |
|                     },
 | |
|                 },
 | |
|             },
 | |
|             'packages': {
 | |
|                 'unattended-upgrades': {},
 | |
|             },
 | |
|         },
 | |
|     }
 | |
| 
 | |
| 
 | |
| # @metadata_reactor.provides(
 | |
| #     'apt/config',
 | |
| #     'apt/list_changes',
 | |
| # )
 | |
| # def listchanges(metadata):
 | |
| #     return {
 | |
| #         'apt': {
 | |
| #             'config': {
 | |
| #                 'DPkg': {
 | |
| #                     'Pre-Install-Pkgs': {
 | |
| #                         '/usr/bin/apt-listchanges --apt || test $? -lt 10',
 | |
| #                     },
 | |
| #                     'Tools': {
 | |
| #                         'Options': {
 | |
| #                             '/usr/bin/apt-listchanges': {
 | |
| #                                 'Version': '2',
 | |
| #                                 'InfoFD': '20',
 | |
| #                             },
 | |
| #                         },
 | |
| #                     },
 | |
| #                 },
 | |
| #                 'Dir': {
 | |
| #                     'Etc': {
 | |
| #                         'apt-listchanges-main': 'listchanges.conf',
 | |
| #                         'apt-listchanges-parts': 'listchanges.conf.d',
 | |
| #                     },
 | |
| #                 },
 | |
| #             },
 | |
| #             'list_changes': {
 | |
| #                 'apt': {
 | |
| #                     'frontend': 'pager',
 | |
| #                     'which': 'news',
 | |
| #                     'email_address': 'root',
 | |
| #                     'email_format': 'text',
 | |
| #                     'confirm': 'false',
 | |
| #                     'headers': 'false',
 | |
| #                     'reverse': 'false',
 | |
| #                     'save_seen': '/var/lib/apt/listchanges.db',
 | |
| #                 },
 | |
| #             },
 | |
| #         },
 | |
| #     }
 |