使用 Puppet 集成管理配置
在 Satellite 中配置 Puppet 集成,并使用 Puppet 类配置主机
摘要
对红帽文档提供反馈 复制链接链接已复制到粘贴板!
我们感谢您对我们文档的反馈。让我们了解如何改进它。
使用 Red Hat Jira 中的 Create Issue 表单提供您的反馈。JIRA 问题是在 Red Hat Satellite Jira 项目中创建的,您可以在其中跟踪其进度。
先决条件
- 确保您已注册了 红帽帐户。
流程
- 单击以下链接: 创建问题。如果 Jira 显示登录错误,则登录并在您重定向到表单后继续。
- 完成 Summary 和 Description 字段。在 Description 字段中,包含文档 URL、章节号以及问题的详细描述。不要修改表单中的任何其他字段。
- 点 Create。
第 1 章 使用 Puppet 介绍配置管理 复制链接链接已复制到粘贴板!
您可以使用 Puppet 管理和自动化主机配置。Puppet 使用声明语言来描述主机 所需状态。
随着您同时管理多个主机,Puppet 提高了您的工作效率。同时,它会降低您的配置工作,因为 Puppet 可以轻松地验证并可能更正主机的状态。
其他资源
- 开源 Puppet 文档
- 预构建 Puppet 模块的 Puppet Forge wagona 存储库
1.1. Puppet 与 Satellite 集成 复制链接链接已复制到粘贴板!
Puppet 使用 server-agent 架构。Puppet 服务器是存储配置定义的中央组件。Satellite 服务器或胶囊服务器通常使用 Puppet 服务器部署,Satellite 充当此类 Puppet 服务器的 外部节点分类器(ENC)。主机运行与 Puppet 服务器通信的 Puppet 代理。
Puppet 代理收集有关 主机的事实,并将它们报告给每次运行上的 Puppet 服务器。您可以通过在主机上运行 puppet 事实,以 JSON 格式显示 Puppet 事实。
Puppet 服务器 将事实 转发到卫星,并且卫星存储它们以供以后使用。根据 事实 和其他定义,Satellite 构造对 Puppet 服务器的 ENC 回答。Puppet 服务器根据 ENC 回答编译 目录,并将 目录 发送到 Puppet 代理。
Puppet 代理评估主机上的系统状态。如果 Puppet 代理 在目录中 定义 的所需状态 与实际状态之间发现差异(称为 drifts ),它将强制更正主机的状态。然后,Puppet 代理将结果报告回 Puppet 服务器,后者将结果报告给卫星。
Puppet 模块
主机 的所需状态 在 目录 中定义。目录 从分配给主机的一个或多个 Puppet 模块的 Puppet 清单中编译。Puppet 模块是类、清单、资源、文件和模板的集合。Puppet 模块作为主机配置定义的组件工作。
智能类参数
如果模块支持使用参数,您可以使用 Smart Class 参数覆盖 Puppet 模块的参数。您可以将 Satellite 中的参数定义为 键值对,其行为与主机参数或 Ansible 变量类似。
Puppet 环境
您还可以创建多个 Puppet 环境来控制配置定义的版本,或者管理定义的不同版本,并在部署到生产环境中之前测试定义。
高级别集成步骤
Puppet 与 Satellite 集成涉及以下高级别步骤:
其他资源
- 管理内容
- 在管理主机中注册主机和设置 主机集成
- 在管理主机中 配置和设置 远程作业
以下步骤概述了如何使用 Puppet 模块来安装、配置和管理 ntp 服务来提供示例。
1.2. 支持的 Puppet 版本和系统要求 复制链接链接已复制到粘贴板!
在开始 Puppet 集成前,请查看受支持的 Puppet 版本和系统要求。
- 支持的 Puppet 版本
Satellite 支持 Puppet 服务器 8。确保用于配置主机的 Puppet 模块与您的 Puppet 版本兼容。
在主机上,您可以使用 Puppet 代理 7。
- 系统要求
- 在开始将 Puppet 与 Satellite 集成前,请确保满足系统要求。如需更多信息,请参阅 Open Source Puppet 文档中的 Puppet 7 的系统要求。
1.3. 启用 Puppet 与 Satellite 集成 复制链接链接已复制到粘贴板!
默认情况下,Satellite 没有配置任何 Puppet 集成。您需要根据具体情况启用集成。这意味着,您可以配置 Satellite,在 Satellite 服务器或 Capsule 服务器上管理和监控 Puppet 服务器。此外,您还可以将 Puppet 服务器部署到外部卫星,并将它与卫星集成以进行报告、事实和外部节点分类(ENC)。
流程
启用 Puppet 集成并在 Satellite 服务器上安装 Puppet 服务器:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要在 Capsule 服务器上使用 Puppet 集成,请启用 Puppet 集成并在 Capsule 服务器上安装 Puppet 服务器:
satellite-installer \ --enable-puppet \ --foreman-proxy-puppet true \ --foreman-proxy-puppetca true \ --puppet-server true
# satellite-installer \ --enable-puppet \ --foreman-proxy-puppet true \ --foreman-proxy-puppetca true \ --puppet-server trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.4. 在主机置备过程中安装和配置 Puppet 代理 复制链接链接已复制到粘贴板!
您可以在置备过程中在主机上安装和配置 Puppet 代理。主机上需要配置了 Puppet 代理,才能与您的 Satellite 集成。
先决条件
- Puppet 必须在您的卫星中启用。如需更多信息,请参阅 第 1.3 节 “启用 Puppet 与 Satellite 集成”。
- 用于主机的操作系统的 Red Hat Satellite Client 6 存储库在 Satellite 服务器上同步,并在您使用的激活码中启用。如需更多信息,请参阅管理内容中的导入内容。
- 您有一个激活码。如需更多信息,请参阅管理内容中的管理激活码。
流程
- 导航到 Hosts > Templates > Provisioning Templates。
- 根据您的主机置备方法选择自定义模板。如需更多信息,请参阅置备主机 中的 Provisioning Templates 的 Kinds 。
确保
puppet_setup片断包含如下:<%= snippet 'puppet_setup' %>
<%= snippet 'puppet_setup' %>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,此片段已包含在 Satellite 附带的模板中,如
Kickstart default或Preseed default。-
使用全局参数、主机组或单个主机中的 host 参数启用 Puppet 代理。要使用 Puppet 8,请添加名为
enable-puppet8的主机参数,选择 布尔值 类型,然后将值设为true。要使用 Puppet 7,请添加名为enable-puppet7的主机参数,选择 布尔值 类型,然后将值设为true。 设置 Puppet 代理的配置。
- 如果您使用集成的 Puppet 服务器,请确保在创建主机时选择 Puppet Capsule、Puppet CA Capsule 和 Puppet 环境。
如果您使用非集成 Puppet 服务器,可以在全局参数或主机组或创建主机时设置以下主机参数:
-
添加名为
puppet_server的主机参数,选择字符串类型,并将值设为 Puppet 服务器的主机名,如puppet.example.com。 -
可选:添加名为
puppet_ca_server的主机参数,选择字符串类型,并将值设为 Puppet CA 服务器的主机名,如puppet-ca.example.com。如果没有设置puppet_ca_server,则 Puppet 代理将使用与puppet_server相同的服务器。 -
可选:添加名为
puppet_environment的主机参数,选择字符串类型,并将值设置为您希望主机使用的 Puppet 环境。
-
添加名为
- 使用适当的激活密钥,确保主机能够从 Satellite 服务器访问 Puppet 代理软件包。
1.5. 在主机注册过程中安装和配置 Puppet 代理 复制链接链接已复制到粘贴板!
您可以在注册过程中在主机上安装和配置 Puppet 代理。主机上需要配置了 Puppet 代理,才能与您的 Satellite 集成。
先决条件
- Puppet 必须在您的卫星中启用。如需更多信息,请参阅 第 1.3 节 “启用 Puppet 与 Satellite 集成”。
- 用于主机的操作系统的 Red Hat Satellite Client 6 存储库在 Satellite 服务器上同步,并在您使用的激活码中启用。如需更多信息,请参阅管理内容中的导入内容。
- 您有一个激活码。如需更多信息,请参阅管理内容中的管理激活码。
流程
- 在 Satellite Web UI 中,进入到 Configure > Global Parameters 以全局添加主机参数。或者,您可以进入到 Configure > Host Groups 并编辑或创建主机组,来仅将主机参数添加到主机组中。
使用全局参数或主机组中的 host 参数启用 Puppet 代理。
添加名为
enable-puppet7的主机参数,选择 boolean 类型,然后将值设为true。在全局参数或主机组中使用以下主机参数为 Puppet 代理指定配置:
-
添加名为
puppet_server的主机参数,选择字符串类型,并将值设为 Puppet 服务器的主机名,如puppet.example.com。 -
可选:添加名为
puppet_ca_server的主机参数,选择字符串类型,并将值设为 Puppet CA 服务器的主机名,如puppet-ca.example.com。如果没有设置puppet_ca_server,则 Puppet 代理将使用与puppet_server相同的服务器。 -
可选:添加名为
puppet_environment的主机参数,选择字符串类型,并将值设置为您希望主机使用的 Puppet 环境。
在 BZ2177730 被解决前,您需要使用 host 参数来指定 Puppet 代理配置,即使 Puppet 服务器是 Capsule 服务器。
-
添加名为
- 进入到 Hosts > Register Host,并使用适当的激活码注册您的主机。如需更多信息,请参阅 管理主机 中的 使用全局注册注册主机。
- 进入到 Infrastructure > Capsules。
- 从所需胶囊服务器的 Actions 列中的列表中,选择 Certificates。
- 单击所需主机右侧的 Sign to,为 Puppet 代理签署 SSL 证书。
1.6. 手动安装和配置 Puppet 代理 复制链接链接已复制到粘贴板!
您可以手动在主机上安装和配置 Puppet 代理。主机上需要配置了 Puppet 代理,才能与您的 Satellite 集成。
先决条件
- Puppet 必须在您的卫星中启用。如需更多信息,请参阅 第 1.3 节 “启用 Puppet 与 Satellite 集成”。
- 主机必须分配有 Puppet 环境。
- 用于主机的操作系统的 Red Hat Satellite Client 6 存储库已同步到 Satellite 服务器上,可在内容视图和主机的生命周期环境中同步,并为主机启用。如需更多信息, 请参阅管理内容 中的更改 Satellite 中的主机存储库设置状态。
流程
-
以
root用户身份登录主机。 安装 Puppet 代理软件包。
在运行 Red Hat Enterprise Linux 8 及更高版本的主机上:
dnf install puppet-agent
# dnf install puppet-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在运行 Red Hat Enterprise Linux 7 及更早版本的主机上:
yum install puppet-agent
# yum install puppet-agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow
使用以下脚本,将 Puppet 代理添加到当前 shell 中的
PATH中:. /etc/profile.d/puppet-agent.sh
. /etc/profile.d/puppet-agent.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置 Puppet 代理。将
environment参数设置为主机所属的 Puppet 环境的名称:puppet config set server satellite.example.com --section agent puppet config set environment My_Puppet_Environment --section agent
# puppet config set server satellite.example.com --section agent # puppet config set environment My_Puppet_Environment --section agentCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启动 Puppet 代理服务:
puppet resource service puppet ensure=running enable=true
# puppet resource service puppet ensure=running enable=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为主机创建证书:
puppet ssl bootstrap
# puppet ssl bootstrapCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 在 Satellite Web UI 中,进入到 Infrastructure > Capsules。
- 从所需胶囊服务器的 Actions 列中的列表中,选择 Certificates。
- 单击所需主机右侧的 Sign to,为 Puppet 代理签署 SSL 证书。
在主机上再次运行 Puppet 代理:
puppet ssl bootstrap
# puppet ssl bootstrapCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.7. 执行配置管理 复制链接链接已复制到粘贴板!
在主机上部署 Puppet 代理后,您可以开始使用 Puppet 执行配置管理。这包括以下高级别步骤:
- 管理 Puppet 服务器上的 Puppet 模块,即安装和更新它们。
- 将 Puppet 模块中的 Puppet 类和环境导入到卫星中。
- 可选:从 Puppet 类创建配置组。
- 在各种级别上配置智能类参数覆盖。
- 将 Puppet 类或配置组分配到主机组或单个主机。
- 配置间隔,以便在主机上运行 Puppet 代理,以及运行 Puppet 服务器的配置实施。
- 在 Satellite Web UI 中使用报告监控配置管理。如需更多信息,请参阅管理 Red Hat Satellite 中的 监控资源。
- 配置电子邮件通知.如需更多信息,请参阅管理 Red Hat Satellite 中的 配置电子邮件通知首选项。
在分配 Puppet 类或配置组后,Satellite 会在配置的间隔中自动运行配置管理,以在主机上强制 Puppet 配置,或者您可以使用 Run Puppet Once 功能根据需要手动启动。如需更多信息,请参阅 第 9.1 节 “使用 SSH 运行 Puppet”。
1.8. 禁用与 Satellite 的 Puppet 集成 复制链接链接已复制到粘贴板!
要在 Satellite 中停止使用 Puppet,请按照以下流程操作。
请注意,不带 --remove-all-data 参数的命令会删除卫星数据库中的所有与 Puppet 相关的数据。使用 --remove-all-data 参数时,命令还会删除 Puppet 服务器数据文件,包括 Puppet 环境。
如果您使用 --remove-all-data 参数禁用 Puppet,之后您将无法重新启用 Puppet。这是一个已知问题,请参阅 Bug 2087067。
先决条件
- Puppet 在 Satellite 上启用。
流程
如果您在任何 Capsules 上使用了 Puppet 服务器,请在所有 Capsules 上禁用 Puppet 服务器:
satellite-maintain plugin purge-puppet --remove-all-data
# satellite-maintain plugin purge-puppet --remove-all-dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Satellite 服务器上禁用 Puppet 服务器:
satellite-maintain plugin purge-puppet --remove-all-data
# satellite-maintain plugin purge-puppet --remove-all-dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 2 章 管理 Puppet 模块 复制链接链接已复制到粘贴板!
2.1. 在 Satellite 服务器上安装 Puppet 模块 复制链接链接已复制到粘贴板!
您可以从 Puppet Forge 安装预构建的 Puppet 模块。Puppet Forge 是提供由社区贡献的 Puppet 模块的存储库。Puppet Inc. 已 正式支持 并测试 Puppet 模块。
本例演示了如何将 ntp 模块添加到 主机。
流程
-
导航到 forge.puppet.com 并搜索
ntp。第一个模块之一为 puppetlabs/ntp。 使用 SSH 连接到 Satellite 服务器并安装 Puppet 模块:
puppet module install puppetlabs-ntp -i /etc/puppetlabs/code/environments/production/modules
# puppet module install puppetlabs-ntp -i /etc/puppetlabs/code/environments/production/modulesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
-i参数指定路径和 Puppet 环境,如production。安装完成后,输出类似如下:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
安装 Puppet 模块的一种另一种方法是将包含 Puppet 模块的文件夹复制到上述模块路径中。确保手动解析其依赖项。
2.2. 更新 Puppet 模块 复制链接链接已复制到粘贴板!
您可以使用 puppet 命令更新现有的 Puppet 模块。
流程
使用 SSH 连接到您的 Puppet 服务器,并找出 Puppet 模块所处的位置:
puppet config print modulepath
# puppet config print modulepathCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会返回输出,如下所示:
/etc/puppetlabs/code/environments/production/modules:/etc/puppetlabs/code/environments/common:/etc/puppetlabs/code/modules:/opt/puppetlabs/puppet/modules:/usr/share/puppet/modules
/etc/puppetlabs/code/environments/production/modules:/etc/puppetlabs/code/environments/common:/etc/puppetlabs/code/modules:/opt/puppetlabs/puppet/modules:/usr/share/puppet/modulesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果该模块位于上面显示的路径中,以下命令会更新模块:
puppet module upgrade module name
# puppet module upgrade module nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 3 章 将 Puppet 类和环境导入到 Satellite 中 复制链接链接已复制到粘贴板!
在将任何类分配给主机之前,将 Puppet 类和环境从已安装的 Puppet 模块导入到卫星服务器或任何附加的胶囊服务器。
先决条件
- 确保选择 Any Organization 和 Any Location 作为上下文,否则导入可能会失败。
流程
- 在 Satellite Web UI 中,导航到 Configure > Puppet ENC > Classes 或 Configure > Puppet ENC > Environments。
- 单击右上角的 Import,再选择您要从中导入模块的 Capsule。您通常在 Satellite 服务器或任何附加的胶囊服务器之间进行选择。
- 使用左侧的复选框,选择要导入的 Puppet 环境。
- 单击 Update,将 Puppet 环境和类导入到 Satellite。
导入应该会产生如下通知:
Successfully updated environments and Puppet classes from the on-disk Puppet installation
Successfully updated environments and Puppet classes from the on-disk Puppet installationCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 4 章 创建自定义 Puppet 环境 复制链接链接已复制到粘贴板!
您可以在 Satellite 中创建 Puppet 环境。
流程
- 在 Satellite Web UI 中,进入到 Configure > Puppet Environments。
- 单击 Create Puppet Environment 以创建 Puppet 环境。
-
允许输入 Name、字母数字字符和下划线,如
example_environment。 - 可选:设置位置上下文。
- 可选:设置机构上下文。
- 单击 Submit 以创建 Puppet 环境。
请注意,在运行 Puppet 模块导入到 Satellite 之前,环境必须已作为文件夹 /etc/resourcequotas/code/environments/example_environment 存在于 Puppet 服务器上,并包含已安装的 Puppet 模块。
第 5 章 创建 Puppet 配置组 复制链接链接已复制到粘贴板!
Puppet 配置组是 Puppet 类的命名列表,允许您组合其功能并将其分配到主机。这等同于纯 Puppet 中的配置文件概念。
流程
- 在 Satellite Web UI 中,进入到 Configure > Puppet ENC > Config Groups。
- 单击 Create Config Group。
选择您要添加到 config 组的类。
- 为 Puppet 配置组选择一个有意义的 Name。
- 将选定的 Puppet 类添加到 Included Classes 字段。
- 点 Submit 以保存更改。
第 6 章 配置 Puppet 智能类参数 复制链接链接已复制到粘贴板!
6.1. Puppet 参数层次结构 复制链接链接已复制到粘贴板!
Puppet 参数按照分级方式进行。较低级别的参数覆盖较高级别的参数:
- 全局参数
- 机构参数
- 位置参数
- 主机组参数
- 主机参数
例如,特定于主机的参数覆盖任何更高级别上的参数,位置参数则仅覆盖机构或全局级别上的参数。当您使用位置或机构对主机进行分组时,此功能特别有用。
6.2. 在全局范围内覆盖智能类参数 复制链接链接已复制到粘贴板!
在将 Puppet 类导入到 Satellite 服务器后,您可以配置 Puppet 类。这个示例覆盖了 ntp 服务器的默认列表。
流程
- 在 Satellite Web UI 中,进入到 Configure > Puppet ENC > Classes。
- 选择 ntp Puppet 类来更改其配置。
- 选择 智能类参数 选项卡并搜索 服务器。
- 确保已选中 Override 复选框。
- 将 参数类型 下拉菜单设置为 数组。
将 ntp 服务器列表插入 为默认值 :
["0.de.pool.ntp.org","1.de.pool.ntp.org","2.de.pool.ntp.org","3.de.pool.ntp.org"]
["0.de.pool.ntp.org","1.de.pool.ntp.org","2.de.pool.ntp.org","3.de.pool.ntp.org"]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 描述数组的替代方法是
yaml语法:- 0.de.pool.ntp.org - 1.de.pool.ntp.org - 2.de.pool.ntp.org - 3.de.pool.ntp.org
- 0.de.pool.ntp.org - 1.de.pool.ntp.org - 2.de.pool.ntp.org - 3.de.pool.ntp.orgCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
单击 Submit 以更改 Puppet 模块
ntp的默认配置。
6.3. 覆盖机构的智能类参数 复制链接链接已复制到粘贴板!
您可以使用主机组来一次性覆盖多个主机的 Puppet 参数。以下示例选择 组织上下文 来说明设置基于上下文的参数。
请注意,组织级 Puppet 参数会被 位置级 Puppet 参数覆盖。
流程
- 在 Satellite Web UI 中,进入到 Configure > Puppet ENC > Classes。
- 单击类名称以选择一个类。
- 在 智能类参数 选项卡上,选择一个参数。
-
使用 Order 列表定义 Puppet 参数的层次结构。单个主机(
fqdn)将大部分和组织上下文(organization)标记为最不相关的。 - 如果要在找到第一个匹配项后添加所有进一步匹配的参数,请选择 Merge Overrides。
- 如果要同时包含默认值,请检查 Merge Default,即使定义了更具体的值。
- 如果要为所选参数创建唯一值列表,请选择 Avoid Duplicates。
- matcher 字段需要来自 订购列表中的属性类型。
- 可选:点 Add Matcher 来添加更多匹配器。
- 点 Submit 以保存更改。
6.4. 覆盖位置的智能类参数 复制链接链接已复制到粘贴板!
您可以使用主机组来一次性覆盖多个主机的 Puppet 参数。以下示例选择 位置上下文 来说明设置基于上下文的参数。
流程
- 在 Satellite Web UI 中,进入到 Configure > Puppet ENC > Classes。
- 单击类名称以选择一个类。
- 在 智能类参数 选项卡上,选择一个参数。
-
使用 Order 列表定义 Puppet 参数的层次结构。单个主机(
fqdn)标记最不相关的位置上下文(location)。 - 如果要在找到第一个匹配项后添加所有进一步匹配的参数,请选择 Merge Overrides。
- 如果要同时包含默认值,请检查 Merge Default,即使定义了更具体的值。
- 如果要为所选参数创建唯一值列表,请选择 Avoid Duplicates。
-
matcher 字段需要来自 订购列表中的属性类型。例如,您可以选择
Paris作为 位置上下文,并将值设置为法语 ntp 服务器。 - 可选:点 Add Matcher 来添加更多匹配器。
- 点 Submit 以保存更改。
6.5. 覆盖单个主机上的智能类参数 复制链接链接已复制到粘贴板!
您可以覆盖单个主机上的参数。如果您有多个主机,且只想更改单个主机,则建议您这样做。
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 单击主机名以选择主机。
- 点 Edit。
- 在 Host 选项卡中,选择 Puppet Environment。
- 选择 Puppet ENC 选项卡。
- 单击 Override 以编辑 Puppet 参数。
- 点 Submit 以保存更改。
第 7 章 将 Puppet 类分配给主机组 复制链接链接已复制到粘贴板!
使用主机组一次性将 ntp Puppet 类分配到多个主机。您基于此主机组部署的每个主机都已安装此 Puppet 类。
流程
- 在 Satellite Web UI 中,进入到 Configure > Host Groups 来创建主机组或编辑现有主机组。
在 Host Group 选项卡中,设置以下参数:
- 生命周期环境 描述了主机可以使用特定版本的内容的阶段。
- 内容视图 由产品组成,并允许对内容存储库的版本控制。
- 环境 允许您为一组主机提供自己的专用配置。
- 导航到 Puppet ENC 选项卡。
- 如果配置了 Puppet 配置组,将 Puppet 类添加到 Included Classes 或 Included Config Groups。
- 点 Submit 以保存更改。
第 8 章 将 Puppet 类分配给单个主机 复制链接链接已复制到粘贴板!
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
-
找到您要将
ntpPuppet 类添加到的主机,再单击 Edit。 - 选择 Puppet ENC 选项卡,再查找 ntp 类。
-
单击
ntp旁边的 + 符号,将 ntp 子模块 添加到 所含类 列表中。 点 Submit 保存您的更改。
提示如果单个主机的 Puppet 类 选项卡为空,请检查它是否已分配给正确的 Puppet 环境。
验证 Puppet 配置。
- 进入到 Hosts > All Hosts 并选择主机。
- 在顶部溢出菜单中,选择 Legacy UI。
在 Details 下,单击 Puppet YAML。这会生成类似如下的输出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证 ntp 配置。
使用 SSH 连接到您的主机,并检查
/etc/ntp.conf的内容。本例假设您的主机正在运行 CentOS 7。其他操作系统可以将 ntp 配置文件存储在不同的路径中。
提示您可能需要通过执行以下命令来在主机上运行 Puppet 代理:
puppet agent -t
# puppet agent -tCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在主机上运行以下命令检查哪个 ntp 服务器用于时钟同步:
cat /etc/ntp.conf
# cat /etc/ntp.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这会返回类似如下的输出:
# ntp.conf: Managed by puppet. server 0.de.pool.ntp.org server 1.de.pool.ntp.org server 2.de.pool.ntp.org server 3.de.pool.ntp.org
# ntp.conf: Managed by puppet. server 0.de.pool.ntp.org server 1.de.pool.ntp.org server 2.de.pool.ntp.org server 3.de.pool.ntp.orgCopy to Clipboard Copied! Toggle word wrap Toggle overflow
您现在有一个可正常工作的 ntp 模块,您可以将其添加到主机或一组主机,以自动推出 ntp 配置。
第 9 章 在主机上强制执行 Puppet 配置 复制链接链接已复制到粘贴板!
您可以根据需要手动从 Satellite 执行配置(运行一次),或者以可配置的间隔自动进行。
9.1. 使用 SSH 运行 Puppet 复制链接链接已复制到粘贴板!
将正确的作业模板分配到 Run Puppet Once 功能,以便在主机上运行 Puppet。
流程
- 在 Satellite Web UI 中,进入到 Administer > Remote Execution Features。
-
选择
puppet_run_host远程执行功能。 -
分配
Run Puppet Once - SSH Default作业模板。
通过运行作业并选择类别 Puppet 和模板 运行 。或者,在主机详细信息页面上的 Schedule Remote Job 下拉菜单中选择 Run Puppet Once。
Puppet Once - SSH Default 在主机上运行 Puppet
9.2. 了解自动强制的间隔 复制链接链接已复制到粘贴板!
如果最后的 Puppet 报告比在分钟内设置的 outofsync_interval 和 puppet_interval 的值旧,则 Satellite 将主机视为不同步。默认情况下,主机上的 Puppet 代理每 30 分钟运行一次,puppet_interval 设置为 35 分钟,全局 outofsync_interval 被设置为 30 分钟。
在主机不同步后的有效时间是 outofsync_interval 和 puppet_interval 的总和。例如,将 global 设置为 30,并且 outofsync _intervalpuppet_interval 设为 60 会导致总计 90 分钟后主机状态变为不同步。
9.3. 在主机上设置 Puppet 代理运行间隔 复制链接链接已复制到粘贴板!
设置 Puppet 代理运行并将报告发送到 Satellite 的间隔。
流程
- 使用 SSH 连接到您的主机。
-
将 Puppet 代理运行间隔添加到
/etc/puppetlabs/puppet/puppet.conf,如runinterval = 1h。
9.4. 设置全局不同步间隔 复制链接链接已复制到粘贴板!
9.5. 设置 Puppet 不同步间隔 复制链接链接已复制到粘贴板!
流程
- 在 Satellite Web UI 中,进入到 Administer > Settings,然后点 Config Management 选项卡。
- 在 Puppet interval 字段中,将值设为持续时间(以分钟为单位),之后使用 Puppet 报告的主机被视为不同步。
9.6. 覆盖主机组同步间隔 复制链接链接已复制到粘贴板!
流程
- 在 Satellite Web UI 中,进入到 Configure > Host Groups。
- 选择主机组。
- 在 Parameters 选项卡上,单击 Add Parameter。
-
在 Name 字段中输入
outofsync_interval。 -
从 类型下拉菜单中,选择
整数。 - 在 Value 字段中,以分钟为单位输入新间隔。
- 点 Submit。
9.7. 覆盖单个主机的同步间隔 复制链接链接已复制到粘贴板!
流程
- 在 Satellite Web UI 中,进入到 Hosts > All Hosts。
- 为所选主机点 Edit。
- 在 Parameters 选项卡上,单击 Add Parameter。
-
在 Name 字段中输入
outofsync_interval。 -
从 类型下拉菜单中,选择
整数。 - 在 Value 字段中,以分钟为单位输入新间隔。
- 点 Submit。