关于puppet

推荐书
Pro puppet

无法忍受
Puppet Cookbook的排版
这里有个更好的[url=http://www.puppetcookbook.com/]Puppet Cookbook[/url]


[size=xx-large]1. 基本概念[/size]

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

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

[size=x-large]1.1 ubuntu下的启动[/size]
启动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进行配置了。


[size=x-large]1.2 Hello, puppet[/size]
在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装上了。


[size=xx-large]其它[/size]

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

[size=x-large]templates目录下的erb模版的问题[/size]

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

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


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


[size=large]pull和push[/size]

puppet是个[url=http://agiletesting.blogspot.com/2010/03/automated-deployment-systems-push-vs.html]pull模型[/url],也就是说agent从master拉取配置到本地执行。
如果有个命令想让所有agent执行,也就是说想从master将指令push到agents,可以在master的机器上运行:
puppet kick


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

参考[url=https://groups.google.com/forum/?fromgroups=#!topic/puppet-users/8z05rmH0RX4]这里[/url]


一个常用的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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值