设为首页 收藏本站
查看: 1277|回复: 0

[经验分享] puppet安装与使用--模块结构(iptables与rsync模块)

[复制链接]

尚未签到

发表于 2018-8-3 09:40:43 | 显示全部楼层 |阅读模式
  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属性有关。
  网上有好多结构图,还不错
  
  结构类似,自己也可以跟着创建相应目录,如下图,我的测试机器上目录结构:
DSC0000.png

  结构与上叙述完全相同,每个模块下manifests下总会有一个init.pp文件,总规是一个套一个
  
  iptalbes模块例子使用
  结构与上,在/etc/puppet/modules模块下增加rsync模块
DSC0001.png

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

  创建一个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
DSC0003.png

  还有个节点pp,可义为nodes.pp,在init.pp里也有import,nodes.pp里面可以这样写
  node default {
  include 'iptables'}
  对默认节点使用iptables,要结某个节点使用iptables,可以node '节点名' {}
  
  
  
  
  
  验证测试
DSC0004.png

  
  
  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里面如下配置
DSC0005.png

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

  rsyncd的配置文件 应该大家不默认,不多说了
  
  服务端配置好后,需要配置客户端了,但按上面那个链接来做,我没有成功,可能跟版本有关,大家可以尝试下他的做法,我现在共享下我的做法
  cd /etc/puppet/modules/rsync/manifests/
  进到下载的模块后,有init.pp  server  server.pp 3个文件,观察里面内容,可自己编写
  client.pp  client/rs.pp
DSC0007.png

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

  注:上面rsync在服务端配置两模块,default和test,对应路径都为puppet1下/usr/local/src
  在note.pp对节点2中,我写的是定义的模块名,所以意思就是把puppet1/usr/local/src下的文件同步到puppet2下的/tmp/test /tmp/test1
  
  验证测试:
  在puppet1上,有两文件
DSC0009.png

  在puppet2上
DSC00010.png

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-545705-1-1.html 上篇帖子: puppet安装与使用--配置文件及常用资源 下篇帖子: puppet源码编译安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表