puppet的文件应用

来源:互联网 发布:吉他软件效果器正版 编辑:程序博客网 时间:2024/06/08 11:11

使用Puppet我们可以通过编写一些简单的脚本来对server和agent的文件进行操作与通信
比如说我们需要在agent上创建一个指定内容的文本文件,我们年可以使用puppet如下操作
在server端先开启puppet服务

systemctl start puppetmaster

然后在server端上编写脚本,脚本名为site.pp在/etc/puppet/manifests/下,文件编写如下

node default{file {"/tmp/test1.txt":content =>"test test \n",ensure => present,mode => 644,owner => root,group => root}}

基础结构如下
类型{标题:
属性=>值,
}
然后在客户端执行以下命令

puppet agent --test --server zyc.dhcp

返回信息如下

Info: Retrieving pluginfactsInfo: Retrieving pluginInfo: Caching catalog for saltstackInfo: Applying configuration version '1505116191'Notice: /Stage[main]/Main/Node[default]/File[/tmp/test1.txt]/content: --- /tmp/test1.txt  2017-09-11 02:57:16.820747955 -0400+++ /tmp/puppet-file20170911-8943-jsom5l    2017-09-11 03:49:50.972747955 -0400@@ -1 +1 @@-hello my name is shabi! +test test Info: Computing checksum on file /tmp/test1.txtInfo: /Stage[main]/Main/Node[default]/File[/tmp/test1.txt]: Filebucketed /tmp/test1.txt to puppet with sum 76644da2384b8ce4d123daa6164b5887Notice: /Stage[main]/Main/Node[default]/File[/tmp/test1.txt]/content: content changed '{md5}76644da2384b8ce4d123daa6164b5887' to '{md5}7a3d9e60e18f833232141434944cb35c'Notice: Finished catalog run in 0.19 seconds

当然因为在content中有内容描述,所以如果在客户端没有这个文件会自动创建按照给的权限和所有组和所有用户,如果脚本中有修改再次执行以上命令,文件的内容也会修改,并且显示在返回信息中。

我们如果需要对客户端推送本地文件,同样也可以通过编写脚本文件。首先我们需要修改/etc/puppet/fileserver.conf文件,让定义好虚拟目录和允许的地址,我们为了方便写为允许所有用户

vim /etc/puppet/fileserver.conf

编写如下

[files]    path /usr/local                                      allow *   

随后修改site.pp文件如下

node default{file {"/tmp/1":source =>"puppet://zyc.dhcp/files/test",mode => 644,owner => root,group => root}}

执行命令以后返回结果如下

Info: Retrieving pluginfactsInfo: Retrieving pluginInfo: Caching catalog for saltstackInfo: Applying configuration version '1505117467'Notice: /Stage[main]/Main/Node[default]/File[/tmp/1]/ensure: defined content as '{md5}d41d8cd98f00b204e9800998ecf8427e'Notice: Finished catalog run in 0.15 seconds

如果需要强制推送文件夹我们的site.pp需要这样编写

node default{file {"test":source =>"puppet://zyc.dhcp/files/src",rescurse => true,        #递归复制ensure =>directory,    #确保客户端有这个目录force => true            #强制删除或者覆盖已经有的目录}}

file的参数
ensure: 指定是否创建删除文件或者是目录,有present
、absent还有direcotory等
force:执行强制删除或者覆盖文件、软链接或者目录的操作
group:指定文件或目录的所有组,也可以是gid
ignore:指定在递归期间对符合指定模式的文件进行的操作会忽略

links:指定处理文件时对链接的操作,可以设置为follow和manange,follow会复制目标文件来代替链接文件,manage只会复制链接文件.
mode: 指定文件或目录权限
owner:指定文件的所有用户
path:指定文件管理的路径
recurse:指定是否进行递归调用
source:指定将会复制到指定位置的资源文件
target:指定创建文件的目标文件或者目录

原创粉丝点击