Module Puppet:自动包含所有子类?

Module Puppet:自动包含所有子类?,module,vagrant,puppet,Module,Vagrant,Puppet,我正在用vagrant和puppet CentOs配置多个系统。我有一个模块,它应该通过主机名模块“hosts”使它们相互了解 每台机器都会生成一个名为like-itself的子类,具有自己的主机名和ip,例如:hosts::machine1 现在我的问题是,它们都必须包含在要执行的主机模块的init.pp中。机器名称和计数因运行而异 目前,我手动包含每个子类,包括hosts::machine1、include hosts::machine2 那么现在我的问题是: 是否有可能包含模块的所有子类?

我正在用vagrant和puppet CentOs配置多个系统。我有一个模块,它应该通过主机名模块“hosts”使它们相互了解

每台机器都会生成一个名为like-itself的子类,具有自己的主机名和ip,例如:hosts::machine1

现在我的问题是,它们都必须包含在要执行的主机模块的init.pp中。机器名称和计数因运行而异

目前,我手动包含每个子类,包括hosts::machine1、include hosts::machine2

那么现在我的问题是: 是否有可能包含模块的所有子类?还是文件夹

或者有什么更好的方法来解决这个问题


问候

我不知道是否可以让流浪汉和木偶对话。如果可以的话,你可能应该用这个

每个节点导出自己的条目

@@host { $fqdn: ip => $ipaddress, tag => 'my-cluster' }
每个注释导入所有条目

Host<<| tag == 'my-cluster' |>>
# also realize own export:
Host<|  tag == 'my-cluster'  |>

不需要在类中生成傀儡代码。您可以生成顶级作用域代码

# manifests/machine1.pp
host { 'machine1': ip => 'x.x.x.x' }

确保将Vagrant配置为使用整个清单/目录作为清单。然后,将尊重包含在.pp文件中声明的所有资源。

感谢您的建议。但我正在为我的机器进行资源调配。。所以主机2,3的ip,。。主机1将不在此群集中!还是我错了?很好的一点-只有当puppet在你的虚拟机上定期运行时才有意义,而不是像Vagrant那样。