#!/usr/bin/env python3 # -*- coding: utf-8 -*- import utils def setup(interactive=True): # Get hostname utils.log('Getting system hostname.') code, hostname = utils.exec_cmd('hostname') if code == 0: utils.log('Hostname is %s.' % hostname) else: raise Exception('Failed to get hostname.') # Install and configure postfix server = utils.get_conf('EMAIL_SMTP_SERVER', '') if not server: # with relayless cases emails are not always delivered to google mailing lists unless mailname is ubicast.eu and DNS spf records are set mailname = 'ubicast.eu' else: mailname = utils.get_conf('MS_SERVER_NAME', hostname) dir_path = utils.get_dir(__file__) cmds = [ 'DEBIAN_FRONTEND=noninteractive apt-get install -y postfix mailutils', 'echo "Replacing /etc/postfix/main.cf"', dict(line='write', template='%s/main.cf' % dir_path, target='/etc/postfix/main.cf', params=( ('{{ hostname }}', hostname), ('{{ smtp }}', server), )), 'echo "%s" > /etc/mailname' % mailname, 'rgrep "root:" /etc/aliases || echo "root: sysadmin@ubicast.eu" >> /etc/aliases', 'service postfix restart', 'newaliases', ] utils.run_commands(cmds)