开源自动化配置管理工具 Puppet 入门教程
系统管理员经常陷入一系列的重复任务中:如升级软件包、管理配置文件、系统服务、 cron 任务以及添加新的配置、修复错误等。这些任务通常是重复低效的,解决这类任务的 第一反应是让他们自动化,于是出现了定制脚本。由于环境复杂,定制脚本和应用程序一 再被重复开发,并且很难适合多种平台,灵活性和功能也很难保证,于是像 Puppet 这样的 自动化配置管理工具便出现了。 在开源世界里,有很多配置工具可供选择,这个领域一些关键的产品有: Puppet(puppet.reductivelabs/): Ruby 写成的配置管理工具,使用 C/S 架构,使用 declarative language 配置客户端。 Cfengine(cfengine.org): 最先发布的开源配置工具之一,1993 年发布,同样是 C/S 架构,通常应用于教育机构。 LCFG(lcfg.org/): C/S 架构的配置管理工具,使用 XML 定义配置。 Bcfg2 Python 编写的 C/S 架构的配置管理工具,使用规格书和客户机响应配置目标主机。 本
文档致力于描述使用 Puppet 管理你的主机、应用程序、后台程序和各种服务。 简介: Puppet 简介: 1. Puppet 的用途 Puppet 是开源的基于 Ruby 的系统配置管理工具,依赖于 C/S 的部署架构。主要开发者 是 Luke Kanies,遵循 GPLv2
版权协议。从 1997 年开始 Kanies 参与 UNIX 的系统管理工作, Puppet 的开发源于这些经验。因为对已有的配置工具不甚满意,从 2001 年到 2005 年间, Kanies 开始在 Reductive 实验室从事工具的开发。很快,Reductive 实验室发布了他们的 旗舰产品——Puppet。 2. Pupput 的特性 许多
系统配置管理工具
工作的方式非常类似, cfengine。 如 是什么让 Puppet 与众不同? Puppet 的语法允许你创建一个单独脚本,用来在你所有的目标主机上建立一个用户。 所有的目标主机会依次使用适用于本地系统的语法解释和执行这个模块。举例:如果这个 配置是在 Red Hat 服务器上执行,建立用户使用 useradd 命令;如果这个配置是在 FreeBSD 主机上执行,使用的是 adduser 命令。 Puppet 另一个卓越的地方是它的灵活性。源于开源软件的天性,你可以自由的获得 Puppet 的源码,如果你遇到
问题并且有能力的话,你可以修改或者加强 Puppet 的代码去适 用于你的环境。另外,社区开发者和捐献者还在不断增强 Puppet 的功能。一个大的开发者 和用户社区也致力于提供 Puppet 的
文档和技术支持。 Puppet 也是易于扩展的。定制
软件包的支持功能和特殊的系统环境配置能够快速简单 的添加进 Puppet 的安装
程序中。
3. Puppet 的工作模式 Puppet 是一个 C/S 架构的配置管理工具,在中央服务器上安装 puppet-server 软件包 (被称作 Puppet ma
ster)。 在需要管理的目标主机上安装 puppet 客户端软件(被称作 Puppet Client)。当客户端连接上 Puppet master 后,定义在 Puppet master 上的配置文件会被编 译,然后在客户端上运行。每个客户端默认每半个小时和服务器进行一次
通信,确认配置 信息的更新情况。如果有新的配置信息或者配置信息已经改变,配置将会被重新编译并发 布到各客户端执行。也可以在服务器上主动触发一个配置信息的更新,强制各客户端进行 配置。如果客户端的配置信息被改变了,它可以从服务器获得原始配置进行校正。 4. Puppet 的未来 最后,Puppet 是一个年轻的工具,仍然处于开发和发展中。Puppet 社区快速壮大,并 且许多新的想法不断融入,促使开发、更新和模块每天都在呈现。 安装配置: 安装配置: 1. Puppet 在 RedHat/CentOS 系统上安装 Puppet 是基于 Ruby 写成的,所以安装前要准备好 Ruby 环境。在中心的 Server 上安装 puppet-server 包,并运行 puppetmasterd 进程;在被管理机上安装 puppet 包,并运行 puppetd 进程。另外,在每台主机上配置好自己的 hostname,之后每台机器要以 hostname 区