puppet配置模块(一)

模块是puppet的最大单元,模块里面有类,类下面有资源。同步文件、远程执行命令、cron等叫做资源,都是通过模块来实现的。下面我们来定义一个模块:

在服务端上做如下操作:
mkdir /etc/puppet/modules/testm  //模块名字就是 testm
cd   /etc/puppet/modules/testm

mkdir {files,manifests,templates}   //一个模块下需要有这三个目录,files存一些文件(可以为空),manifests存配置文件,templates存模板(可以留空)
touch manifests/init.pp  //这个是必须的
vi  manifests/init.pp   //内容如下
class testm{
file {"/tmp/2.txt":
owner => "root",
group => "root",
mode => 0400,
source => "puppet://$puppetserver/modules/testm/1.txt"
}
}
说明:类名字也叫做testm, 类下面定义了一个资源file,文件名字叫做/tmp/2.txt ,owner,group,mode定义文件的属主、数组以及权限,source定义这个文件从哪里获取。 $puppetserver一会也要定义一下,这里指的是puppet server服务器上/etc/puppet/modules/testm/files/1.txt

puppet配置模块(二)

下面要继续定义一个很关键的配置文件:
vim  /etc/puppet/manifests/site.pp   //内容如下
$puppetserver = 'web9.xuan.com'
node 'web10'{
    include test
}
说明:$puppetserver 定义服务端的主机名,node后面为客户端的主机名,这里面定义该客户端要加载的模块
配置完成后,在客户端执行命令:
puppet agent --test  --server=web9.xuan.com   //如果客户端上启动了puppet服务,不用执行这命令,它也会自动同步的

puppet文件或目录资源(1)

上面的模块其实只是同步了一个文件而已,那么要想同步一个目录如何做?我们可以通过实现同步一个目录来做一个包发布系统。 比如在一台机器上编译安装好了apache,那么就可以通过这样的模块把这个apache目录整个分发到其他机器上。

这是在服务端上的配置
模块配置文件如下:

vi   /etc/puppet/modules/testm/manifests/init.pp

class apache{
file {"/usr/local/apache2":                              (对方机器所在的目录)
owner => "root",
group => "root",
source => "puppet://$puppetserver/modules/testm/apache2",               (这个是从哪里下载)
recurse => true,                                     (针对目录的)
purge => true                                         (支持删除操作)
}
}

cd   /etc/puppet/modules/testm/files

mkdir  apache2   ;   cd   apache2

mkdir   {conf,bin,logs}

touch  conf/a.conf ; touch  bin/xuan  ; touchu  logs/qq.log

echo  "asdfghjkl"  > conf/a.conf

vim  /etc/puppet/manifests/site.pp

$puppetserver = 'web9.xuan.com'
node 'web10'{
    include test

include apache
}

可以在客户端上ls /usr/local/下会有一个Apache2

服务端

vim  /etc/puppet/modules/testm/files/apache2/bin/xuan

qwertyuiop

tail  /var/log/messages

其中recurse=>true 这个参数很关键,它表示递归的意思,没有这个不能同步目录。purge参数可以保证当服务端删除某个文件,客户端可以跟着删除。

puppet远程执行命令

远程执行命令:

vi   /etc/puppet/modules/testm/manifests/init.pp

exec {"123":
unless => "test -f /tmp/xuan.txt",
path => ["/bin", "/sbin", "/usr/bin", "/usr/sbin"],
command => "/bin/touch /tmp/xuan.txt"
}

说明:unless后面的命令作为一个条件,当条件成立时,不会执行下面的命令,如果想要条件成立时,执行下面的命令,用 onlyif。要注意的是,我们一定要给执行的这条命令加个条件,使用unless就可以,必须满足这个条件才能执行命令,否则这个命令会一直执行,不太妥当。

puppet配置cron

服务端上配置

cron资源:
cron {"xuan":
command => "/sbin/ntpdate time.windows.com",
user => "root",
minute => "*/10",

monthday  => "10-15",

# ensure => "absent"  //当增加了这行配置,则会把该cron删除掉
}
在客户端上crontab -l你会可以看到更改
说明:分时日月周分别对应puppet里面的minute,hour,monthday,month,weekday

