92 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| defaults = {
 | |
|     'php': {
 | |
|         'php.ini': {
 | |
|             'cgi': {
 | |
|                 'fix_pathinfo': '0',
 | |
|             },
 | |
|         },
 | |
|     },
 | |
| }
 | |
| 
 | |
| 
 | |
| @metadata_reactor.provides(
 | |
|     'wordpress',
 | |
| )
 | |
| def wordpress(metadata):
 | |
|     return {
 | |
|         'wordpress': {
 | |
|             site: {
 | |
|                 'db_password': repo.vault.password_for(f"wordpress {site} db").value,
 | |
|             }
 | |
|                 for site in metadata.get('wordpress')
 | |
|         },
 | |
|     }
 | |
| 
 | |
| 
 | |
| @metadata_reactor.provides(
 | |
|     'mariadb/databases',
 | |
| )
 | |
| def mariadb(metadata):
 | |
|     return {
 | |
|         'mariadb': {
 | |
|             'databases': {
 | |
|                 site: {
 | |
|                     'password': metadata.get(f'wordpress/{site}/db_password')
 | |
|                 }
 | |
|                     for site in metadata.get('wordpress')
 | |
|             },
 | |
|         },
 | |
|     }
 | |
| 
 | |
| 
 | |
| @metadata_reactor.provides(
 | |
|     'nginx/vhosts'
 | |
| )
 | |
| def vhost(metadata):
 | |
|     return {
 | |
|         'nginx': {
 | |
|             'vhosts': {
 | |
|                 conf['domain']: {
 | |
|                     'content': 'wordpress/vhost.conf',
 | |
|                     'context': {
 | |
|                         'root': f'/opt/{site}',
 | |
|                     },
 | |
|                 }
 | |
|                     for site, conf in metadata.get('wordpress').items()
 | |
|             },
 | |
|         },
 | |
|     }
 | |
| 
 | |
| 
 | |
| @metadata_reactor.provides(
 | |
|     'zfs/datasets',
 | |
| )
 | |
| def zfs(metadata):
 | |
|     return {
 | |
|         'zfs': {
 | |
|             'datasets': {
 | |
|                 f'tank/{site}': {
 | |
|                     'mountpoint': f'/opt/{site}',
 | |
|                 }
 | |
|                     for site in metadata.get('wordpress')
 | |
|             },
 | |
|         },
 | |
|     }
 | |
| 
 | |
| 
 | |
| @metadata_reactor.provides(
 | |
|     'monitoring/services',
 | |
| )
 | |
| def check_insecure(metadata):
 | |
|     return {
 | |
|         'monitoring': {
 | |
|             'services': {
 | |
|                 f'wordpress {site} insecure': {
 | |
|                     'vars.command': f'/usr/lib/nagios/plugins/check_wordpress_insecure {site}',
 | |
|                     'check_interval': '30m',
 | |
|                     'vars.sudo': True,
 | |
|                 }
 | |
|                     for site in metadata.get('wordpress')
 | |
|             },
 | |
|         },
 | |
|     }
 |