是否有一个工具可以处理配置的通用迁移?例如,如果我有 httpd、postfix、MySQL 以及用户和组数据,是否有一个工具可以提取每个服务的配置数据,以便我可以将其应用到另一个系统上。
一般来说,是否有一个工具(或策略)可以为所有服务处理这个问题?
答案1
此问题的一种流行的公认解决方案是使用配置管理系统。一些例子是木偶,厨师, 和盐堆。
这些系统允许您准确定义服务器(或在某些情况下应用程序堆栈)的外观。使用这些工具您可以定义服务器的状态,包括其配置。
下面是使用 Puppet 和模块进行非常基本的 apache 配置的示例puppetlabs/apache
:
class { 'apache': }
apache::vhost { 'first.example.com':
port => '80',
docroot => '/var/www/first',
}
这个简单的木偶代码可确保以下内容:
- 服务器上安装了 Apache
- 网络服务器正在运行并侦听端口 80
- 包含带有文档根的虚拟主机
/var/www/first
然后,您可以将此清单应用到集群中的许多服务器。转向这种类型的配置而不是手动复制配置文件的原因有很多。它处理服务器配置和基础设施的方式与处理代码的方式非常相似。
- 这些系统的配置通常存储在版本控制中。这使您可以轻松查看更改、回滚等
- 您的服务器状态可以进行单元测试和验收测试
- 共享模块就像代码库一样工作 - 您不需要重新发明轮子
- 您的服务器以可重复(且更可靠)的方式配置
许多人认为使用这些系统是开发运营移动。