puppet安装与使用--模块结构(iptables与rsync模块)

模块结构
    一个模块就是一个/etc/puppet/modules目录下面的一个目录和它的子目录,在puppet的主文件site.pp里面用import   modulename可以插入模块。新版本的puppet可以自动插入/etc/puppet/modules目录下的模块。引入模块,可以结构化代码,便于分享和管理。

例如关于apache的所有配置都写到apache模块下面。一个模块目录下面通常包括三个目录:files,manifests,templates。manifests   里面必须要包括一个init.pp的文件,这是该模块的初始(入口)文件,导入一个模块的时候,会从init.pp开始执行。可以把所有的代码都写到init.pp里面,也可以分成多个pp文件,init   再去包含其他文件。files目录是该模块的文件发布目录,puppet提供一个文件分发机制,类似rsync的模块。templates   目录包含erb模型文件,这个和file资源的template属性有关。

网上有好多结构图,还不错

结构类似,自己也可以跟着创建相应目录,如下图,我的测试机器上目录结构:


结构与上叙述完全相同,每个模块下manifests下总会有一个init.pp文件,总规是一个套一个

iptalbes模块例子使用

结构与上,在/etc/puppet/modules模块下增加rsync模块


事先要把给客户端定制好的iptables.sh脚本放入files下,编写init.pp

创建一个class 类,在模块modules.pp中调用即可,主入口为site.pp,所以在site.pp要调用modules.pp

上图中难理解的就是source => "puppet://$fileserver/iptables/iptables.sh",这个是puppet代码中就写好的,每个模块files下面的文件,都可以写成 puppet://$fileserver/模块名/files文件下的文件名" 来调用 notify指定了顺序,在执行exec前执行file,因为puppet程序里面定义的资源是同时执行的,不分先后,所以控制先后顺序必须的利用某个参数

模块写好后,看/etc/puppet下文件 内容,如下:

在modules.pp中 import "模块名”,在site.pp里面 import modules.pp

还有个节点pp,可义为nodes.pp,在init.pp里也有import,nodes.pp里面可以这样写
 node default {

include 'iptables'}

对默认节点使用iptables,要结某个节点使用iptables,可以node '节点名' {}

验证测试

rsync模块例子使用

Puppet结合rsync同步文件是参考网上一篇文章,模块是由别人写的,可以下载自由使用,但测试后,发现rsync客户端同步还是有问题,所以自己在里面填了部分client,可以实现文件同步

参考文章网址:http://www.mysqlops.com/2012/02/20/puppet-rsync.html#comment-1564
当然,同步文件也可以使用puppet文件服务器,要用到fileserver.conf文件 ,同步小文件可以,但考虑到要同步大文件还是考虑用rsyncx效率要高点

根据文章中,先下载两个模块到modules
cd /etc/puppet/modules/   
git clone https://github.com/onyxpoint/pupmod-concat && mv pupmod-concat concat 
git clone https://github.com/onyxpoint/pupmod-rsync && mv pupmod-rsync rsync

Git如果没有装的话,yum下,git好象类似svn(有待研究),git时可能会报个错,如下解决即可
Cloning into cancan…
error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while

。。。。。 
解决办法:
git config --global http.sslVerify false

下载后,就该配rsync服务了,我选择puppet1(server)作为rsync-server,在node.pp里面如下配置


在puppet1运行 puppetd --test --server puppet1 ,即可生成rsyncd.conf文件,启动rsync服务
(注意:防火墙中要过滤873服务端口)

rsyncd的配置文件 应该大家不默认,不多说了

服务端配置好后,需要配置客户端了,但按上面那个链接来做,我没有成功,可能跟版本有关,大家可以尝试下他的做法,我现在共享下我的做法
cd /etc/puppet/modules/rsync/manifests/

进到下载的模块后,有init.pp  server  server.pp 3个文件,观察里面内容,可自己编写
client.pp  client/rs.pp

回到note.pp 对节点puppet2做下面配置,


注:上面rsync在服务端配置两模块,default和test,对应路径都为puppet1下/usr/local/src

在note.pp对节点2中,我写的是定义的模块名,所以意思就是把puppet1/usr/local/src下的文件同步到puppet2下的/tmp/test /tmp/test1

验证测试:
在puppet1上,有两文件

在puppet2上

同步成功

Puppet 功能非常强大,自身包括了很多的资源,根据自己的爱好和自己工作实际所需,可以有选择有研究,还有cron也是很好用的,并且配置也是比较简单的,有兴趣的可以一起研究

转载于:https://blog.51cto.com/wanglq/830513

