实例一、文件分发
描述:通过puppet服务端可以向被管理机(客户端)上推送文件,方法是使用file类型的source属性

第一步:#vi /etc/puppet/fileserver.conf  
1    [files]
2    path /opt/              # 设置文件推送到目录
3    allow 192.168.133.0/24  # 设置准许连接到服务端的主机地址

第二步:vi /etc/puppet/manifests/site.pp
1    file
2    { "/opt/mysql-5.1.49-linux-i686-icc-glibc23.tar.gz":
3    source => "puppet://$puppetserver/files/mysql-5.1.49-linux-i686-icc-glibc23.tar.gz",
4    }  
5    //设置服务器上/opt目录下的mysql-5.1.49-linux-i686-icc-glibc23.tar.gz为被传送文件
6    //此处“$puppetserver”是Puppet Server端的名称,即hostname,在hosts文件里指定,生产环境下用内部的DNS上作解析

第三步:
在客户端执行更新命令
1    #puppetd --test --server server.puppet

实例二、修改文件属性

描述:把/tmp/dd142/ puppet-2.6.13.tar.gz文件的权限改为puppet用户,并设置权限为666。

第一步:编辑服务端的site.pp
vi /etc/puppet/manifests/site.pp
------------------------------------------------------
1    file
2    { "/tmp/dd142/puppet-2.6.13.tar.gz":
3    owner => "puppet",
4    group => "puppet",
5    mode => 666,
6    }

第二步:在客户端执行命令
1    #puppetd --test --server server.puppet

实例三、执行SHELL命令或shell脚本
描述:通过puppet分发执行shell脚本,在客户端的opt目录下新建一目录shelldir。

第一步:编辑服务端的site.pp
1    vi /etc/puppet/manifests/site.pp
2    ---------------------------------------------
3    exec { "exec-mkdir":
4    cwd => "/opt",      //切换到命令行运行时目录
5    command => "sh /opt/lgh.sh",
6    user => "root",
7    path => "/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin",
8    }

第二步:在客户端编辑上一步command路径中指定的shell脚本,例如
1    vi /opt/lgh.sh
2    ---------------------------------------------
3    #!/bin/bash
4    mkdir /opt/shelldir

第三步:在客户端执行命令
1    # puppetd --test --server server.puppet

在/opt目录下查看shelldir目录有没有建立。

实例四、cron计划任务
描述:接上面的shell程序实例,在17:30执行/opt/lgh.sh。

第一步:编辑服务端的site.pp
1    vi /etc/puppet/manifests/site.pp
2    ---------------------------------------------
3    cron { "cron-shell": #title部分,可用来作为注释。
4    command => "sh /opt/lgh.sh" #要执行的命令
5    user => "root", #添加到root用户下的crontab中
6    minute => "30", #即第一个星号
7    hour => "17" #即第二个星号
8    }

第二步:在客户端执行命令
puppetd --test --server server.puppet

然后在客户端使用#crontab -l查看效果

1    [root@client ~]# crontab -l
2    # HEADER: This file was autogenerated at Mon Nov 04 16:56:25 +0800 2013 by puppet.
3    # HEADER: While it can still be managed manually, it is definitely not recommended.
4    # HEADER: Note particularly that the comments starting with 'Puppet Name' should
5    # HEADER: not be deleted, as doing so could cause duplicate cron jobs.
6    # Puppet Name: cron-shell
7    30 17 * * * sh /opt/lgh.sh

实例五、服务检查及状态修改
    描述:可以通过puppet对一些服务进行检查。puppet是通过service命令操作的。所以,只能针对在/etc/init.d/目录下的服务

实例:把客户端的防火墙起来

第一步:编辑服务端的site.pp
vi /etc/puppet/manifests/site.pp
----------------------------------------------
service
{ iptables:
ensure => "running",
}

第二步:在客户端执行命令
puppetd --test --server server.puppet

最新文章

  1. 纯JS实现可拖拽表单
  2. Caffe学习系列(12):不同格式下计算图片的均值和caffe.proto
  3. TCP/IP详解--连接状态变迁图CLOSE_WAIT
  4. 命令参数解析库JCommonder
  5. Shell脚本编程初体验
  6. 【转】利用Pspice分析放大器环路的稳定性
  7. poj2492 带权并查集
  8. light oj 1068 - Investigation 数位DP
  9. python流程控制语句 for循环 - 1
  10. JAVA线程优化
  11. Scrambled Polygon - POJ 2007(求凸包)
  12. codevs1041
  13. fedora 下安装 文泉驿正黑体
  14. Hdu 1079 Calendar Game
  15. 【译】ASP.NET MVC 5 教程 - 8:搜索查询
  16. 网站网址前的小logo
  17. 201521123009 《Java程序设计》第1周学习总结
  18. MSIL实用指南-一维数组的操作
  19. [Swift]LeetCode319. 灯泡开关 | Bulb Switcher
  20. oracle 12C版本的下载安装

热门文章

  1. 【JTA】JTA允许应用程序执行分布式事务处理
  2. MVC去掉传参时的验证:从客户端中检测到有潜在危险的Request.QueryString值
  3. Tesseract 3 语言数据的训练方法
  4. 朴素贝叶斯文本分类java实现
  5. html5判断用户摇晃了手机(转)
  6. MyEclipse使用自己的JDK和Tomcat
  7. BT5升级MSF至Git更新的方法
  8. DHTMLX 前端框架 建立你的一个应用程序 教程(六)-- 表格加载数据
  9. comm命令——
  10. SPRING IN ACTION 第4版笔记-第三章ADVANCING WIRING-008-SpEL介绍