第 3 章 在 Red Hat Satellite 中添加 Puppet 模块

您可以从 Puppet 服务器上的模块导入 Puppet 类,并分类了类所属的主机和 Puppet 环境。您还可以自定义分配的类的参数。这样,您可以控制通过外部节点分类器(ENC)将哪些参数传递给主机上的 puppet-agent。

3.1. Puppet 环境

Puppet 环境定义为一组隔离的 Puppet 代理节点,可与一组特定的 Puppet 模块关联。在卫星环境中,我们可以将 Puppet 环境视为一组运行与一组 Puppet 模块关联的 Puppet 代理的主机。例如,与环境 Production 关联的节点只能访问 环境 Production 中的模块。

Puppet 环境用于将 Puppet 模块与不同类型的主机分隔开。典型的用途是启用在一个环境中测试模块的更改,然后再推送到另一个环境。Puppet 模块可以包含事实和功能,以及您可以分配给主机的一个或多个 Puppet 类。模块是环境的一部分,Puppet 类只是环境的一部分,因为它们是模块的一部分。

在 Red Hat Satellite 中,如果 CV 有 Puppet 模块,则会自动为内容视图创建一个 Puppet 环境。自动创建的 Puppet 环境名称包括组织标签、生命周期环境、内容视图名称和内容视图 ID。例如,KT_Example_Org_Library_RHEL6Server_3

在 Red Hat Satellite 中创建 Puppet 环境

  1. 导航到 ConfigureEnvironments,再选择 New Puppet Environment
  2. 将新环境命名为,然后单击 Submit 以保存更改。

请注意,如果 Puppet master 上不存在环境,并且您随后运行导入,则会提示 Satellite 删除环境。

注意

在注册与生产环境中创建的 Puppet 环境关联的主机组时,Puppet 无法检索 Puppet CA 证书。要创建与主机组关联的适当 Puppet 环境,请按照以下步骤操作:

  1. 手动创建目录并更改所有者:

    # mkdir /etc/puppetlabs/code/environments/example_environment
    # chown apache /etc/puppetlabs/code/environments/example_environment
  2. 导航到 ConfigureEnvironments,再从 单击 Import environment。按钮名称将包含内部或外部胶囊的 FQDN。
  3. 选择创建的目录,然后单击 更新

将 Puppet 环境导入到 Red Hat Satellite

卫星可以检测 Puppet master 中包含的所有环境和 Puppet 模块,再自动导入它们。要做到这一点,进入 Configure > Environments 并点 Import from 按钮。按钮名称将包含内部或外部胶囊的 FQDN。卫星将通过胶囊扫描 Puppet 宿主,并显示检测到的更改的列表。选择您要应用的更改,然后选择 Update 以应用更改。

请注意,胶囊将仅检测包含一个或多个 Puppet 类的环境,因此请确保至少有一个包含类的 Puppet 模块已部署到 Puppet 宿主。

将 Puppet 环境分配给主机

导航到 Hosts > All Hosts,从 Hosts 列表中选择一个主机名,然后选择 Edit。在 Host 选项卡上,您可以为主机 选择 Puppet 环境。选择一个环境将过滤 Puppet Classes 选项卡中的类,以帮助区分所选环境中的类。

您可以将环境重新分配到一组主机。在 Hosts 列表中选择所需主机的复选框,然后从页面顶部的 Select Action 下拉菜单中选择 Change Environment

将 Puppet 环境分配给主机组

在创建 主机组 时,环境字段将预先填充(若有)由关联的内容视图自动创建的环境。

默认情况下,创建新主机的用户并选择 主机组 将自动具有预选的环境。用户可以更改新主机的环境。