![Juju/Puppet 服务的配置文件](https://linux22.com/image/596824/Juju%2FPuppet%20%E6%9C%8D%E5%8A%A1%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6.png)
我编写了自己的服务,并希望通过 Juju/Puppet 脚本来部署它。主要目标是使部署的整个过程自动化,我发现 Juju/Puppet 应该是最好的。
- 我是否必须准备包(deb/rpm)或者可以从远程存储库下载(它是 python 服务)?
- 我应该如何管理此服务的配置文件?每个节点的配置文件略有不同,我想知道有哪些方法可以自动解决这个问题。是否有任何可以使用的通用配置文件格式,或者我可以选择哪些行应该包含在哪个节点的配置中,或者指定“hostname=
hostname -s
”,它将由 Juju/Puppet 执行并覆盖。有什么常见的解决方案吗?
我感兴趣的是它在生产中是如何完成的——在数据中心、测试环境等。管理员如何处理所有这些配置文件。他们如何自动化他们的工作。最近我不得不在几台不同的服务器上配置许多不同的服务(其中一些只是从源代码安装的,因为我的发行版没有软件包——我使用的是 Ubuntu 12.04)。我必须创建测试环境,当我不得不在每个节点上重复每个配置时,我真的很无聊。我不是 bash 脚本方面的专家,无法用单个或几个 bash 脚本自动完成整个过程,所以也许像 Juju/Puppet 这样的工具可能会有所帮助——尤其是我不喜欢 bash :),我想用 bash 写尽可能少的东西。
我从未在数据中心工作过,所以我想知道专业人士是如何做的。
答案1
Juju 主要针对 ec2/rackspace 和其他基于云的部署。您也可以在传统数据中心部署中使用它。
如果您打算在传统数据中心或 Colo 环境中使用 Juju,那么您可能会发现 Juju 和 puppet 的功能基本相同。这意味着,您最好只使用其中一个,而不是同时使用两者。
至于你的两个问题:
- 我不确定您打算将哪些具体部分打包为 rpm/debs。如果您是这个意思,您可以使用 puppet 安装您创建的自定义包。
- 在 Puppet 世界中,处理不同配置文件的一种方法是使用 Puppet模板模板和 Puppet 清单代码可以从后端数据源获取信息,使用电子海图功能或附加组件,例如希拉。
如果您想在 ec2 或其他服务上部署您的服务,puppet 和 juju 都可以正常工作。