Puppet 多次使用木偶模块

Puppet 多次使用木偶模块,puppet,Puppet,我用的是木偶锻造厂的木偶模组- 文档中说明了如何像这样使用它: class {'mssql_system_dsn': dsn_name => 'vcenter', db_name => 'vcdb', db_server_ip => '192.168.35.20', sql_version => '2012', dsn_64bit => true, } 我需要创建多个odbc数据源 但是,如果我简单

我用的是木偶锻造厂的木偶模组-

文档中说明了如何像这样使用它:

class {'mssql_system_dsn':
    dsn_name     => 'vcenter',
    db_name      => 'vcdb',
    db_server_ip => '192.168.35.20',
    sql_version  => '2012',
    dsn_64bit    => true,
}
我需要创建多个odbc数据源

但是,如果我简单地复制这个代码段两次并更改参数,就会得到一个多声明错误

如何多次声明此模块

如何多次声明此模块

如果不修改模块,则无法执行此操作。虽然如果使用类似include的语法,可以多次声明同一个类,但这并不能为不同的声明使用不同的参数。这一切都与木偶类是单例的事实有关。我可以在快速回顾的基础上确认,它的设计不支持定义多个数据源

我鼓励您向模块作者提交增强请求。如果这不能很快产生效果,那么您可以选择自己修改模块。这看起来是可行的,但不像将
关键字更改为
定义
那么简单

如何多次声明此模块

如果不修改模块,则无法执行此操作。虽然如果使用类似include的语法,可以多次声明同一个类,但这并不能为不同的声明使用不同的参数。这一切都与木偶类是单例的事实有关。我可以在快速回顾的基础上确认,它的设计不支持定义多个数据源


我鼓励您向模块作者提交增强请求。如果这不能很快产生效果,那么您可以选择自己修改模块。这看起来是可行的,但不像将
关键字更改为
定义
那么简单

由于作者没有回答我的请求,也没有合并来自另一个贡献者的请求,我创建了自己的模块


如果有人有足够的兴趣审查我的模块代码并提供改进,或者当我没有遵循最佳实践时通知我,我将不胜感激

,因为作者没有回答我的请求,也没有合并来自另一个参与者的请求,我创建了自己的模块


如果有人有足够的兴趣审查我的模块代码并提供改进,或者当我没有遵循最佳实践时通知我,我将不胜感激

在假设所有这些都在同一节点上的情况下,在问题更新之前,这基本上是正确的。@MattSchuchard,由于OP描述了试图通过复制给定声明并修改其参数来实现其目标失败的情况,因此有理由推断他想要在同一节点上声明多个数据源。是的。你是对的,当我说我想创建多个数据源时,它在同一台机器上。是否有人对修改模块以支持此功能的最佳方式有意见?对于这种类型的资源来说,这不是有点奇怪吗我想不出一个好的理由来解释为什么作者在设计模块时将数据源限制为每个节点一个。@djnz,是的,这是一个奇怪的设计。模块作者似乎没有考虑到任何人都希望在每台机器上管理多个数据源的可能性。该类应该是一个已定义的类型,或者它应该依赖于一个也可以直接使用的已定义类型。我不准备给出修改的具体说明,事实上,我建议在考虑分叉模块之前向模块作者提出增强请求。@djnz听起来不错。我可以继续删除我那拙劣的过于乐观的变通方法。在假设所有这些都在同一个节点上的前提下,在问题更新之前,这基本上是正确的。@MattSchuchard,因为OP描述了复制给定声明并修改其参数试图实现其目标的失败,可以得出这样的结论:他希望在同一节点上声明多个数据源。是的。你是对的,当我说我想创建多个数据源时,它在同一台机器上。是否有人对修改模块以支持此功能的最佳方式有意见?对于这种类型的资源来说,这不是有点奇怪吗我想不出一个好的理由来解释为什么作者在设计模块时将数据源限制为每个节点一个。@djnz,是的,这是一个奇怪的设计。模块作者似乎没有考虑到任何人都希望在每台机器上管理多个数据源的可能性。该类应该是一个已定义的类型,或者它应该依赖于一个也可以直接使用的已定义类型。我不准备给出修改的具体说明,事实上,我建议在考虑分叉模块之前向模块作者提出增强请求。@djnz听起来不错。我可以继续删除我那拙劣的过于乐观的解决方法。