57 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
defaults = {
 | 
						|
    'monitoring': {
 | 
						|
        'services': {
 | 
						|
            # 'test': {
 | 
						|
            #     'vars.command': '/bin/ls /',
 | 
						|
            #     'vars.sudo': True,
 | 
						|
            # },
 | 
						|
        },
 | 
						|
    },
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
@metadata_reactor.provides(
 | 
						|
    'monitoring/services',
 | 
						|
)
 | 
						|
def default_check_command(metadata):
 | 
						|
    services = {}
 | 
						|
 | 
						|
    for name, conf in metadata.get('monitoring/services').items():
 | 
						|
        services[name] = {}
 | 
						|
 | 
						|
        if 'host_name' not in conf:
 | 
						|
            services[name]['host_name'] = node.name
 | 
						|
 | 
						|
        if 'check_command' not in conf:
 | 
						|
            services[name]['check_command'] = 'sshmon'
 | 
						|
 | 
						|
    return {
 | 
						|
        'monitoring': {
 | 
						|
            'services': services,
 | 
						|
        },
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
 | 
						|
@metadata_reactor.provides(
 | 
						|
    'users/sshmon/authorized_users',
 | 
						|
    'sudoers/sshmon',
 | 
						|
)
 | 
						|
def user(metadata):
 | 
						|
    return {
 | 
						|
        'users': {
 | 
						|
            'sshmon': {
 | 
						|
                'authorized_users': {
 | 
						|
                    'nagios@' + metadata.get('monitoring/icinga2_node'),
 | 
						|
                }
 | 
						|
            },
 | 
						|
        },
 | 
						|
        'sudoers': {
 | 
						|
            'sshmon': {
 | 
						|
                conf['vars.command']
 | 
						|
                    for conf in metadata.get('monitoring/services').values()
 | 
						|
                    if conf['check_command'] == 'sshmon'
 | 
						|
                    and conf.get('vars.sudo', None)
 | 
						|
            },
 | 
						|
        },
 | 
						|
    }
 |