puppet安装与使用--模块结构(iptables与rsync模块)
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模块)相关推荐
- 计算机中模块的概念,模块结构
模块化程序设计技术是 20 世纪 60 年代出现的一种结构化程序设计技术.该技术是基于"分解"和"模块化"原则来控制大型软件的复杂度.模块结构是指将程序或系统按 ...
- tkinter 模块的最强辅助模块 —— tkintertools(万字详解)
-- 现在 tkintertools 模块已经上传到 PyPi 啦-- 大家可以用 pip 下载该模块啦 特别注意:这篇文章是针对于 tkintertools 2.5.0 版本的,不是最新版!!! 此 ...
- Puppet基础篇7-编写第一个完整测试模块puppet
Puppet基础篇7-编写第一个完整测试模块puppet 零基础学习Puppet自动化配置管理系列文档 将Puppet部署到生产中第一个要编写的模块就是puppet本身,虽然puppet可以运行其它所 ...
- puppet 手册之puppet rsync 模块应用完整版
上篇文章有介绍关于模块的配置和应用,Cron模块再实际的工作需求中,还是蛮多的,这篇文章就模块的应用多介绍一个篇幅,工作中常用的RSYNC Puppet也是用来同步文件的,针对一些小文件之类的,还是蛮 ...
- 集中配置管理工具puppet安装使用
Puppet是开源的基于Ruby的一种Linux.Unix平台的集中配置管理工具,puppet是一个C/S结构, 当然,这里的C可以有很多,因此,也可以说是一个星型结构. puppet使用自有的pup ...
- Angular4.x 安装|创建项目|目录结构|创建组件
Angular4.x 安装|创建项目|目录结构|创建组件 安装最新版本的 nodejs node.js 官网:https://nodejs.org/zh-cn/ 去官网下载 node.js,下一步下一 ...
- Iptables之recent模块小结
Iptables的recent模块用于限制一段时间内的连接数, 是谨防大量请求攻击的必杀绝技! 善加利用该模块可充分保证服务器安全. recent常用参数 --name 设定列表名称,即设置 ...
- python所有模块图解_Python模块结构和布局
用模块来合理组织你的Python代码是简单又自然的方法.你应该建立一种统一且容易阅读的结构,并将它应用到每一个文件中去.下面就是一种非常合理的布局: (1) 起始行(Unix) (2) 模块文档 (3 ...
- puppet安装与配置
puppet是一个为实现数据库中心自动化管理而设计的配置管理软件.基于c/s架构.puppet的服务器端保存着所有的对客户端服务器的配置代码,在puppet里面叫做manifest. 客户端下载man ...
最新文章
- 数据库选型绕不开“CAP定理”是什么
- [渝粤题库]西北工业大学电力系统自动装置
- 获取某个周在本年的开始日期和结束日期
- 关于IDEA编辑器运行测试方法时无法在控制台进行输入的问题
- 老外看中国:本土移动应用差异在哪?
- 只有它才能让云计算、大数据、人工智能大放异彩?它究竟有什么魔力?
- linux中iptables乱码,xshell连接CentOS6.5 iptables或ls 输出乱码-Go语言中文社区
- 非常可乐——BFS搜索最少次数
- 超星阅读器pdz文件打印转pdf文件
- OpenCV滤波器 龙门石窟篇【Python-Open_CV系列(九)】(均值滤波器、中值滤波器、高斯滤波器、双边滤波器)
- Web测试需要注意的点
- unity实现前后左右移动代码_Unity实现物体左右移动效果
- ajax回调函数的各个参数的理解
- 商场三十六计——第8计 “暗渡陈仓”
- 微信小程序开发初学:图片组件 - image
- MMD :maximum mean discrepancy
- 基于VS Code搭建通用ARM微控制器开发平台
- python娃娃在地上摆积木_Python语言要从娃娃抓起
- DS1307的设置问题和经验
- Nestjs中使用ElasticSearch操作数据
热门文章
- 马云乌镇致辞:技术革命最终应该机器更像机器、人更像人
- 垃圾代码评析——关于《C程序设计伴侣》9.4——链表(一)
- 2011对于运维的思考
- 求反关系运算符:“服从分布”的符号表示 与 “不服从分布”的符号表示
- Loaded runtime CuDNN library: 7103 (compatibility version 7100) but source was compiled with 7005 ..
- 修改阿里云ECS服务器的系统时区
- Oracle数据库——触发器的创建与应用
- jackson 进行json与java对象转换 之二
- MSSql使用SQL语句快速查看表对的就说明,及表字段描述及字段类型
- 百度地图API示例之小实践 添加代理商标注