如何在puppet中包含来自不同目录的模块
我的模块树是这样的如何在puppet中包含来自不同目录的模块,puppet,Puppet,我的模块树是这样的 - modules - socle1 - stdlib - socle2 - ntp 如何在我的站点.pp中包含stdlib模块 我尝试了包含socle1::stdlib,但它不起作用 我是否应该修改init.pp中目录环境的environment.conf 类类名(参数){ include::socle2::ntp } 试试这个,告诉我这是否有效 在init.pp中 类类名(参数){ include::socle2::
- modules
- socle1
- stdlib
- socle2
- ntp
如何在我的站点.pp
中包含stdlib模块
我尝试了包含socle1::stdlib
,但它不起作用
我是否应该修改init.pp中目录环境的environment.conf
类类名(参数){
include::socle2::ntp
}
试试这个,告诉我这是否有效 在init.pp中
类类名(参数){
include::socle2::ntp
}
试试这个,告诉我这是否有效 您不应该将模块放在其他模块中。你的树应该是这样的:
- modules
- socle1
- stdlib
- socle2
- ntp
另外,您很少包含stdlib
,因为stdlib几乎完全是一个类型/函数模块,所以您只会引用它的类型和函数。除非您计划使用它提供的stages功能(感谢John Bollinger对本段的更正),否则您不会声明它的类
但是,在site.pp
中声明ntp
模块非常简单:
include ntp
或:
在
节点{}
内,不应将模块放在其他模块内。你的树应该是这样的:
- modules
- socle1
- stdlib
- socle2
- ntp
另外,您很少包含stdlib
,因为stdlib几乎完全是一个类型/函数模块,所以您只会引用它的类型和函数。除非您计划使用它提供的stages功能(感谢John Bollinger对本段的更正),否则您不会声明它的类
但是,在site.pp
中声明ntp
模块非常简单:
include ntp
或:
在
节点{}
内部,如果您想在单独的树中排列模块,则可以这样做。然后,您应该在环境的modulepath中包含每个基本路径,并通过其常规名称引用模块。请特别注意,更改模块的路径不会更改其名称或其定义的任何类或类型的名称——路径只影响自动加载程序是否能够找到它们
但是,我强烈建议不要创建标准模块目录的子目录。相反,如果要在多个目录中对模块进行分组,请为此目的创建并行模块目录:
- modules
- socle1
- stdlib
- socle2
- ntp
我应该为目录环境修改environment.conf吗
为了支持默认目录以外的任何模块目录或代替默认目录,是的,您应该。puppet文档描述了。但是,请考虑遵循MattSchuchard的建议,而将自己限制在标准模块目录中。 < P>如果您想将模块排列在单独的树中,那么您可以这样做。然后,您应该在环境的modulepath中包含每个基本路径,并通过其常规名称引用模块。请特别注意,更改模块的路径不会更改其名称或其定义的任何类或类型的名称——路径只影响自动加载程序是否能够找到它们 但是,我强烈建议不要创建标准模块目录的子目录。相反,如果要在多个目录中对模块进行分组,请为此目的创建并行模块目录:
- modules
- socle1
- stdlib
- socle2
- ntp
我应该为目录环境修改environment.conf吗
为了支持默认目录以外的任何模块目录或代替默认目录,是的,您应该。puppet文档描述了。但是请考虑遵循MattSchuchard的建议,而不是把自己限制在标准的模块目录中。我总是错误地找不到类::SoCLE::NTP-而不是在你的站点中包含STDLIB。PP,为什么不把它包含在你创建的模块中?您可以在init.pp中包含!我总是错误地找不到class::socle::ntpin除了在站点中包含stdlib.pp之外,为什么不将它包含在您创建的模块中?您可以在init.pp中包含!感谢您的回复,但socle1不是一个模块,它只是一个包含模块的目录。我正在使用r10k,它将帮助我组织很多模块,像这样r10k不会组织子目录内的模块。此外,没有理由使用子目录,这会让Puppet感到困惑。
stdlib
(至少是当前版本)不是一个纯粹的函数/类型模块。它有一个同名类,因此您可以包括stdlib
。该类本身包括::stdlib::stages
,它声明了一组标准(-ish)运行阶段,因此包含stdlib并非没有效果。尽管如此,OP是否真的想这么做仍然值得怀疑。@JohnBollinger StackOverflow似乎从昨天起就失去了我们在这里的评论,但基本上我不记得是否必须包含/声明stdlib才能使用stages,也不必费心检查,因此感谢您澄清这些信息。感谢您的回复,但是socle1不是一个模块,它只是一个包含模块的目录。我正在使用r10k,它将帮助我组织很多模块,像这样r10k不会组织子目录内的模块。此外,没有理由使用子目录,这会让Puppet感到困惑。stdlib
(至少是当前版本)不是一个纯粹的函数/类型模块。它有一个同名类,因此您可以包括stdlib
。该类本身包括::stdlib::stages
,它声明了一组标准(-ish)运行阶段,因此包含stdlib并非没有效果。尽管如此,OP是否真的想这么做仍然值得怀疑。@JohnBollinger StackOverflow似乎从昨天起就失去了我们在这里的评论,但基本上我不记得是否必须包含/声明stdlib才能使用stages,也不必费心检查,因此感谢您澄清这些信息。