第 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 环境
- 
						导航到 Configure 
Environments,再选择 New Puppet Environment。  - 将新环境命名为,然后单击 Submit 以保存更改。
 
请注意,如果 Puppet master 上不存在环境,并且您随后运行导入,则会提示 Satellite 删除环境。
					在注册与生产环境中创建的 Puppet 环境关联的主机组时,Puppet 无法检索 Puppet CA 证书。要创建与主机组关联的适当 Puppet 环境,请按照以下步骤操作:
				
手动创建目录并更改所有者:
mkdir /etc/puppetlabs/code/environments/example_environment chown apache /etc/puppetlabs/code/environments/example_environment
# mkdir /etc/puppetlabs/code/environments/example_environment # chown apache /etc/puppetlabs/code/environments/example_environmentCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 
							导航到 Configure 
Environments,再从 单击 Import environment。按钮名称将包含内部或外部胶囊的 FQDN。  - 选择创建的目录,然后单击 更新。
 
将 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 环境分配给主机组
在创建 主机组 时,环境字段将预先填充(若有)由关联的内容视图自动创建的环境。
默认情况下,创建新主机的用户并选择 主机组 将自动具有预选的环境。用户可以更改新主机的环境。