可能有节点本地配置文件

时间:2017-09-13 07:12:25

标签: puppet

是否可以使用puppet master使用的节点本地配置文件(hiera?)在puppet运行期间编译更新列表?

我的用例是puppet将对用户.bashrc文件和用户主目录进行更改,但我希望能够控制哪些用户在实际节点本身上使用文件,而不是在site.pp清单中

1 个答案:

答案 0 :(得分:2)

  

是否可以使用使用的节点本地配置文件(hiera?)   由木偶大师在木偶运行期间编译更新列表?

当然,有很多方法可以做到这一点。

  

我的用例是puppet将对用户.bashrc文件进行更改   到用户主目录,但我希望能够控制   哪些用户在实际节点本身上使用文件,而不是在site.pp中   清单。

主节点关于目标节点当前状态的所有信息都以节点事实的形式出现,由节点在其目录请求中提供。本地控制下的本地文件(其内容应该用于影响节点自己的目录的内容)将属于该类别。 Puppet支持结构化事实(其值具有任意嵌套列表和/或哈希结构的事实),这应足以将所需数据传递给主服务器。

有两种不同的方法可以将您自己的事实添加到Puppet默认收集的事实中:

  • 为Facter编写一个Ruby插件,让Puppet自动将它分发给节点,或者

  • 用您选择的语言编写外部事实程序或脚本, 并将其作为普通文件资源分发给节点

任何一种变体都可以读取您的数据文件并以适当的形式发出相应的事实(或事实)。 Facter文档包含details about how to write facts of both kinds; “自定义事实”(用Ruby编写的Facter插件)整合得更加干净,但“外部事实”几乎同样适用,对于不熟悉Ruby的人来说更容易。

原则上,您还可以编写一个完整的自定义类型和附带的提供程序,并让在目标节点上运行的提供程序负责读取相应的本地文件。这将需要做更多的工作,并且需要将解决方案的结构与您描述的有所不同。我不建议你解决问题,但我提到它是为了完整。