SVN自助更新:运维利器Puppet实例讲解(一)(1)


51CTO独家特稿】一直关注51CTO系统频道的读者们可能已经都知道了puppet这个工具。Puppet用于实现配置管理工作的自动化详见2010年系统管理员日当天的外电头条),既可以减轻系统管理员的工作量,更主要的是减少人为造成的失误。在开始阅读本文有关puppet的实例讲解之前,推荐大家先阅读stone的这篇puppet入门教程。

作者简介:刘晗昭,网名蚊子博客),某通信业国企系统工程师,熟悉各种主流开源软件的使用,部署和组合应用,以及主流网站架构。目前关注puppet线上应用与分布式缓存清除系统。

一直想写点关于puppet的文章,但通过学习发现,puppet更多的是参数配置上的东西,写理论性的内容无非就是翻译一下官方文档,不利于新人对于puppet的理解上手。于是觉得,还是应该结合实际应用写些关于puppet使用方面的东西更贴近大众。

首先简单介绍一下puppet。puppet是一种Linux、Unix平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,其设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。

puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互。每个puppet客户端每半小时可以设置)连接一次服务器端,下载最新的配置文件,并且严格按照配置文件来配置服务器,保证和该配置信息同步。配置完成以后,puppet客户端可以反馈给服务器端一个消息。如果出错,也会给服务器端反馈一个消息。

情景描述

在开始介绍实现方法之前,先介绍一下我们的业务情况。我们企业有不少项目是交给外包做的,相关的项目负责人或开发者有新的或更改过的项目文件会上传到我们的SVN服务器上,再由我们的系统管理员执行SVN update更新页面。一直以来我们的做法都是,项目负责人或开发者上传了新文件之后,去找到SA,SA再登录服务器手动执行svn up。每次都要SA动手实在很麻烦,所以前些日子看到puppet这个东西的时候,觉得这就是能够将项目负责人、开发者和SA从这个工作中解放出来的利器~

这个SVN自助更新系统的实现思路如下:

一、开发平台

二、功能介绍

系统管理员/项目执行者/开发人员通过web的get对应的url,然后触发更新puppet-master中的一个文件,puppet-client在同步时间到来的时候默认半小时,可改),判断master上对应的项目文件的md5值是否有变化,如果有变化,触发puppet配置中对应的svn更新的程序,完成此项目的更新。

三、系统架构

Puppet系统架构 

四、实施步骤及相关说明解释

1、puppet配置

此处puppet的安装方法我就不写了,有需要的自行去网上查找。我这边是CentOS 5.4服务器端)和CentOS 5.5客户端),采用yum安装。


相关内容