【Puppet】什么是Puppet——精通Puppet配置管理工具
时间:2013-09-10 08:09:03 作者:vaster 标签: puppet 分类:
第1章 开始使用Puppet
1.1 什么是Puppet
Puppet是一个基于Ruby,并使用GPLv2协议授权的开源软件,它即能以“客户端-服务端”的方工运行,也能独立运行。它可以用来管理Unix(包括OSX)、Linux以及Windows平台。
Puppet管理一台主机的整个生命周期: 初始化——安装——升级——维护——服务迁移/下架
Puppet模型:
1.1.1 部署
通常情况下,Puppet都是以简单的客户端-服务端模型进行部署。服务端称“Master”,客户端称“Agent”,客户端本身,被定义为一个节点。
PuppetMaster在一台主机上以守护进行的方工运行,它包含了环境所需的所有配置,PuppetAgent则通过 SSL协议进行加密和验证的连接与PuppetMaster进行通信。
当Agent已经获得需要的配置或没有任何可以被应用的配置时,就不会做任何事情,这样就意味着,它不会在重复操作的情况下,浪费服务器资源。
每个客户端都可以以守护进行的方工来运行Puppet(如使用cron),也可以手动启动。通常的做法是以守护进行的方式启动,并周期性地与Master进行通信(默认30min),以此来保证配置已符合他们的需求。
另一种部署方式:即抛开Master以独立方式运行,这种模式下,配置放置在被管理的主机上,然后通过手动运行puppet程序来执行和应用这些配置。
1.1.2 配置语言及资源抽象层
配置项在Puppet中被称为“资源”,大部分配置工具,如shell或perl脚本是命令或者过程式的(即要该如何做),而Puppet用户只需要声明它们的主机应该处于什么状态即可,如何达到这种状态由Puppet负责。
- 配置语言
example:实现在一个有RedHat、Ubuntu、Solaris的主机环境中,为所有主机安装上vim程序。
手工操作步骤:
连接到目标主机(包含输入密码或提供密钥) 检查是否安装了vim 没有安装则使用平台上适当的命令来安装它(yum、apt-get) 返回安装结果 返回安装结果
Puppet完成方法(定义vim配置资源):
package { "vim": //可看作package["vim"]的资源 ensure => present, //ensure用于指定包的状态(安装/卸载);present表示希望安装上它、absent表示希望卸载它} }
资源包的组成:类型[package](软件包、服务或定时任务)、标题[vim]及一系列属性[ensure]资源抽象层
- 资源抽象层
asdfasdfa