puppet模块管理

模块是puppet的最大单元,模块里面有类,类下面有资源。 puppet管理的文件、用户、服务、任务计划等全部由这些单元组成。

下面我们来定义一个模块:
在服务端上做如下操作:
mkdir /etc/puppet/modules/testm  //模块名字就是testm
cd !$
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他的目的是要把服务端上的1.txt文件同步到客户端上,到客户端上就变成了2.txt,所属主,组都是root权限是400。到后面同步目录的时候这个模块的名字把它写在manifests/site.pp文件里include testm。(这个source来源文件其实是在testmfiles目录下的但是不用吧files写出来,写了会出错)
说明:类名字也叫做testm, 类下面定义了一个资源file,文件名字叫做/tmp/2.txt ,owner,group,mode定义文件的属主、数组以及权限,source定义这个文件从哪里获取。 $puppetserver一会也要定义一下,这里指的是puppet server服务器上/etc/puppet/modules/testm/files/1.txt

下面要继续定义一个很关键的配置文件:
vim  /etc/puppet/manifests/site.pp   //内容如下
$puppetserver = 'master.puppet.com'

node 'client.puppet.com'{                   ##node指的是客户端的主机名
    include testm
}

说明:$puppetserver 定义服务端的主机名,node后面为客户端的主机名,这里面定义该客户端要加载的模块
配置完成后,在客户端执行命令:
puppet agent --test  --server=master.puppet.com   //如果客户端上启动了puppet服务,不用执行这命令,它也会自动同步的
上面的模块其实只是同步了一个文件而已,那么要想同步一个目录如何做?我们可以通过实现同步一个目录来做一个包发布系统。 比如在一台机器上编译安装好了apache,那么就可以通过这样的模块把这个apache目录整个分发到其他机器上。

模块配置文件如下:
class apache{
file {"/usr/local/apache2":
owner => "root",
group => "root",
source => "puppet://$puppetserver/modules/apache/apache2",
recurse => true,
purge => true
}

可以将远程执行命令配置写在下面。
}
其中recurse=>true 这个参数很关键,它表示递归的意思,没有这个不能同步目录。purge参数可以保证当服务端删除某个文件,客户端可以跟着删除。(可以试验把purge删除)

远程执行命令:

exec {"touch":
unless => "test -f /tmp/puppet.txt",
path => ["/bin", "/sbin", "/usr/bin", "/usr/sbin"],
command => "/bin/touch /tmp/puppet.txt"
}
说明:unless后面的命令作为一个条件,当条件成立时,不会执行下面的命令,如果想要条件成立时,执行下面的命令,用 onlyif。要注意的是,我们一定要给执行的这条命令加个条件,使用unless就可以,必须满足这个条件才能执行命令,否则这个命令会一直执行,不太妥当,test -f是指文件存在时,path是定义命令的环境。

cron资源:
cron {"qingyun":
command => "/sbin/ntpdate pool.ntp.org",

user => "root",
minute => "*/10",
# ensure => "absent"  //当增加了这行配置,则会把该cron删除掉,不加客服端想删除crontab是不可以的。
}

说明:分时日月周分别对应puppet里面的minute,hour,monthday,month,weekday

转载于:https://blog.51cto.com/11353483/1753191

自动化运维工具puppet(1)相关推荐

  1. 自动化运维工具Puppet(管理资源)

    接上文<自动化运维工具Puppet>http://kaliarch.blog.51cto.com/8966921/1973736 利用模块与模版管理agent端资源 一.模块管理 环境安装 ...

  2. 自动化运维工具——puppet详解(二)

    自动化运维工具--puppet详解(二) 目录 一.class 类 1)什么是类? 2)带有参数的类 3)类的继承 1.新增属性 2.新增原有值 3.修改原有值 4.整体调用父类,并重写部分值 二.模 ...

  3. 项目10.2-企业级自动化运维工具---puppet详解

    1.认识puppet 1.1 引入 puppet是什么,咱们先不用专业的名词解释它,咱们先描述一些工作场景,看明白这些工作场景,自然会知道puppet是什么. (1)场景一: 管理员想要在100台服务 ...

  4. 自动化运维工具——puppet详解(一)

    一.puppet 介绍 1.puppet是什么 puppet是一个IT基础设施自动化管理工具,它能够帮助系统管理员管理基础设施的整个生命周期: 供应(provisioning).配置(configur ...

  5. 自动化运维工具—puppet详解

    文章目录 一.puppet 介绍 1.puppet是什么 2.puppet的工作机制 1)工作模型 2)工作流程 3)使用模型 3.puppet 名词解释 二.puppet 资源详解 1.程序安装及环 ...

  6. 自动化运维工具puppet(四)

    一.节点管理 1.什么是节点 我们将Puppet的每个客户端都称为节点( node) . 每个节点件定义主机名时可以是个. 组 ( 正则或继承) . 所有的节点都需要在站点件( site.pp) 中进 ...

  7. 52.puppet自动化运维工具

    puppet自动化运维工具 Puppet是一款运维自动化工具,在一些大型的互联网企业,它可以针对多台服务器进行统一操作,如统一部署软件,进行统一上线维护等,意思就是说在一台linux服务器上所部署的操 ...

  8. Ansible、Puppet、SaltStac等4种常见的自动化运维工具全解析

    运维目标有三个阶段,第一是追求稳定性,第二是追求标准化,第三是追求自动化.对于第三阶段来说,什么是运维自动化呢?简单地讲,运维自动化就是将日常重复性工作按照事先设定好的规则,在一定时间范围内自动化运行 ...

  9. 自动化运维工具Ansible

    ansible简介: ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批 ...

最新文章

  1. puppet运维自动化之yum仓库管理
  2. oracle系统级别启动数据库
  3. mysql根据父级编码得到父级内容_在mysql查询中通过父级获取所有子级
  4. boost::sort模块spreadsort 字符串函子反向排序示例
  5. [渝粤教育] 天津城建大学 混凝土结构设计原理A 参考 资料
  6. Android-Note
  7. python处理文件夹_python文件及文件夹操作
  8. 重庆大学李婷婷计算机学院,北京大学青年研究中心赴我校考察调研
  9. 德鲁伊 oltp oltp_内存中OLTP –娱乐看门狗的三个关键点–桶数
  10. APT 新组织利用 ASP.NET exploit 攻击微软 IIS 服务器
  11. BM3D、域变换与Non-Local
  12. element ui 前台模板_简单了解Vue + ElementUI后台管理模板
  13. 经验分享 针式打印机经典案例分析
  14. ubuntu扩容教程
  15. Apache Flink如何处理背压
  16. Linkedin领英如何批量撤回邀请
  17. excel文件无法打印提示内存不足_Mac应用程序无法打开提示不明开发者或文件损坏的处理方法...
  18. 启动SpringBoot 错误: 找不到或无法加载主类 com.xx.xxApplication
  19. Web与排版学上的字体问题【转】
  20. android 个推封装,Android个推快速集成

热门文章

  1. form 表单 + HTML5(FileReader) +iframe 实现无刷新图片上传+图片预览效果
  2. 制作CentOS fence-agents 镜像
  3. 通过chrome inspect 来调试手机hybird APP
  4. MySql 基于C_API的数据库封装
  5. 杭电1276--士兵队列训练问题
  6. html5之通讯API
  7. Unable to start activity ComponentInfo
  8. Windows 8.1安装.net 3.5功能
  9. 360safe:腾讯QQ也见不得人[图]
  10. 省选前的计划(日更,然而你们天天吊打我)