转载于:https://blog.51cto.com/10915585/1744787

puppet(1.7-2.1)相关推荐

  1. Puppet扩展篇1-自定义fact结合ENC(hirea)的应用实践

    零基础学习Puppet自动化配置管理系列文档 在大量节点加入Puppet之后,你至少会面临两个比较大的问题: 1.由于节点数的增多,site.pp文件必然会编写更多的节点条目,以及节点包含的类.假设你 ...

  2. puppet相关问题统计

    1. notice: Run of Puppet configuration client already in progress; skipping 解决方法: 部分情况下puppet服务会无法启动 ...

  3. puppet运维自动化之yum仓库管理

    puppet运维自动化之yum仓库管理 2012-05-05 21:03 sky mysqlops.com 字号:T | T 系统运维人员,经常需要安装或者升级特定的升级包,有的是自己编译的rpm包, ...

  4. puppet aix之自动化用户管理

    一.    用户组的管理 (一)   Puppet组管理特性 1.   manages_aix_lam 用来管理AIX的LAM(Loadable Authentication Module)系统. 2 ...

  5. puppet yum模块、配置仓储、mount模块

    转载:http://blog.51cto.com/ywzhou/1577335 作用:自动为客户端配置YUM源,为使用yum安装软件包提供便捷. 1.服务端配置yum模块 (1)模块清单 [root@ ...

  6. puppet中master和agent之间实现通信

    puppet master和agent实现通信 1 安装puppet 1)master端 192.168.196.183     master.example.com agent端     192.1 ...

  7. puppet自动化运维之资源关系

    2019独角兽企业重金招聘Python工程师标准>>> 1.引用资源 当我们引用一个资源时,需要大写资源类型的首字母,例如File[sshdconfig].当看到一个大写的资源类型, ...

  8. puppet 连载二:服务端和客户端安装(ActiveMQ、MCollective)

    -------------------------------------服务端----------------------------------- 1.jdk安装 vi /etc/profile ...

  9. puppet cert maintain

    puppet cert maintain posted on 2014-08-06 10:02 秦瑞It行程实录 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblo ...

最新文章

  1. NVM安装与使用(实现Node多版本控制)
  2. 计算机辅助药物设计局限,计算机辅助药物设计高效低耗
  3. Elasticsearch新增一个字段并赋值
  4. 简单介绍Python中的几种数据类型
  5. 微信分享 ajax冲突,微信jssdk分享功能开发及解决ajax跨域的问题
  6. python中正则表达式是什么意思_python – 正则表达式中[^.] *的含义是什么?
  7. 移动端:zepto框架
  8. java 项目启动后页面乱码_java生成的Html打开后展示乱码
  9. 干货!国外关于高速PCB设计的技术书籍和资料介绍
  10. 如何在JMP中快速实现报表的个性化与可视化?
  11. 网站、手机验证码开发(手机注册验证)
  12. css3技巧——实现一个正方体
  13. 2019 年第 34 周 DApp 影响力排行榜 | TokenInsight
  14. 超级经典的人生格言(搞笑)
  15. BM25算法——(他人写)
  16. Notepad++安装--16进制插件HexEditor
  17. 服务器光盘拷贝文件夹,如何光盘path中的两个点的文件夹
  18. linux opengl配置编译,Linux下OpenGL的安装与cmake编译OpenGL程序
  19. 在Matlab图片里输入数学公式、符号和希腊字母的方法
  20. AES加密算法的JAVA实现

热门文章

  1. 句号一定要划在句子最美的地方
  2. 基于GTID模式MySQL主从复制
  3. Redis和Memcache的区别是什么
  4. 016 | 漫谈区块链共识机制
  5. 内存分配管理 自定义
  6. 《神探tcpdump第一招》-linux命令五分钟系列之三十五
  7. Sybase IQ导出文件的几种方式
  8. WebBrowserProgramming - Python Wiki
  9. poj12月其他题解(未完)
  10. 兰戈 —— Rango