0

我知道 puppet 模块总是有一个 files 目录,我知道它应该在哪里,并且我已经从我自己的手写模块中有效地使用了source =>语法,但现在我需要学习如何使用 Hiera 部署文件。

我从 saz-sudo 模块开始,我已经阅读了文档,但我看不到任何关于将 sudoers 文件放在哪里的信息;我要分发的那个。我不确定是否需要在 /etc/puppetlabs/puppet 中设置站点范围的文件目录,然后在其中为每个模块或其他内容创建子目录。如果我说source => "puppet:///files/etc/sudoers" ,Hiera 是否知道查看 /etc/puppetlabs/puppet/files/sudo ?我需要在 /etc/hiera.yaml 中添加路径名吗?添加一行-文件

感谢您提供任何线索。

4

3 回答 3

1

鉴于他们使用 hiera 的示例,我对 puppet 模块的粗略看法:

sudo::configs:
'web':
    'source'    : 'puppet:///files/etc/sudoers.d/web'
'admins':
    'content'   : "%admins ALL=(ALL) NOPASSWD: ALL"
    'priority'  : 10
'joe':
    'priority'  : 60
    'source'    : 'puppet:///files/etc/sudoers.d/users/joe'

建议假设您有一个“文件”木偶模块。所以在你的傀儡模块部分:

mkdir -p files/files/etc/sudoers.d/

把你的文件放在那里。

解释:

url 'puppet:///files/etc/sudoers.d/users/joe' 被分解如下:

puppet: protocol
///:  Three slashes indicate the source of the file is in a module.
files: name of the module
etc/sudoers.d/users/joe:  full path to the file within the module's "files" directory.
于 2014-05-26T22:56:46.423 回答
0

Hiera 不需要对文件做任何事情。

Hiera 就像一个变量数据库,以及基于您拥有的层次结构的服务器。

puppet 中的文件通常通过source =>等方法访问,但这些文件也使用一些基本结构。

在大多数情况下,当您调用文件模板时。

模板可以满足您的需求,以便在此基础上自动构建 sudoers。还有一些模块也支持修改 sudoers。

做什么取决于你。

在这种情况下,saz 将文件的位置存储在 hiera 中,但实际位置可以是 puppet 中的文件(如模块文件或类似文件)。

这是完全无关的。阅读puppet 文件服务器

如果你有问题,就问吧。

于 2015-03-14T21:48:42.270 回答
0

你没有。

模块(无论是否支持 Hiera)的想法是消除您管理整个 sudoers 文件的需要。相反,您可以管理 sudoers 文件中的每个条目。

我建议仔细查看文档。您绝对应该在清单中包含file { "/etc/sudoers": }资源。

于 2014-05-26T12:38:45.410 回答