IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

DevOps之Puppet

IDEAL Garden 2011-05-28 22:24:52 累计浏览 3,971 次
本机暂存

    Puppet在一款自动化系统配置管理的工具,它可以让你在很短的时间内对大量硬件和系统基本类似的系统,进行统一的系统配置管理。

    说的简单点,就像开网吧,你需要对网吧的每一台机器安装操作系统,配置完全一样的软件,比如QQ和360,供网友上网,在系统和软件有损坏时,很简单的一个恢复操作就可以让机器回到刚刚安装好操作系统和软件的状态。

    Puppet就是可以干这个事儿的,不同在于,Puppet是给网络管理员用的,而针对的系统多是*nix系统,因为Puppet目前对Windows支持的很少,但这不妨碍Puppet成为DevOps实现过程中的利器,另外一个类似的工具是Chef

    Puppet本身基于Ruby实现,但即使没有Ruby的经验也没甚大碍。Puppet自己提出了所谓Puppet Language,是一种DSL(Domain Specific Language)语言,用直白而描述性的语言,定义系统应该具有的状态,比如一个简单的例子tmpfile.pp:

file { 'testfile':
    path => '/tmp/testfile',
    ensure  => present,
    mode    => 0640,
    content => "I'm a test file.",
}    在安装了Puppet了机器上运行:
puppet apply tmpfile.pp

    结果就会在/tmp下新增加一个testfile,内容是This is a test file。

     这个例子太简单。除了file这种类型外,Puppet提供了大量的资源类型,供对系统的状态进行描述,比如打开(如果不存在会自动下载)某项服务,自动增加一个用户。当管理的机器成百上千,这样的自动化服务达到的效果就很可观了。

    puppet apply是Puppet在单机上运行和测试的工具,真实的使用情景会是,一台机器(master)专门保留所有机器配置管理的状态信息,而每台机器(agent)会在指定的时间向master发起查询,从而更新自己的系统状态,以期与指定状态保持一致。

同分类推荐文章

  1. 从零重建 macOS 开发机:可复现的环境初始化流程 (2026-06-14 20:36:00)
  2. 百度物理网络监控工具开源第二弹:毫秒级监控工具 baize,让你的网络问题无处遁形 (2026-06-11 08:10:28)
  3. How to Set Up Homebrew Tap for Private CLI Tools: A Complete Guide (2026-05-27 02:13:03)

查看更多 DevOps 文章 →

建议继续学习

  1. Git log diff config高级进阶 (累计阅读 24,843)
  2. nginx的配置文件 (累计阅读 9,882)
  3. Zookeeper研究和应用 (累计阅读 9,482)
  4. Bash脚本15分钟进阶教程 (累计阅读 9,060)
  5. 批量添加主机到 Cacti 的命令行工具 (累计阅读 8,558)
  6. 使用Apache 和Passenger来运行puppetmaster (累计阅读 8,316)
  7. Linux shell脚本使用while循环执行ssh的注意事项 (累计阅读 8,189)
  8. 在命令行快速切换目录 (累计阅读 6,789)
  9. 如何让ssh登录更加安全 (累计阅读 5,712)
  10. bash下利用trap捕捉信号量 (累计阅读 4,925)