15、利用 Hiera 实现数据与代码分离

利用 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
}

现在类可以依赖于单独的变量值,因此

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值