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