Skip to content
Snippets Groups Projects
0_setup.py 1.25 KiB
Newer Older
#!/usr/bin/env python3
Stéphane Diemer's avatar
Stéphane Diemer committed
# -*- coding: utf-8 -*-
import utils


def setup(interactive=True):
    # Get hostname
    utils.log('Getting system hostname.')
    code, hostname = utils.exec_cmd('hostname')
Stéphane Diemer's avatar
Stéphane Diemer committed
    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)
Stéphane Diemer's avatar
Stéphane Diemer committed
    dir_path = utils.get_dir(__file__)
    cmds = [
        'DEBIAN_FRONTEND=noninteractive apt-get install -y postfix mailutils',
Stéphane Diemer's avatar
Stéphane Diemer committed
        '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),
Stéphane Diemer's avatar
Stéphane Diemer committed
        )),
        'echo "%s" > /etc/mailname' % mailname,
Stéphane Diemer's avatar
Stéphane Diemer committed
        'rgrep root /etc/aliases || echo "root: sysadmin@ubicast.eu" >> /etc/aliases',
        'service postfix restart',
        'newaliases',
    ]
    utils.run_commands(cmds)