第一 介绍php
puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。html
puppet采用C/S星状的结构,全部的客户端和一个或几个服务器交互。每一个客户端周期的(默认半个小时)向服务器发送请求,得到其最新的配置信息,保证和该配置信息同步。每一个puppet客户端每半小时(能够设置)链接一次服务器端, 下载最新的配置文件,而且严格按照配置文件来配置服务器. 配置完成之后,puppet客户端能够反馈给服务器端一个消息. 若是出错,也会给服务器端反馈一个消息.node
第二,工做原理:
puppet既能够在单机上使用,也能够以c/s结构使用.在大规模使用puppet的状况下,一般使用c/s结构.在这种结构中puppet客户端只是指运行puppet的服务器,puppet服务器端是只运行puppetmaster的服务器.
puppet客户端首先会链接到puppet服务器端,而且经过facter工具把客户端的基本配置信息发送给服务器端. 服务器端经过分析客户端的主机名,经过node 定义,找到该主机的配置代码,而后编译配置代码,把编译好的配置代码发回客户端,客户端执行代码完成配置.而且把代码执行状况反馈给puppet服务器端.
修改系统配置linux
puppet 经过管理资源的方式来管理系统, 例如管理某个软件是否要安装,是安装最新的仍是安装了就行. 管理某个服务是否开启, 管理某个文件的属性,内容等等. 全部的资源都有对应的几个属性能够设置. 经过设置属性的方式来管理资源. 有一种特殊的属性能够用在全部的资源上面,这种属性叫作 metaparams ( 元参数或者元属性).数据库
1) 客户端经过facter收集客户端信息并发送至服务端
2) 链接服务端并请求catalog日志
3) 请求节点(node)的信息
4) 从服务器端接收节点(node)的实例
5) 编译代码(包括语法检查等工做)
6) 查询是否有exported 虚拟资源
7) 若有,则从数据库接收虚拟资源
8) 接收完整的catalog日志
9) 存储catalog日志到数据库windows
10) 客户端接收完整的catalog日志ruby
第三 安装服务器
1.设置主机名架构
2.关闭selinux 并发
sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
3.设置hosts文件
puppet通讯的前提是agent和master必须可以互相解析主机名。 固然,也能够设置DNS,在第四部分搭建kermit架构的时候会搭建DNS服务,如今先暂时经过hosts文件进行解析,可先设置好puppetmaster后,统一copy到全部节点上
4.配置NTP服务器
设置ntp服务器和本地进行同步,固然若是联网也能够和外部服务器同步,这里只须要保证全部服务器时间一致。 缘由是由于,puppetmaster和agent之间时间相差不得超过10分钟(好像是),然后期配置的mcollecitve服务端和客户端之间不能相差60秒
5. 安装ruby:yum install ruby ruby-libs
安装Puppet-server、puppet和facter
master 端的安装以下
rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm
rpm --import http://yum.puppetlabs.com/RPM-GPG-KEY-puppetlabs
yum install puppet-server -y
配置puppet.conf
建立site.pp文件 site.pp文件是puppet读取全部模块pp文件的开始
启动puppetmaster服务
/etc/init.d/puppetmaster start
[root@puppetmaster ~]# chkconfig puppetmaster on #设置开机启动
查看监听状态 puppetmaster服务开启后,默认监听TCP 8140端口 ,防火墙准许
开放8140(server服务器端口),8139(client服务器端口)
/sbin/iptables -I INPUT -s * -p tcp --dport 8140 -j ACCEPT
/sbin/iptables -I INPUT -s * -p tcp --dport 8139 -j ACCEPT
agent端的安装以下
rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm
rpm --import http://yum.puppetlabs.com/RPM-GPG-KEY-puppetlabs
yum install puppet -y
/etc/init.d/puppet start
客户端发起验证
puppet agent --server master.lichao.com --test
服务器端经过验证
puppet cert --list
puppet cert sign agent.lichao.com