Linux puppet的安装配置部署
一、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.rpm2、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]- LINUX部署WEB项目(JDK安装和配置)
- linux 下安装配置jboss as7以及部署应用
- LINUX部署WEB项目(JDK安装和配置)
- 高性能web服务器(热死你)Resin Linux的安装、配置、部署,性能远超Nginx支持Java、PHP等
- Linux:Tomacat安装配置,项目部署
- linux 下 ifcfg-eth0 配置/CentOS_minimal安装和开发环境部署
- PUPPET安装配置MCollective+ActiveMQ——实际部署案例
- jetty在linux下安装,配置和部署一个war项目
- [Linux]在Linux上部署Java开发环境笔记(一):虚拟机安装Linux,配置Linux和主机XP能互Ping成功
- LINUX部署WEB项目(JDK安装和配置)
- LINUX部署WEB项目(TOMCAT安装和配置)
- LINUX部署WEB项目(TOMCAT安装和配置)
- 阿里云服务器Linux CentOS安装配置(六)resin多端口配置、安装、部署
- linux环境下go1.8安装配置具体步骤(二进制部署和源码编译部署)
- Linux下安装配置tomcat并部署javaweb项目
- 在Linux安装配置Tomcat 并部署web应用 ( 三种方式 )
- LINUX部署WEB项目(JDK安装和配置)
- LINUX部署WEB项目(JDK安装和配置)
- LINUX部署WEB项目(JDK安装和配置)