11.16 http://yum.puppetlabs.com and http://apt.puppetlabs.com 是puppet的rhel及其派生系统和debian和派生系统的源。
11.16 如果你希望puppet帮助你管理客户端的密码需要安装: ruby-shadow
11.16 调整agent更新时间,在puppet.conf的agent中添加runinterval=3600 也就是1小时。默认是半小时
11.16 [2012-02-04 modify ]     关于source与fileserver的关系的测试

条件:

当前master端使用的puppetmaster版本为:2.7.1
图片
agent端使用的puppet版本为下图所示:
图片

puppetmaster安装完成后,一般/etc/puppetmaster的目录结构为:

图片
 
当我们从服务器端同步文件到agent端时,都希望真实的路径对于客户端是不可见的。在puppet中也提供了这个功能,让我们隐藏真实的路径。这需要我们在上图filesever.conf这个文件中进行设置。

1: 不启用 fileserver的情况下:

默认的情况下,fileserver中的设置是不启用的。这个时候,如果要启用source的功能,只能把文件放入自定义的模块中。
这个时候我们可以自己在/etc/puppet/modules/下面建立这个特定的模块文件夹(因为这个文件夹不依赖其他的文件,因此可以自己随意更改名称,在此名称设定成为 cui),之后在里面建立files文件夹,之后把文件(此处设定为test文件)添加到里面就可以了。这个时候文件的路径变成

/etc/puppet/modules/cui/files/test  
如下图所示:

图片

这个时候,我们可以将/etc/puppet/manifests/site.pp中的souce设定成为 
source=>'puppet:///modules/cui/test'
如下图所示:

图片

这个时候在agent端就可以更新文件了:

图片
 

当在site.pp等配置文件中,用source来指定文件服务器上文件的位置的时候,需要在/etc/puppet/fileserver.conf中设置权限,来掩饰真实的路径,正常应该如下设置
[files] 
path /var/lib/puppet/files

2: 启用 fileserver的情况下: 

在fileserver.conf中下面设置:

图片
 
我们在/etc/puppet/manifests/site.pp中是这样设置的, 也就是添加了下面一条file 资源

图片

这样我们只需要建立这样的一个文件:/a/b/c/zz 

之后就可以在客户端同步文件

图片
 
一共同步了2个文件,一个是modules中相应的模块设置的,一个是利用虚拟路径同步的。


所以上面的这些东西为我之前的迷糊找到了答案:

之前的的问题是这样的【用斜粗体字标示】:

我一直用modules作为filesever.conf文件中虚拟路径的名称,但是就出现了如下的问题:

[root@client tmp]# puppet agent --verbose --no-daemonize --server server.example.com
notice: Starting Puppet client version 2.7.6
info: Caching catalog for client.example.com
info: Applying configuration version '1321395221'
err: /Stage[main]//File[/tmp/sudoersdddddddddd]: Could not evaluate: Could not retrieve information from environment production source(s) puppet://server.example.com/modules/b/c.sh at /etc/puppet/manifests/site.pp:5
notice: Finished catalog run in 0.22 seconds

而如果不哟偶那个modules命名那就不会出现问题。比较奇怪,以后起名一定要是个个性的名字,要不就会有问题。

原因就在这里,因为modules这个名称是有固定含义的。