Puppet 4:未来配置管理的新趋势
1. 内部代码结构
内部代码不再使用 setcode 语句定义,而是被分割成不同的代码块。以下是两个示例代码块,一个用于收集接口的 MAC 地址,另一个用于定义 IPv4 地址:
chunk(:macaddrs) do
interfaces = {}
Sysfs.net_devs.each do |dev|
interfaces[dev.name] = {
'macaddr' => dev.macaddr,
'macbrd' => dev.macbrd,
}
end
interfaces
end
chunk(:ipv4) do
interfaces = {}
Facter::Util::IP.get_interfaces.each do |interface|
interfaces[interface] = {
'ipaddress' => Facter::Util::IP.get_ipaddress_value(interface),
'netmask' => Facter::Util::IP.get_netmask_value(interface),
}
end
interfaces
end
这两个代码块的值会被合并并以单个哈希形式返回。在具有聚合解析的事实中,还可能会有聚合块,它可以用特定逻辑汇总和合并现有代码块的值。
超级会员免费看
订阅专栏 解锁全文
66

被折叠的 条评论
为什么被折叠?



