如何逐字读取 Puppet 中的整个文件(不像模板那样进行解析)?

如何逐字读取 Puppet 中的整个文件(不像模板那样进行解析)?

我需要创建一堆ssh_authorized_keys资源。资源期望它的key属性是公钥本身——没有办法引用文件包含密钥。

因为密钥很长,而且我已经将它们保存在文件中,所以我宁愿让 Puppet 从文件中读取它们,而不是在清单中引用它们。

我还可以想象一些其他用例。

是否已有一个函数可以读取指定的文件逐字,而不试图像那样解释它们template()

对于公钥,我实际上可以侥幸逃脱template(),但这会带来解析尝试的开销。此外,在其他一些情况下,根据文件的内容,解析实际上可能会“失败”,或者更糟的是,不会失败,但会悄悄地更改内容……

答案1

是否已有一个函数可以逐字读取指定文件,而无需像 template() 那样尝试解释它们?

file()函数将读取并返回 Puppet master(或目录编译的任何位置)上的文件内容,类似于template()您描述的那样。

使用路径调用它,例如在模块路径中ssh_keys/foo.key加载文件。ssh_keys/files/foo.key

请注意,此功能需要 Puppet 3.7 或更高版本才能以与 相同的方式从 modulepath 加载template()。在此之前,它仅适用于绝对路径,尽管在每个主要版本中都有。

答案2

使用资源类型file具有定义的属性source。我的 puppet 环境用于管理 ssh 密钥,实际上只是将 ~/.ssh/authorized_keys 文件作为文件导入。

相关内容