第 1 章 使用 Puppet 进行配置管理简介
您可以使用 Puppet 来管理和自动化主机配置。Puppet 使用声明性语言来描述受管主机 所需的状态。
Puppet 会提高工作效率,因为您可以同时管理多个主机。同时,它减少了您的配置工作,因为 Puppet 可以轻松地验证和更正主机的状态。
其他资源
- 开源 Puppet 文档
- 预构建的 Puppet 模块的 Puppet Forge FULL-rhacma 存储库
1.1. Puppet 如何与 Satellite 集成 复制链接链接已复制到粘贴板!
Puppet 使用 server-agent 架构。Puppet 服务器是存储配置定义的中央组件。卫星服务器或任何胶囊通常通过 Puppet 服务器进行部署,卫星充当此类 Puppet 服务器的 外部节点分类器(ENC)。受管主机运行与 Puppet 服务器通信的 Puppet 代理。
Puppet 代理收集有关 主机的事实,并在每次运行时将它们报告给 Puppet 服务器。您可以通过在主机上运行 puppet 事实 来显示 JSON 格式的 Puppet 事实。
Puppet 服务器 将事实 转发到卫星,并且卫星存储它们以供以后使用。根据 事实 和其他定义,卫星为 Puppet 服务器构建 ENC 回答。Puppet 服务器根据 ENC 回答编译 目录,并将 目录 发送到 Puppet 代理。
Puppet 代理评估主机上的系统状态。如果 Puppet 代理发现 在目录中 定义 的所需状态 和实际状态之间的差别(称为 drifts ),它将强制执行主机状态的更正。然后,Puppet 代理将更正结果报告回 Puppet 服务器,该服务器将其报告到卫星。
Puppet 模块
主机 所需的状态 在 目录 中定义。目录 从分配给主机的一个或多个 Puppet 模块的 Puppet 清单编译。Puppet 模块是一系列类、清单、资源、文件和模板。Puppet 模块充当主机配置定义的组件。
智能类参数
如果模块支持使用参数,您可以使用智能类参数覆盖 Puppet 模块的参数。您可以将卫星中的参数定义为 键值对,这与主机参数或 Ansible 变量类似。
Puppet 环境
您还可以创建多个 Puppet 环境来控制配置定义版本或管理定义的变体,并在将它们部署到生产前测试定义。
高级集成步骤
Puppet 与 Satellite 集成涉及以下高级别步骤:
以下过程概述了如何使用 Puppet 模块安装、配置和管理 ntp 服务来提供示例。