bundlewrap/bundles/powerdnsadmin/metadata.py

79 lines
2 KiB
Python

defaults = {
'apt': {
'packages': {
'default-libmysqlclient-dev': {},
'libffi-dev': {},
'libldap2-dev': {},
'libsasl2-dev': {},
'libssl-dev': {},
'libxml2-dev': {},
'libxmlsec1-dev': {},
'libxslt1-dev': {},
'pkg-config': {},
'python3-wheel': {},
},
},
'nodejs': {
'version': 22,
},
'users': {
'powerdnsadmin': {
'home': '/opt/powerdnsadmin',
},
},
'postgresql': {
'roles': {
'powerdnsadmin': {
'password': repo.vault.password_for('{} postgresql powerdnsadmin'.format(node.name)),
},
},
'databases': {
'powerdnsadmin': {
'owner': 'powerdnsadmin',
},
},
},
}
@metadata_reactor.provides(
'icinga2_api/powerdnsadmin/services',
)
def icinga_check_for_new_release(metadata):
return {
'icinga2_api': {
'powerdnsadmin': {
'services': {
'POWERDNSADMIN UPDATE': {
'command_on_monitored_host': '/usr/local/share/icinga/plugins/check_github_for_new_release ngoduykhanh/PowerDNS-Admin {}'.format(metadata.get('powerdnsadmin/version')),
'vars.notification.mail': True,
'check_interval': '60m',
},
},
},
},
}
@metadata_reactor.provides(
'nginx/vhosts/powerdnsadmin',
)
def nginx(metadata):
if not node.has_bundle('nginx'):
raise DoNotRunAgain
return {
'nginx': {
'vhosts': {
'powerdnsadmin': {
'locations': {
'/': {
'target': 'http://127.0.0.1:22100',
},
},
'website_check_path': '/login',
'website_check_string': 'PowerDNS',
},
},
},
}