您的位置:首页 > 运维架构 > Linux

Linux puppet的安装配置部署

2015-07-02 17:24 531 查看

一、puppet简介

    puppet是一个为实现数据中心自动化管理而设计的配置管理软件,能够管理IT基础设施的整个生命周期:供应(provisioning)配置(configuration)、联动(orchestration)及报告(reporting)。puppet基于C/S架构,类似于zabbiz,有master与agent节点之分。它是一个开源的(谈不上真正的开源,因为有商业版与社区版之分)、新一代的、集中化的配置管理工具,由ruby语言研发,它拥有自己的配置语言(PCL,puppet configuration language)。

    puppet能够把IT日常的系统管理代码化,而代码可重用,这样可以减少运维人员的工作量,而且能快速、大规模部署服务器。在puppet的世界有其自己的哲学思想:在IT系统管理中,puppet只关注结果,不关心过程!这名话怎样理解,比如puppet的master端向各agent下达把nginx这个包安装上并启动服务,puppet的agent端面只向master端报告软件是否安装完成,服务是否已启动,puppet不关心软件是怎样安装上的,服务是怎样启动的,它只关心结果。


二、puppet工作原理

1、puppet有两种工作方式,一种是独立工作方式(standalon),另一种是master-agent的方式,这里主要介绍C/S方式。

简述:


manifest:字面意思是清单,在这里指被puppet代码化的各种资源,是一种用PCL编写的代码;

catalog:表示把各种manifest编译后生成的可执行代码,也叫伪代码;

apply:生成catalog后puppet就可以把代码进行运用,在运用时也要先对伪代码进行检测,检测后才执行。

a)、agent向主机请求catalog代码,在请求时要带上自己的主机名与facts,facts里包含了agent服务器自身的一些系统特征,比如操作系统是什么,是哪个版本,cpu是什么型号,内存有多大等信息;

b)、master接收到agent的请求后开始查询此节点包含的清单,把这些资源找出后编译成catalog,再发送给agent;

c)、agent收到catalog后就开始应用代码,并把执行的状态结果生成报告返还给master;

d)、master接收报告并记录日志。2、puppet认证机制

puppet有其自己的证书管理机制,agent与master间的通信是需要得到master的认证,证书存放在/var/lib/puppet/ssl/。

在master/agent首次启用的过程:

a)、master启动时会为自己生成key,并签署证书,让自己成为一个ca;

b)、agent首次启动要为自己生成key,生成证书签署请求,并将证书请求发送给master请求签署;

c)、master收到agent的证书签署请求后,由管理员先验证请求是否合法,而后对证书签署请求作出签署或不签署。


三、puppet的安装

     puppet既然是C/S架构,那安装包就有master安装包与agent安装包之分。以下的安装及测试都是基于CentOS 6.4_x86_64的系统进行,在epel源也包含了puppet的软件包,所以我以yum安装为例,大家可以通过puppet官方给的yum源进行安装,官方的yum软件版本比较新,官网yum地址http://yum.puppetlabs.com/el/6.5/products/x86_64/,也可以使用epel的源安装,我推荐安装的版本是puppet 2.7.25或者3.6.2,目前puppet开源社区提供四个版本分支:

      puppet 0.22.1--->0.25.5     puppet早期分支,目前官网已经不再提供技术支持;

      puppet 2.6.0 --->2.6.18     目前正在维护的安全分支,已经停止开发;

      puppet 2.7.0 --->2.7.26     目前正在维护的安全版本分支,也是比较流行的版本分支;

      puppet 3.0.0 --->3.8.*      当前开发中的版本分支。

所以我推荐使用epel yum源来进行安装,yum提供的版本目前是2.7.26,安装puppet依赖ruby facter,yum安装会解决这些依赖。

1、首先安装epel源

RHEL/CentOS/SL Linux 6.x 下安装 EPEL6 yum源:

[code=bash;toolbar:false">32位系统选择: rpm -ivh http://download4.fedora.redhat.com/pub/epel/6/i386/epel-release-6-8.noarch.rpm 64位系统选择: rpm -ivh http://download4.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

2、puppet master端的安装yum install puppet-server -y3、puppet agent端的安装yum install puppet -y10.0.0.14    monitor.comratings.com 10.0.0.41    ***.comratings.com[p]Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address    Foreign Address       State       PID/Program name    tcp     0      0    0.0.0.0:8140         0.0.0.0:*         LISTEN         937/ruby[p]  "***.comratings.com" (D6:D7:33:60:05:0A:88:82:07:28:0D:80:B2:70:BE:BF)[p]这里有一个待签名的请求,如果对其授权签名就运行如下命令

# puppet cert sign ***.comratings.com

[p][main] server = monitor.comratings.com     #指定puppet服务端地址 autoflush = false     #是否实时刷新日志到磁盘 logdir = /var/log/puppet          #日志目录 rundir = /var/run/puppet        #进程文件存放目录 ssldir = $vardir/ssl   存放签名文件的配置路径[p]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: