利用 Hiera 实现数据与代码分离
1. 在清单中定义数据的后果
在 Puppet 清单中处理微观管理问题有多种方法。最直接的方法是为每个单独的节点定义一组类,示例如下:
class site::mysql_server01 {
class { 'mysql': server_id => '1', … }
}
class site::mysql_server02 {
class { 'mysql': server_id => '2', … }
}
…
class site::mysql_aux01 {
class { 'mysql': server_id => '101', … }
}
这种方法维护成本高,原因如下:
- 每个单独的类可能会变得非常复杂,因为每个类都必须使用所有必需的 mysql 类参数。
- 参数之间存在大量冗余,实际上,所有节点中的某些参数是相同的。
- 各个不同的值很难发现,并且必须在整个类集合中仔细保持唯一。
- 只有将这些类放在一起才真正可行,这可能与代码库的其他组织原则冲突。
更经济的方法是通过变量传递节点之间不同的值。变量值在各自的节点块中分配:
node 'xndp12 - sql09' {
$mysql_server_id = '103'
include site::mysql_server
}
现在类可以依赖于单独的变量值,因此
超级会员免费看
订阅专栏 解锁全文
9

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