puppet安装与使用--模块结构(iptables与rsync模块)相关推荐

  1. 计算机中模块的概念,模块结构

    模块化程序设计技术是 20 世纪 60 年代出现的一种结构化程序设计技术.该技术是基于"分解"和"模块化"原则来控制大型软件的复杂度.模块结构是指将程序或系统按 ...

  2. tkinter 模块的最强辅助模块 —— tkintertools(万字详解)

    -- 现在 tkintertools 模块已经上传到 PyPi 啦-- 大家可以用 pip 下载该模块啦 特别注意:这篇文章是针对于 tkintertools 2.5.0 版本的,不是最新版!!! 此 ...

  3. Puppet基础篇7-编写第一个完整测试模块puppet

    Puppet基础篇7-编写第一个完整测试模块puppet 零基础学习Puppet自动化配置管理系列文档 将Puppet部署到生产中第一个要编写的模块就是puppet本身,虽然puppet可以运行其它所 ...

  4. puppet 手册之puppet rsync 模块应用完整版

    上篇文章有介绍关于模块的配置和应用,Cron模块再实际的工作需求中,还是蛮多的,这篇文章就模块的应用多介绍一个篇幅,工作中常用的RSYNC Puppet也是用来同步文件的,针对一些小文件之类的,还是蛮 ...

  5. 集中配置管理工具puppet安装使用

    Puppet是开源的基于Ruby的一种Linux.Unix平台的集中配置管理工具,puppet是一个C/S结构, 当然,这里的C可以有很多,因此,也可以说是一个星型结构. puppet使用自有的pup ...

  6. Angular4.x 安装|创建项目|目录结构|创建组件

    Angular4.x 安装|创建项目|目录结构|创建组件 安装最新版本的 nodejs node.js 官网:https://nodejs.org/zh-cn/ 去官网下载 node.js,下一步下一 ...

  7. Iptables之recent模块小结

    Iptables的recent模块用于限制一段时间内的连接数, 是谨防大量请求攻击的必杀绝技! 善加利用该模块可充分保证服务器安全. recent常用参数 --name      设定列表名称,即设置 ...

  8. python所有模块图解_Python模块结构和布局

    用模块来合理组织你的Python代码是简单又自然的方法.你应该建立一种统一且容易阅读的结构,并将它应用到每一个文件中去.下面就是一种非常合理的布局: (1) 起始行(Unix) (2) 模块文档 (3 ...

  9. puppet安装与配置

    puppet是一个为实现数据库中心自动化管理而设计的配置管理软件.基于c/s架构.puppet的服务器端保存着所有的对客户端服务器的配置代码,在puppet里面叫做manifest. 客户端下载man ...

最新文章

  1. 数据库选型绕不开“CAP定理”是什么
  2. [渝粤题库]西北工业大学电力系统自动装置
  3. 获取某个周在本年的开始日期和结束日期
  4. 关于IDEA编辑器运行测试方法时无法在控制台进行输入的问题
  5. 老外看中国:本土移动应用差异在哪?
  6. 只有它才能让云计算、大数据、人工智能大放异彩?它究竟有什么魔力?
  7. linux中iptables乱码,xshell连接CentOS6.5 iptables或ls 输出乱码-Go语言中文社区
  8. 非常可乐——BFS搜索最少次数
  9. 超星阅读器pdz文件打印转pdf文件
  10. OpenCV滤波器 龙门石窟篇【Python-Open_CV系列(九)】(均值滤波器、中值滤波器、高斯滤波器、双边滤波器)
  11. Web测试需要注意的点
  12. unity实现前后左右移动代码_Unity实现物体左右移动效果
  13. ajax回调函数的各个参数的理解
  14. 商场三十六计——第8计 “暗渡陈仓”
  15. 微信小程序开发初学:图片组件 - image
  16. MMD :maximum mean discrepancy
  17. 基于VS Code搭建通用ARM微控制器开发平台
  18. python娃娃在地上摆积木_Python语言要从娃娃抓起
  19. DS1307的设置问题和经验
  20. Nestjs中使用ElasticSearch操作数据

热门文章

  1. 马云乌镇致辞:技术革命最终应该机器更像机器、人更像人
  2. 垃圾代码评析——关于《C程序设计伴侣》9.4——链表(一)
  3. 2011对于运维的思考
  4. 求反关系运算符:“服从分布”的符号表示 与 “不服从分布”的符号表示
  5. Loaded runtime CuDNN library: 7103 (compatibility version 7100) but source was compiled with 7005 ..
  6. 修改阿里云ECS服务器的系统时区
  7. Oracle数据库——触发器的创建与应用
  8. jackson 进行json与java对象转换 之二
  9. MSSql使用SQL语句快速查看表对的就说明,及表字段描述及字段类型
  10. 百度地图API示例之小实践 添加代理商标注