标签:puppet 自动化运维
第一 介绍
puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。
puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个puppet客户端每半小时(可以设置)连接一次服务器端, 下载最新的配置文件,并且严格按照配置文件来配置服务器. 配置完成以后,puppet客户端可以反馈给服务器端一个消息. 如果出错,也会给服务器端反馈一个消息.
第二,工作原理:
puppet既可以在单机上使用,也可以以c/s结构使用.在大规模使用puppet的情况下,通常使用c/s结构.在这种结构中puppet客户端只是指运行puppet的服务器,puppet服务器端是只运行puppetmaster的服务器.
puppet客户端首先会连接到puppet服务器端,并且通过facter工具把客户端的基本配置信息发送给服务器端. 服务器端通过分析客户端的主机名,通过node 定义,找到该主机的配置代码,然后编译配置代码,把编译好的配置代码发回客户端,客户端执行代码完成配置.并且把代码执行情况反馈给puppet服务器端.
修改系统配置
puppet 通过管理资源的方式来管理系统, 例如管理某个软件是否要安装,是安装最新的还是安装了就行. 管理某个服务是否开启, 管理某个文件的属性,内容等等. 所有的资源都有对应的几个属性可以设置. 通过设置属性的方式来管理资源. 有一种特殊的属性可以用在所有的资源上面,这种属性叫做 metaparams ( 元参数或者元属性).
1) 客户端通过facter收集客户端信息并发送至服务端
2) 连接服务端并请求catalog日志
3) 请求节点(node)的信息
4) 从服务器端接收节点(node)的实例
5) 编译代码(包括语法检查等工作)
6) 查询是否有exported 虚拟资源
7) 如有,则从数据库接收虚拟资源
8) 接收完整的catalog日志
9) 存储catalog日志到数据库
10) 客户端接收完整的catalog日志
第三 安装
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
标签:puppet 自动化运维
原文地址:http://datouli.blog.51cto.com/6786317/1749123