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:指定创建文件的目标文件或者目录
- puppet的文件应用
- puppet 应用
- Puppet: Puppet是如何找到你写在Manifests文件的配置的
- puppet 安装及应用
- RedHat6.5 puppet配置(四)- 默认路径下的文件以及puppet命令解析
- 自动化运维平台puppet的高级应用
- puppet 文件服务配置
- puppet 入口文件site.pp 和init.pp 的使用
- puppet-template, Boxen的Puppet 模块示例
- Puppet的fileserver注意事项
- Puppet的安装部署
- Puppet学习之文件管理
- puppet
- Puppet
- puppet
- puppet
- Puppet
- puppet
- coursera机器学习课程——Programming Exercise 1:Linear Regression(选做部分)
- JavaScript判断object/json 是否为空
- Android 使用LitePal操作数据库
- Java实现Excel导入导出的工具类
- CJE log likelihood
- puppet的文件应用
- webpack学习
- 使用opencv给图像添加高斯噪声
- 线程间的四种通信方式
- Javascript优化后的加减乘除(解决js浮点数计算bug)
- bzoj3694 最短路(最短路+树链剖分维护最小值)
- leetcode解题方案--002--AddTwoNumbers
- Spring框架概述
- CentOS 6.2最小化安装后再安装图形界面