puppet的文件应用

使用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 pluginfacts
Info: Retrieving plugin
Info: Caching catalog for saltstack
Info: 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.txt
Info: /Stage[main]/Main/Node[default]/File[/tmp/test1.txt]: Filebucketed /tmp/test1.txt to puppet with sum 76644da2384b8ce4d123daa6164b5887
Notice: /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 pluginfacts
Info: Retrieving plugin
Info: Caching catalog for saltstack
Info: 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:指定创建文件的目标文件或者目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值