TLDR版本:鉴于fileserver.conf的正常使用,如何构build一个真正可以工作的puppet URL?
。
我正在尝试开始使用Puppet和一些虚拟实例。 对于第一个任务,我试图使用文件types来分发authorized_keys文件。 是的,它可以用ssh授权的密钥types来完成,但这是关于现在的文件分发 ,对吧?
文件服务wiki意味着我应该构build的path。 首先,这是puppetmasterd知道的:
$ grep -B 1 path /etc/puppet/fileserver.conf [files] path /etc/puppet
其次,我创build了一个文件/etc/puppet/modules/ssh/manifests/init.pp
,它包含以下内容:
$ cat /etc/puppet/modules/ssh/manifests/init.pp class ssh { file { "/home/ubuntu/.ssh/authorized_keys": source => "puppet:///modules/ssh/authorized_keys", mode => 400, owner => ubuntu, group => ubuntu } file { "/home/ubuntu/.ssh": ensure => directory, mode => 700, owner => ubuntu, group => ubuntu } notify {"all done.":} } # declare class class {'ssh':}
当我直接运行文件时,它以下列方式失败:
$ puppet apply --verbose /etc/puppet/modules/ssh/manifests/init.pp info: Applying configuration version '1357516270' notice: all done. notice: /Stage[main]/Ssh/Notify[all done.]/message: defined 'message' as 'all done.' err: /Stage[main]/Ssh/File[/home/ubuntu/.ssh/authorized_keys]: Could not evaluate: Could not retrieve information from environment production source(s) puppet:///modules/ssh/authorized_keys at /etc/puppet/modules/ssh/manifests/init.pp:7 notice: Finished catalog run in 0.04 seconds
我试过几个版本的木偶源链接。 例如:
puppet:///modules/ssh/authorized_keys puppet:///authorized_keys
这是authorized_keys文件实际驻留的地方:
$ ls -l /etc/puppet/modules/ssh/files/authorized_keys -rw------- 1 root root 796 Jan 6 23:30 authorized_keys
这种“init.pp”和“files / *”模式看起来与Advanced Puppet Pattern wiki条目相匹配。
这是我的傀儡版本,为了完整性。
$ puppet --version 2.7.18
为了表明我没有做“解决我的简单问题”或“做我的作业”的事情,我一直在努力寻找这个基本问题的答案。 我已经包含上面的链接引用来源,我也看过其他的 答案 。 我已经看到了authentication问题( 1,2 )的故障,但是这是本地的。 令人恼火的是, 这看起来非常接近,但很难转向stream浪 ,虽然有一个答案 ,谈论[modules]
部分,而不是[files]
部分,这在维基中不存在。 这是一个最近的“官方邮件列表”线程 ,但是我无法弄清楚我做错了什么。
确保类似这样的东西被设置到您的主站上的puppet.conf模块的path
modulepath = /etc/puppet/modules
如果你那么做一些像
source => "puppet:///modules/ssh/authorized_keys",
如果将查找文件中
/etc/puppet/modules/ssh/files/authorized_keys
编辑:
你正在混合模块btw文件..他们是两个完全不同的东西。 通常每个人都使用模块这些天,从来没有触及[文件],因为它太乱了。
主人的任何日志?
该位置是正确的,但我怀疑文件上的600
模式阻止文件服务器能够读取它,因为木偶主进程通常作为非root用户(默认情况下, puppet
)运行。
检查日志,但文件上的模式更改可能会诀窍。