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', }, }, }, }