推荐书
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 介绍 1. 2014年新增Puppet 微信公众平台,欢迎各位大神交流学习 2. 如何将Puppet模块生成带有箭头关系依赖图 3. 如何从互联网获取 Puppet的各项特殊资源 4. Puppet...
配置管理软件有很多,最出名的是cfengine,但是cfengine的语法比较晦涩,于是出现了puppet 。puppet的语法简单,对管理内容的抽象很好,很容易理解代码,因此最近正迅速的流行开来。puppet是免费开源软件。可以自由...
With this book, you'll be up and running with using Puppet to manage your IT systems. Dive right in with basic commands so that you can use Puppet right away, and then blitz through a series of ...
puppet-lint, 检查你的Puppet 清单是否符合样式指南 Puppet Lint Puppet 测试 Puppet 代码against推荐的Puppet 语言样式指南 。 Puppet Lint仅验证代码样式;它不验证语法。 要测试语法,请使用 Puppet 命令的puppet...
Puppet
Write custom plugins for Puppet, including facts, providers, and functions Key Features Grasp recipes that work with centralized and decentralized deployments Explore language differences and ...
运维 puppet工具讲解,很详细 运维 puppet工具讲解,很详细
1.puppet 介绍 - 什么是puppet - puppet 能做什么 - puppet 如何做到 - puppet 目录结构介绍 2.运维自动化工具对比 - puppet vs cfengine - puppet vs chef 3.puppet 使用时注意事项 4.puppet 应用案例 -...
puppet 部署ELK
it 企业也在使用puppet,开源社区的fedora 也使用puppet 。国内的大公司也在准备从cfengine 转移到puppet 上面。 puppet是一个为实现数据中心自动化管理而设计的配置管理软件。基于c/s架构。puppet 的服务器端...
OpenStack Infra Puppet概述 本讲座将介绍OpenStack基础架构项目背后的Puppet代码。 关键点将是: 简要介绍-infra的范围和职责 在-infra后面介绍物理/虚拟,寿命长/临时的资源 讨论使用木偶的地方的高级布局 讨论...
puppet安装与配置 puppet是一款开源自动化部署工具,下面介绍puppet安装和配置
Puppet 的主要功能使用手势控制计算机。基本原理是用WebCamera/Kinect摄像头拍下人的手势动做,模拟鼠标对计算机的控制。
vagrant-librarian-puppet, 一个使用图书管理员 Puppet 安装 Puppet 模块的Vagrant插件 vagrant-librarian-puppet使用工具安装 Puppet 插件模块的 Vagrant插件插件。要求Vagrant版本 1.2.0或者更高版本。安装vagrant...
强大的puppet。linux管理的好工具。 服务端安装的详细流程。
puppet安装配置手册
puppet environment配置示例,, 多个环境的配置与切换等,适合开发与生产隔离