openqrm将puppet作为plugin集成进去。但是远达不到puppet原系统的提供的功能。
下面是我在openqrm中去安装、配置、使用puppet。
1、 首先要弄懂puppet是什么,个人觉得这个实在太重要了,不然很难理解puppet的使用。
Puppet是数据中心中,自动配置工具。客户端通过向服务器请求,将需要配置的服务,
或者操作命令从服务器端pull到本地,然后再应用运行。从而达到对众多节点的管理
puppet有两种结构:serverless模式、C/S模式。建议从serverless出发理解其结构特征。
这里从C/S模式来描述puppet结构。
具体结构参考:
http://docs.puppetlabs.com/learning/agent_master_basic.html
在以上的结构中,Puppet使用ssl认证来保护master与agent之间的通信,所以没用通过认证,agent就不能完全运行,agent必须通过认证。
当agent发起一个请求之后,master就会去agent进行认证,认证通过之后,master会编译其上写好的manifest代码,并在agent上创建一个catalog信息。Agent会将catalog中保存的configuration应用到其自身之上,即安装软件、或者配置某个服务等等。
这里有几个术语说明一下:
Manifest:是一个使用puppet语言写成的代码(这个语言是puppet自带的,应该是为了统一接口,或者为了实现其RAL而创立的),以.pp为后缀,这些代码总的来说,就描述了agent需要完成的操作。C/S模式下,manifest是放在master端的,serverless模式,manifest位于agent端。在C/S模式下,master负责对manifest进行编译。
Catalog:就是所有将要被应用到agent端的资源集(资源可以是文件、用户、服务、甚至是一段shell命令)
关于其他属性请参考:
http://docs.puppetlabs.com/learning/agent_master_basic.html
2、 大致了解了puppet的结构,现在就将如何在openqrm中使用他。
首先要安装,客户端、和服务器端(这里最好让服务器端是与openqrm端处于同一端)
我的环境是客户端为centos 5.4,服务器端为 rhel6,这里采用yum安装方法:
rpm -ivh http://yum.puppetlabs.com/el/6/products/i386/puppetlabs-release-6-1.noarch.rpm
客户端:
yum install puppet –y
服务端:
Yum install puppet-server –y
其中会发现会有有些依赖包没有安装,可能需要手动下载安装。
或者直接下载rpm进行安装:
下载地址:http://yum.puppetlabs.com/el/5/products/i386/
注意:要在openqrm中使用puppet必须要在服务器端(master)安装 puppet服务器,(puppet客户端(agent)可选)
3、 配置puppet。
*首先是前期环境:dns。Puppet 的agent和master是通过主机名进行识别对方的。所以要配置dns。
或者如果只是测试,可以修改agent与master端/etc/hosts文件,是双方都能识别对方。
*注意agent与master双方的时钟要一致,可以自己搭建ntp服务器,或者直接同步国家标准时间服务器:
ntpdate 210.72.145.44
*agent端配置:
/etc/pupper/puppet.conf
[agent]模块:
server = 服务器端主机名(hostname)
certname = agent主机名
report = true
pluginsysc = false(如果你有自己定义的plugin,需要将其设定为true,如果没有就设为false,一样OK)
这部分概念参考:
[url]http://docs.puppetlabs.com/guides/plugins_in_modules.html
http://docs.puppetlabs.com/puppet/2.7/reference/modules_fundamentals.html
[/url]
*服务器(master端)配置。
我的试验环境中,采用了默认配置,什么都没改。
4、 使用puppet:
在客户端:
Puppet agent –test
若出现,如下信息
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
info: Creating a new SSL certificate request for yyp102
info: Certificate Request fingerprint (md5): 8C:78:19:09:BB:7E:44:9C:44:D6:93:29:EA:7D:CF:9A
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
Exiting; no certificate found and waitforcert is disabled
说明agent端没有获得master端的认证,
这是在master端执行:
puppet cert list
warning: You have configuration parameter $templatedir specified in [puppetmasterd], which is a deprecated section. I'm assuming you meant [master]
yyp102 (8C:78:19:09:BB:7E:44:9C:44:D6:93:29:EA:7D:CF:9A)
可以看到有个yyp102还没有需要认证,执行:
puppet cert sign yyp102。
说明:
有的时候,有需要agent重新申请认证:
在master端
puppet cert clean yyp102
在agent端:
rm -f /var/lib/puppet/ssl/certs/yyp102.pem
puppetd --test --trace --debug
没有看到异常错误就代表,此时配置是OK的
5、 结合openqrm使用:
在正确配置了puppet之后,启动openqrm中puppet插件,并在openqrm的deployment/puppet/apply选择,已有的资源(这个资源是openqrm的资源,不是puppet中的资源),然后选择某个资源之后,会看到puppet默认配置group,
选中其中的组件,并update。
这时
cd /etc/puppet/manifests (这个目录,不知道记没记错,如果不在这个目录,就到
openqrm所在的目录。默认为/usr/share/openqrm/plugin/puppet/etc/puppt/manifests/目录)
[root@yyp manifests]# ls
appliances classes groups site.pp
会在appliances 目录下生成一个以刚刚openqrm资源命名的.pp文件。这里以之前的yyp102为例。
注意,这里的命名中多了一个oqnet.org,这个是puppet默认的域名,为了能做到自动化,请将puppet的域名改掉(具体怎么改,我也没试过)
[root@yyp manifests]# cat appliances/yyp102.oqnet.org.pp
node 'yyp102.oqnet.org' {
include webserver
}
之所以要提一下这个“多了一个oqnet.org”,原因是,如果我的客户端yyp102没有域名,
这里需要将“oqnet.org”去掉,不然时延的时候就报错。
注:既然是学习openqrm集成puppet的使用,这里要看看webserver的内容。
6、 以上配置,
在agent端运行:
[root@yyp102 puppet]# puppetd --test --trace --debug
这时就能看到运行结果。
还可以在master端运行一个命令,也同样可以将配置应用到agent端。
puppet kick -d --host yyp102
具体请参考:
http://blog.sina.com.cn/s/blog_4e424e210100plcw.html
7、 要写自己manifest,必须要学习puppet语言。
以上为原创,转载请注明出处。
分享到:
相关推荐
puppet,精通Puppet配置管理工具,学习puppet必备
精通Puppet配置管理工具.高永超.扫描版.pdf
精通puppet 配置管理工具,扫描版。
puppet安装与配置 puppet是一款开源自动化部署工具,下面介绍puppet安装和配置
it 企业也在使用puppet,开源社区的fedora 也使用puppet 。国内的大公司也在准备从cfengine 转移到puppet 上面。 puppet是一个为实现数据中心自动化管理而设计的配置管理软件。基于c/s架构。puppet 的服务器端...
puppet安装配置手册
puppet environment配置示例,, 多个环境的配置与切换等,适合开发与生产隔离
Puppet集中管理配置LinuxUnix系统
puppet2.6配置手册 学习资料 非常不错
puppet开源自动化配置管理平台介绍
随着数据中心服务器的...另外很多世界知名的it企业也在使用puppet,开源社区的fedora也使用puppet。国内的大公司也在准备从cfengine转移到puppet上面。 本文档的目的是让初学者对puppet有一个简单的认识能快速的入门!
puppet-rvm, 用于安装和使用 RVM ( ruby 版本管理器)的Puppet 模块 用于 ruby 版本管理器( RVM )的 Puppet 模块这个模块处理安装系统 RVM ( 也称为 root的多用户安装) 并使用它来安装红宝石和 Gems 。 还包括安装和...
Puppet 运维自动化章节目录 一、 Puppet 介绍 1. 2014年新增Puppet 微信公众平台,欢迎各位...10. puppet开源自动化配置管理平台介绍 11. puppet网址资源汇总方便查询(不断更新中) 12. puppet3.x 新特性介绍
puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的...
puppet配置管理工具配置文档,已经puppet语法和各种案例解析
puppet是一种Linux、Unix平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及...
(可重复使用的)Puppet配置文件列表。 这些配置文件旨在最大程度地发挥角色配置文件范式的作用。 它旨在与hiera一起使用。 配置文件本身往往几乎没有参数或没有参数。 使用hiera,可以直接为基础类指定参数。 ...