3.5. 使用多个自定义事实
以下是在 Puppet 智能类参数匹配器中创建和使用多个自定义事实及其值的示例。
先决条件
- 您已导入了 Puppet 环境,并在 Satellite 中使用智能类的 Puppet 模块。
 - 您已将客户端置备并注册到 Satellite。
 对于没有由 Satellite 置备的客户端,检查客户端是否已如 第 6.2 节 “将配置应用到现有客户端” 所述配置。
在客户端上,创建两个或更多自定义事实,并为它们分配值。例如:
vi /etc/facter/facts.d/my_custom_facts
# vi /etc/facter/facts.d/my_custom_facts #! /bin/bash echo example_fact1=myfact1 echo example_fact2=myfact2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在客户端中配置文件权限:
chmod a+x /etc/facter/facts.d/my_custom_facts
# chmod a+x /etc/facter/facts.d/my_custom_factsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在客户端上,检查事实及其对应值:
facter | grep example
# facter | grep example example_fact1 => myfact1 example_fact2 => myfact2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Satellite Web UI 中:
- 导航到 Configure > Classes 并选择您要配置的 Puppet 类。
 - 点击 Smart Class Parameter 选项卡,然后选择您要覆盖的参数。
 - 在 Default Behavior 区域,选中 Override 复选框。
 - 
										在 Prioritize Attribute Order 区域( Order 字段中),将示例事实添加到列表的末尾。要在两个事实之间创建逻辑 AND 条件,将其添加为逗号分隔列表 
example_fact1,example_fact2。 - 选择 Add Matcher。
 - 
										从 Attribute 类型 菜单中,选择 
example_fact1,example_fact2,然后在=符号后面的框中选择myfact1,myfact2。 - 在 Value 字段中,为两个属性及对应的值输入您要发送到内容主机的值。
 - 点 Submit。
 
在客户端上,将事实从客户端发送到 Puppet 宿主:
puppet agent --test
# puppet agent --testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Satellite Web UI 中:
- 导航到 Hosts > Content Hosts 并选择 Content Host 的名称。
 - 
										点 YAML 并找到 
class部分。检查 参数是否具有您想要的值。