加入收藏 | 设为首页 | 会员中心 | 我要投稿 好传媒网 (https://www.haochuanmei.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

Puppet自动化集群管理基础篇

发布时间:2019-04-18 08:56:43 所属栏目:教程 来源:360技术
导读:Puppet作为开源的集群管理框架,有着简单易用、快速部署、使用范围广等特性,已经积累了超过250家的用户,包括阿里巴巴、新浪、Oracle等大公司。本文作者将带领大家了解puppet技术及其简单的应用。 背景简介 在传统的服务器集群管理中,每增加一台服务器,
副标题[/!--empirenews.page--]

Puppet作为开源的集群管理框架,有着简单易用、快速部署、使用范围广等特性,已经积累了超过250家的用户,包括阿里巴巴、新浪、Oracle等大公司。本文作者将带领大家了解puppet技术及其简单的应用。

背景简介

在传统的服务器集群管理中,每增加一台服务器,都需要对该服务器进行相应的配置。如果服务器数量少,那逐一对服务器进行配置是没问题的。但是在目前的生产环境中,服务器数量动辄就是成千上万台。传统的集群管理方案耗时耗力,已无法快速有效的适应生产环境的需求。目前,在公司内部存在3万多台的web服务器,如何对其进行快速部署成为公司内部亟待解决的问题。主要需求包括:

  • 突然有一天,某机房DNS出问题了,需要换个DNS。
  • 基于某个模板的业务快速上线。
  • Apache的配置需要将robots文件的配置修改。
  • 快速安装某个软件某个模块。
  • 修改了某个配置,需要重启对应服务。
  • 某天我们对某台机器做某个测试修改了配置,又某天我们对另外一台机器测试又修改了一个配置,越积越多。

如何快速的解决以上情况所引起的生产环境失效的问题,我们对自动化集群管理工具puppet进行了调研,从软件包、配置文件和服务三种类型的资源出发,对服务器集群进行了自动化管理设计。

puppet

1. Puppet是什么

Puppet是一种跨平台、C/S架构的集中配置管理系统,可以用于管理linux、windows、unix、mac等平台下的用户、软件包、文件、服务和cron任务等,并且可以妥善处理资源之间的依赖关系。其使用ruby语言开发,但是使用者并不需要了解ruby语言,因为其仅仅依赖于一种以pp为后缀的文件,在puppet框架搭建好后,就只剩下模块的开发,模块开发采用描述性语言和基本的逻辑控制语句,简单易懂,非常适合于管理和部署大规模的集群系统。

2. Puppet架构

Puppet使用C/S架构,分为puppet server(master)和puppet client(agent)。master是配置和管理中心,管理着所有的节点。系统管理员需要在master上编写每个节点所对应的pp文件来描述不同节点的资源集合和目标状态。各个agent会周期性的查询master,来获取自己的配置,并将结果以报告的形式传送给master。

puppet使用ssl认证,在client与master第一次通讯认证通过后,证书会存储在master上,当仅有一台master时,这不会产生问题。但是,在我们的设计中,为了保证高可用和高并发,master是集群,master集群的前面是负载均衡,同一client与master多次通信时,无法保证连接的是同一个master,也就是说无法保证证书的获取。为此,puppet官方建议搭建单独的CA认证服务器,从而实现证书的统一中心化管理。因此在大规模集群管理系统中,常见的puppet架构如上图,本公司同样也采用了该架构搭建集群管理系统。

3. Puppet工作流程

Puppet既可以单机运行,也可以通过C/S架构的方式运行,不过在大多数情况下还是基于C/S架构的方式来运行,其交互过程如下图所示。

  • agent通过ssl向master建立认证。
  • 建立认证后,puppet调用agent的facter,探测出主机的一些内置变量,如主机名、系统版本号、ip地址和负载等信息。Agent将这些信息通过ssl加密发送到master端。
  • Master接收到agent的主机信息请求后,根据域名或ip地址将他们发送到本机的manifests或ENC,进行节点配置信息的查询。
  • 在解析过程中,首先进行语法检查,如果有语法错误,则停止,返回错误信息,否则继续解析生成catalog。
  • Puppet客户端agent对服务端生成的catalog进行应用。
  • Puppet客户端agent对catalog进行代码验证并执行,并将结果记入日志。
  • 将agent信息以报告的形式上报master。
  • 流程结束。

4. Puppet安装与配置

基于公司内部已有的DNS域名解析和LVS负载均衡服务,围绕puppet的整个集群管理系统架构图,在centos环境下,puppet安装与配置方法如下:

(1) Master

目前使用了4台master用于管理15000台左右的服务器,如果后期master压力增大,再适当的扩容。配置步骤如下:

1)安装puppet的相关包,包括puppet-server、Apache、mod_ssl、mod_passenger。

在安装以上包的同时,系统会自动安装facter包和一些ruby依赖包。

2)编辑 /etc/puppet/puppet.conf配置文件。

3)复制CA服务器上的证书,主要是打包CA服务器上的ssl目录,并放到master上的ssl目录下。

4)初始化master,生成必须文件。

5)建立/etc/httpd/conf.d/puppet.conf配置文件。

puppet

(编辑:好传媒网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读