Puppet 基础设施

优质
小牛编辑
119浏览
2023-12-01
Computers in the future may have as few as 1,000 vacuum tubes and weigh only 1.5 tons. — Popular Mechanics (1949)

在本章中,我们将学习如下内容:

  • 使用版本控制

  • 使用提交钩子

  • 使用 Rake 部署变更

  • 配置 Puppet 的文件服务器

  • 从 cron 运行 Puppet

  • 使用自动签名

  • 预签名证书

  • 从 Puppet 的 filebucket 检索文件

  • 使用 Passenger 扩展 Puppet 的部署规模

  • 创建去中心化的分布式 Puppet 架构

本书中的一些处方体现了 Puppet 社区约定的最佳实践。 其他的一些处方是一些技巧和窍门,这些技巧使你使用 Puppet 工作变得更容易, 或向你介绍一些先前还不知道的功能。 其中的一些处方仅仅是轻量级的捷径方法,我不建议你将其作为生产环境的标准操作过程, 但在紧急情况下可能还是有用的。 最后,这里还提供了一些实验性的处方,你可能想尝试一下, 但这些处方仅适用于大型基础设施或其他不寻常的场合。

我希望你通过阅读和学习这里提供的处方,能获得有关 Puppet 如何工作以及你该如何使用 Puppet 的更深入、更广泛的理解, 从而帮助你建立更完善的基础设施。 只有你自己才能决定一个特定的处方对你或你的组织是否适用, 但我希望这里提供的处方能激励你进行实验,找出更多更重要的处方 — 从中获得使用 Puppet 的乐趣!

纵观这本书的所有例子,你会看到大多数的命令以 root 用户运行。 如果你更愿意使用一个普通用户账号和 sudo 管理系统, 请使用这种方式替代 root 用户的操作。

因为不同 Linux 发行版(例如:Ubuntu、Red Hat、CentOS)在具体细节上会有不同,比如: 软件包名、配置文件的路径,等等。为了节省篇幅和提高清晰度的原因, 我决定为本书挑选一种发行版(Ubuntu 10.04 Lucid)并坚持使用它。 然而,Puppet 几乎可以在所有 Linux 发行版上运行,所以在你偏爱的操作系统和发行版上应该很少遇到麻烦, 仅需要对处方做适当调整即可。

在这本书写作时,Puppet 2.7 是最新的稳定版本,因此我选择了它作为本书使用的 Puppet 的参考版本。 然而,Puppet 命令的语法每隔一段时间可能就会改变, 所以要注意,旧版本的 Puppet 仍然是非常有用的, 旧版本的 Puppet 可能不支持这本书中所描述的所有功能和语法。