70 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| files = {
 | |
|     '/etc/cron.d/zfsutils-linux': {'delete': True, 'needs': {'pkg_apt:zfs-auto-snapshot'}},
 | |
|     '/etc/cron.d/zfs-auto-snapshot': {'delete': True, 'needs': {'pkg_apt:zfs-auto-snapshot'}},
 | |
|     '/etc/cron.hourly/zfs-auto-snapshot': {'delete': True, 'needs': {'pkg_apt:zfs-auto-snapshot'}},
 | |
|     '/etc/cron.daily/zfs-auto-snapshot': {'delete': True, 'needs': {'pkg_apt:zfs-auto-snapshot'}},
 | |
|     '/etc/cron.weekly/zfs-auto-snapshot': {'delete': True, 'needs': {'pkg_apt:zfs-auto-snapshot'}},
 | |
|     '/etc/cron.monthly/zfs-auto-snapshot': {'delete': True, 'needs': {'pkg_apt:zfs-auto-snapshot'}},
 | |
|     '/etc/modprobe.d/zfs.conf': {
 | |
|         'content_type': 'text',
 | |
|         'content': '\n'.join(
 | |
|             f'options zfs {k}={v}'
 | |
|                 for k, v in node.metadata.get('zfs/kernel_params').items()
 | |
|         ) + '\n',
 | |
|     },
 | |
|     '/usr/lib/nagios/plugins/check_zpool_online': {
 | |
|         'mode': '0755',
 | |
|     },
 | |
|     '/usr/lib/nagios/plugins/check_zpool_space': {
 | |
|         'mode': '0755',
 | |
|     },
 | |
| }
 | |
| 
 | |
| actions = {
 | |
|     'modprobe_zfs': {
 | |
|         'command': 'modprobe zfs',
 | |
|         'unless': 'lsmod | grep ^zfs',
 | |
|         'needs': {
 | |
|             'pkg_apt:zfs-dkms',
 | |
|         },
 | |
|         'needed_by': {
 | |
|             'pkg_apt:zfs-zed',
 | |
|             'pkg_apt:zfsutils-linux',
 | |
|             'zfs_dataset:',
 | |
|             'zfs_pool:',
 | |
|         },
 | |
|         'comment': 'If this fails, do a dist-upgrade, reinstall zfs-dkms, reboot',
 | |
|     },
 | |
| }
 | |
| 
 | |
| svc_systemd = {
 | |
|     'zfs-zed': {
 | |
|         'needs': {
 | |
|             'pkg_apt:zfs-zed'
 | |
|         },
 | |
|     },
 | |
|     'zfs-import-cache': {
 | |
|         'enabled': node.metadata.get('zfs/import-cache'),
 | |
|         'running': None,
 | |
|         'needs': {
 | |
|             'pkg_apt:zfs-zed'
 | |
|         },
 | |
|     },
 | |
| }
 | |
| 
 | |
| for name, config in node.metadata.get('zfs/datasets', {}).items():
 | |
|     zfs_datasets[name] = config
 | |
|     zfs_datasets[name].pop('backup', None)
 | |
| 
 | |
| for name, config in node.metadata.get('zfs/pools', {}).items():
 | |
|     zfs_pools[name] = {
 | |
|         "when_creating": {
 | |
|             "config": [
 | |
|                 {
 | |
|                     "type": config.get('type', None),
 | |
|                     "devices": config['devices'],
 | |
|                 },
 | |
|             ],
 | |
|         },
 | |
|         "autotrim": False,
 | |
|     }
 |