ROCK5GmbH.mailserver

Ansible角色设置邮件服务器

这个ansible角色安装邮件服务器,具体描述请参见 Thomas Leistner的这篇博客

SSL

SSL证书和密钥应放在邮件主机的/etc/myssl/$FQDN.crt/etc/myssl/$FQDN.key中 (其中$FQDN是主机的完全限定域名)。可以通过设置{{ ssl_directory }}变量为其他路径来改变这个位置。 如果这些文件不存在,将会为初始使用创建一个自签名证书,但不建议在生产环境中使用。如果您需要一个受信任CA签名的证书,请尝试 Let's Encrypt

变量

您需要设置以下变量才能使用此角色:

变量 说明
dbserver_root_pw 数据库的根用户密码
mailserver_sql_vmail_password 数据库中vmail用户的密码
milter_sql_spamass_password 数据库中spamassassin用户的密码
mailserver_hostname 邮件服务器的主机名(例如mail
mailserver_domain 邮件服务器的域名(例如example.com

还有很多其他变量可以自定义邮件服务器的安装,您可以在该角色及其依赖项的defaults/main.yml中找到。

密码

建议不要将密码以明文形式保存在vars/vars.yml中,而是考虑使用 ansible vault

如果您想快速入门vault,可以执行ansible-vault create vars/vault.yml并填入如下内容:

mailserver_sql_vmail_password: foo
milter_sql_spamass_password: bar
dbserver_root_pw: baz

(将foo、bar和baz替换为安全的密码)

现在,无论何时您使用此角色运行剧本,请记得在ansible-playbook中使用--ask-vault-pass

部署

在部署之前,您必须为数据库用户设置密码(见上文)。 此外,此剧本假设使用的是Ubuntu Server 16.04的默认安装,并未针对其他发行版进行测试。

示例剧本可以如下所示:

---
- hosts: all
  become: yes
  roles:
    - ROCK5GmbH.mailserver
  vars:
    - vault.yml

要获取此角色及其所有依赖项,可以使用ansible galaxy:

ansible-galaxy install ROCK5GmbH.mailserver

要在单个主机上部署,只需执行

ansible-playbook --ask-vault-pass -i $HOST, playbook.yml

其中$HOST是服务器的IP地址或URL。

如果您想部署到多个主机,建议使用 清单,这样您可以为每个主机设置变量,同时保留共同变量。

部署完成后,邮件服务器几乎已准备就绪。现在只需向您的SQL数据库中添加实际的域名和用户。 首先,使用doveadm pw -s SHA512-CRYPT为用户的密码生成哈希。 要添加用户,首先登录到服务器,然后通过以下命令连接到数据库:

mysql -u root -p

并输入SQL数据库的root密码。现在添加一个域(例如:mysystems.tld)和一个用户(user1):

use vmail;
insert into domains (domain) values ('mysystems.tld');
insert into accounts (username, domain, password, quota, enabled, sendonly) values ('user1', 'mysystems.tld', '{SHA512-CRYPT}$kgid87hdenss', 2048, true, false);

进一步定制

此设置还允许在SQL数据库中配置TLS策略,允许您为特定域设置特定的TLS政策。 您可以通过以下命令添加策略:

insert into tlspolicies (domain, policy, params) values ('gmx.de', 'secure', 'match=.gmx.net');

不同的政策可选项列出并解释在这里。 (match=.gmx.net确保postfix会检查gmx.net的证书,因为他们没有gmx.de的证书)

您还可能希望将新的邮件服务器添加到您的DNS中(A(AAA)和MX记录),并添加SPF和DKIM的条目。

关于项目

This role installs a mailserver with Postfix, Dovecot, Spamassassin, Amavis, ClamAV and a database backend.

安装
ansible-galaxy install ROCK5GmbH.mailserver
许可证
mit
下载
139
拥有者
Sophisticated Web Applications & Plattform Operations