为了测试我的puppet模块,我通常只在虚拟机上使用puppet apply
。在该测试场景中,没有木偶大师或ENC可用。
我的模块很多都使用参数。那么如何使用不同的参数测试模块而无需对其进行硬编码呢?
答案 0 :(得分:2)
您需要像在清单中一样包含带有参数的类,例如
class { 'foo':
param1 => 'value',
}
puppet apply
可以将清单作为-e
的参数,在文件中或在stdin上,因此您可以运行:
puppet apply -e "class { 'foo': param1 => 'value', param2 => 'value2' }"
或将class { 'foo': ... }
放入test.pp并运行puppet apply test.pp
。
或者最后,运行puppet apply
,将class { 'foo': ... }
内容输入/粘贴到标准输入,然后按Ctrl+D
结束输入并运行它。
答案 1 :(得分:1)
假设您至少使用Puppet 3,最简单的操作方法可能是在测试环境中设置Hiera,并依靠自动数据绑定为类参数赋值。实际上,这也是 将数据绑定到主服务器上的类参数的最佳想法,并且在测试环境中使用相同的方法将使您有机会一起测试数据和清单。