`
cryolite
  • 浏览: 581473 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于puppet

阅读更多
推荐书
Pro puppet

无法忍受
Puppet Cookbook的排版
这里有个更好的Puppet Cookbook


1. 基本概念

puppet是一个CS结构的配置管理工具,用ruby开发的。

作为服务器端的S,puppet的术语叫master
作为客户端的C,puppet的术语叫agent
在每台机器上所做的配置,puppet术语叫configuration

1.1 ubuntu下的启动
启动puppet master:
master# service puppetmaster start
为了调试方便,也可以让master在控制台上直接输出日志方便察看:
puppet master --verbose --no-daemonize

puppet agent的启动:
修改/etc/default/puppet配置文件,自动随机启动
agent# service puppet start

为了测试方便也可以手工启动,指定master,例如
agent# puppet agent --server=puppet.mysite.com --no-daemonize --onetime


在agent连接master后,还需要在master机器上给agent授权才能访问:
察看需要授权的agent:
master# puppet cert --list
  agent2.mysite.com (F6:68:CB:27:E7:17:5E:60:DA:39:66:A3:A5:56:E4:DD)

给指定的agent授权
master# puppet cert --sign agent2.mysite.com

之后,agent就可以从master读取configuration进行配置了。


1.2 Hello, puppet
在master端,需要配置site.pp文件(Pro Puppet说没有这个文件master不能启动?)
可以在site.pp文件中为指定配置文件所在位置,一般在site.pp中导入nodes.pp文件,后者为每个节点指定哪些配置适用。这两个pp文件一般都在/etc/puppet/manifests目录下
master# vim manifests/site.pp
import 'nodes.pp'


master# vim manifests/nodes.pp
node default {
  include mytest
}

default表示所有节点的缺省配置,当然也可以为指定节点指定配置,例如
node 'agent02.mysite.com' {
  include mytest
}

通过正则表达式指定节点:
node /^agent\d+\.mysite\.com/ {
  include mytest
}



然后在/etc/modules/下创建目录mytest/manifests和文件init.pp
master# mkdir -p mytest/manifests
master# vim modules/mytest/manifests/init.pp
class mytest {
  notify {hi: 
    message => "Hello, Puppet",
  }
}


在agent上测试一下:
agent# puppet agent --server=puppet.mysite.com --no-daemonize --onetime --verbose

info: Caching catalog for a2.mysite.com
info: Applying configuration version '1343644644'
notice: Hello, Puppet
notice: /Stage[main]/Mytest/Notify[hi]/message: defined 'message' as 'Hello, Puppet'    
notice: Finished catalog run in 0.20 seconds  


用agent安装一个软件试试,比如tree。修改init.pp文件
class mytest {
  notify {hi: 
    message => "Hello, Puppet",
  }
  package { tree:
    ensure => present,
  }
}


然后在agent机器上运行一下,就发现tree已经被puppet装上了。


其它

关于变量:
http://docs.puppetlabs.com/guides/language_guide.html#variables

templates目录下的erb模版的问题

如果用facter中的变量,直接使用:
<%= ipaddress %>

如果用自己pp文件中定义的变量,需要加@符号在变量名前:
<%= @myvar %>




常用资源类型:
http://docs.puppetlabs.com/references/stable/type.html


pull和push

puppet是个pull模型,也就是说agent从master拉取配置到本地执行。
如果有个命令想让所有agent执行,也就是说想从master将指令push到agents,可以在master的机器上运行:
puppet kick


这样所有连接的agents就会执行pull操作,从master拉取配置到本地

参考这里



一个常用的vim支持:
首先要有pathogen
https://github.com/tpope/vim-pathogen/
然后安装
https://github.com/rodjek/vim-puppet/

riak的puppet模块:
http://forge.puppetlabs.com/bruce/riak
不过好像无法访问

Install Riak using Basho packages on Ubuntu/Debian
https://github.com/brhelwig/puppet-riak

另外一个,不过有一年没更新了
https://github.com/monokrome/puppet-riak

https://gist.github.com/1038441
分享到:
评论

相关推荐

    puppet入门经典语法讲解

    ### Puppet 入门经典语法详解 #### Puppet简介 Puppet是一种强大的配置管理工具,主要用于数据中心自动化...对于希望进一步深入学习的读者,建议参考官方文档和社区资源,以获取更多关于Puppet的高级特性和最佳实践。

    puppet使用工具

    Facts提供了关于Puppet节点的硬件和操作系统信息,Hiera则作为一种数据分层存储解决方案,用于管理Puppet代码中的配置数据。Hiera可以与facts结合使用,以实现基于节点特征的动态配置。 六、节点管理 Puppet的节点...

    Pro.Puppet.pdf

    《Pro Puppet》这本书由James Turnbull和Jeffrey McCune合著,于2011年5月4日出版,是一本关于Puppet集中配置管理系统的技术专著。Puppet是一种自动化工具,用于管理服务器配置并确保它们保持在所需的状态,这有助于...

    puppet资料整合

    本资料整合了关于Puppet的配置文档、语法详解以及丰富的实践案例,旨在帮助用户深入理解和熟练运用Puppet。 1. **Puppet概述** Puppet是一款开源的配置管理框架,它采用模型驱动的方法,通过定义资源和其状态,...

    Puppet给运维带来的变革

    #### 关于Puppet Puppet是一种开源的自动化配置管理工具,主要用于简化IT基础设施的部署、管理和维护过程。它的目标是通过标准化的方式来管理服务器配置,确保系统的稳定性和一致性。Puppet支持多种操作系统,包括...

    Puppet2D 2.4

    这些链接指向了相关技术社区,开发者可以在这些平台上找到更多关于Puppet2D的使用技巧、教程以及与其他用户的交流经验,帮助他们更好地掌握这款工具并解决在实际使用中遇到的问题。 总的来说,Puppet2D 2.4是Unity...

    puppet 3 Beginner's Guide + Puppet 3 Cookbook

    《Puppet 3 Beginner's Guide》与《Puppet 3 Cookbook》是两本关于Puppet配置管理工具的重要参考资料,尤其适合初学者和实践者。Puppet是一种自动化管理平台,它可以帮助IT管理员统一管理大规模的服务器集群,实现...

    puppet2.6配置手册

    #### 一、关于Puppet ##### 1.1 什么是Puppet? Puppet是一种强大的集中式配置管理系统,专为Linux、Unix平台设计,使用自有的Puppet描述语言,能够高效地管理配置文件、用户账户、Cron任务、软件包以及系统服务等...

    puppet入门

    常见问题解答部分提供了关于 Puppet 使用过程中可能出现的问题及其解决方案,帮助用户更好地理解和使用 Puppet。 --- 以上内容涵盖了 Puppet 的基本概念、安装方式、语法基础以及常用资源类型等知识点。通过这些...

    puppet学习

    5. **事实(Facts)**:事实是关于Puppet代理节点的变量,可以是系统信息如操作系统版本、内存大小等。这些信息在运行时被收集,可用于动态配置。 6. ** Puppet Forge**:Puppet Forge是官方的模块仓库,你可以在...

    PDF-Puppet2.7CookbookBook-英文版.rar

    《PDF-Puppet2.7 Cookbook Book - 英文版》是一个关于Puppet 2.7版本的实战指南,旨在帮助用户深入理解和应用Puppet这一强大的自动化配置管理工具。Puppet是一种开源的IT基础设施自动化框架,它允许系统管理员通过...

    puppet 入门,puppet 中文,puppet安装

    ### Puppet 入门详解 #### 1. Puppet 简介 ##### 1.1 Puppet 是什么? Puppet 是一款专为数据中心自动化管理设计的配置管理工具,它采用客户端/服务器(C/S)架构,旨在简化大规模服务器环境的管理与配置。在 ...

    Puppet实战-Puppet主机、模块、类、资源、变量、参数、标签命名规范

    以上就是关于Puppet中主机、模块、类、资源、变量、参数和标签的命名规范介绍。遵循这些规范有助于构建清晰、一致且易于维护的Puppet环境。此外,良好的命名习惯也是实现高效团队协作的重要因素之一。希望通过对这些...

    puppet服务端安装流程

    Facter 是一个事实收集器,用于收集关于节点的信息。可以通过以下步骤安装 Facter: 1. 下载 Facter 的源代码: ```bash wget http://downloads.puppetlabs.com/facter/facter-1.6.8.tar.gz ``` 2. 解压并进入...

    Puppet运维自动化全部文档

    Puppet 运维自动化章节目录 一、 Puppet 介绍 1. 2014年新增Puppet 微信公众平台,欢迎各位大神交流学习 2. 如何将Puppet模块生成带有箭头关系依赖图 3. 如何从互联网获取 Puppet的各项特殊资源 4. Puppet...

    puppet environment配置示例

    Puppet是自动化管理工具,常用于IT基础设施的配置和管理。在Puppet中,"环境"的概念是核心特性之一,它允许我们为不同的目的(如开发、测试和生产)设置独立的配置。本示例将详细介绍如何配置和管理Puppet环境,以及...

    puppet_certificate.pdf

    ### Puppet证书管理与Puppet CA详解 #### 概览 Puppet作为一个强大的配置管理工具,其安全性机制之一依赖于公钥基础设施(Public Key Infrastructure,简称PKI)。在Puppet环境中,Puppet Agent向Puppet Master...

    puppet安装配置手册

    **Puppet 安装配置手册** Puppet 是一个强大的自动化管理工具,用于配置、管理和监控IT基础设施。它允许系统管理员通过定义资源的状态来自动化IT环境的配置,确保系统的合规性和一致性。以下是对 Puppet 安装配置...

    puppet文档

    ### Puppet文档概述与知识点解析 #### 一、Puppet概览 Puppet是一款开源的、基于Ruby语言的系统配置管理工具。它通过客户端/服务器(C/S)模式进行部署,适用于多种操作系统,如Linux、Windows等。Puppet采用了一种...

Global site tag (gtag.js) - Google Analytics