Created
October 30, 2015 17:38
-
-
Save BrianGallew/387289884e48f1f0b670 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!jinja|pyobjects | |
# Set up logging | |
import logging | |
logger = logging.getLogger(__name__) | |
import os | |
import yaml | |
import socket | |
''' | |
{% from "pepper/map.jinja" import netblocks %} | |
''' | |
include('ds-bacula', 'firewall.standard') | |
import salt://ds-bacula/map.sls | |
Firewall.accept('Bacula director port', | |
both=[[9101, {{netblocks}}]], | |
require_in=Firewall('firewall_final_reject'), | |
) | |
with Pkgrepo('Bacula Repo'): | |
with Pkg.installed( | |
'bacula-director-mysql', version=BaculaConfig.version, verify=False): | |
Service.disabled('bacula-director') | |
if os.path.ismount('/db'): | |
File.directory( | |
'/db/bacula', user='bacula', group='bacula', mode='0755') | |
# There *may* be a worse/stupider way to do this, but I don't know what | |
# it is. | |
for instance in ['bs-dir-1', ]: | |
config_dir = '/db/bacula/%s' % instance | |
File.managed('Director defaults file %s' % instance, | |
name='/etc/default/%s' % instance, | |
source='salt://ds-bacula/files/defaults_bacula-dir', | |
template='jinja', | |
mode='0644', | |
defaults={'instance': instance}, | |
) | |
File.managed('Director init file %s' % instance, | |
name='/etc/init.d/%s' % instance, | |
source='salt://ds-bacula/files/init_bacula-dir', | |
template='jinja', | |
mode='0755', | |
defaults={'instance': instance}, | |
) | |
with File.directory(config_dir, user='bacula'): | |
File.directory('%s/bootstraps' % config_dir, user='bacula') | |
File.directory('%s/logs' % config_dir, user='bacula') | |
File.managed('director file %s' % instance, | |
name='%s/bacula.conf' % config_dir, | |
source='salt://ds-bacula/files/bacula.conf', | |
template='jinja', | |
user='bacula', | |
mode='0640', | |
defaults={'instance': instance, | |
'password': BaculaConfig.credentials['config_password'], | |
'schema': BaculaConfig.credentials['config_schema'], | |
'database_server': BaculaConfig.credentials['database_server'], | |
'prefix': '/db/bacula', | |
}, | |
) | |
bconsole_conf = '%s/bconsole.conf' % config_dir | |
Cron.present('Weekly pruning of "lost" volumes for %s' % instance, | |
name='pgrep -u bacula && for c in $(/usr/local/bin/manage_catalogs --list | awk \'{print $2}\');do /usr/local/bin/prune_volumes -C $c -c %s > %s/prune.$c.log 2>&1;done' % (bconsole_conf, config_dir), | |
minute='1', | |
hour='19', | |
dayweek='6', | |
user='bacula') | |
Cron.present('Weekly pruning of two year old backups %s' % instance, | |
name='pgrep -u bacula && find %s/logs -mtime +730 -delete > %s/cleanup.log 2>&1' % (config_dir, config_dir), | |
minute='31', | |
hour='19', | |
dayweek='6', | |
user='bacula') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment