如何自动化LAMP+邮件域部署?

如何自动化LAMP+邮件域部署?

我们管理一套或多或少标准的系统来开展通常的托管业务:

  • 权威 DNS 服务器
  • 邮件交换器(具有第一阶段垃圾邮件过滤功能)
  • 邮件扫描服务器(amavisd 进行内容扫描)
  • 邮箱服务器(实际邮箱所在的位置,运行 IMAP/POP/webmail)
  • mysql 服务器
  • 网络服务器

我们已经在慢慢实施管理配置系统通过 puppet,但下一步将是自动化服务生命周期。目前,我们有一个内部开发的解决方案,基本上由各个服务器上的 cronjobs 组成,这些 cronjobs 从 MySQL 读取数据并部署新域:

  • 在 DNS 中创建区域并将记录放入指向我们服务器的区域中
  • 在我们的 MX 中启用到该域的中继
  • 为 amavisd 添加可选的自定义域名配置
  • 在邮箱服务器上创建邮件域
  • 在 MySQL 中创建具有相应权限的空数据库
  • 在 Web 服务器上创建目录结构、ftp 凭据和 apache vhost

99.9% 的时间我们会添加域名,0.1% 的时间我们会删除域名或以某种方式对域名进行调整 - 后者目前是通过 ssh 手动完成的。有些系统已经分布在多个服务器上(例如,域名分布在多个邮箱服务器上),有些系统将来会这样(例如 MySQL)。

我们将为我们的客户开发一个简单的 Web 界面,以便他们管理自己的域名并获取新域名,我们显然希望尽可能地消除所有人工工作。Web 界面(程序员,想想看法)将不包含任何业务逻辑,并将(可能通过类似 RESTful 的 HTTP)与另一个只执行此操作的应用程序进行通信(程序员,想想控制器)。

您是否会将业务逻辑应用程序与 Puppet 连接并使用它来管理服务?或者让我们直接与系统对话?(例如,mysql 配置通过 SQL 完成,proftpd 帐户 + 邮件中继数据 + 反垃圾邮件设置存储在数据库中,apache vhosts 可以由可以执行创建/配置/清除和类似操作的简单代理来处理)?

大型托管商店如何管理此类内容?此外,欢迎提供任何其他建议。

相关内容