读书频道 > 网站 > 网页设计 > 精通Puppet配置管理工具(第2版)
1.5 连接客户端
14-11-01    奋斗的小年轻
收藏    我要投稿   
本书系统介绍了开源配置管理工具Puppet,并提供了帮助使用Puppet 的大量资源。书中介绍了如何将Puppet 应用在包括Windows 在内的多种平台上,如何使用Puppet 模块和Hiera,如何使用大量免费好用的Puppet 附立即去当当网订购
 
配置好并启动Puppet master后,就可以配置并初始化agent了。如前所述,在部署agent的主机上,需要用操作系统的包管理工具安装puppet包和facter包。下面我们先在一台名为node1.pro-puppet.com的主机上安装agent,然后连接到一台名为puppet.pro-puppet.com的master主机上。
 
首次连接客户端,我们选择使用命令行前台运行的方式而不是后台服务的方式。这样我们可以看到连接过程中发生了什么,用puppet agent命令启动agent,可以看到代码清单1-5所示的连接初始化过程。
 
代码清单1-5 Puppet agent连接到Puppet master
node1# puppet agent --test --server=puppet.pro-puppet.com
Info: Creating a new SSL key for node1.pro-puppet.com
Info: Caching certificate for ca
Info: Creating a new SSL certificate request for node1.pro-puppet.com
Info: Certificate Request fingerprint (SHA256): 6F:0D:41:14:BD:2D:FC:CE:1C:DC:11:1E:26:07:4C:08:D0:C
7:E8:62:A5:33:E3:4B:8B:C6:28:C5:C8:88:1C:C8
Exiting; no certificate found and waitforcert is disabled
 
代码清单1-5中,puppet agent命令有两个参数,其中--server参数指定了agent要连接的Puppet master的主机名或者地址。
 
提示 这里我们采用了标准的服务器端-客户端方式运行Puppet master和agent,也就是master和agent分别在两台主机上运行。但实际上也可以在Puppet master所在主机上运行agent,这意味着Puppet可以用来管理它自己。
 
提示 如果不指定Puppet master主机名,Puppet会寻找一台名为puppet的主机作为master去连接,我们推荐为Puppet master主机指定一个规范名称(CNAME),如puppet.pro-puppet.com。另外,Puppet会通过查询SRV记录确定如何找到Puppet master主机和Puppet CA服务器,这些内容的详细介绍见第4章。
 
Puppet master的主机名称可以保存在agent主机的/etc/puppet/puppet.conf文件的[main]小节中:
# /etc/puppet/puppet.conf
[main]
server=puppet.pro-puppet.com
 
Puppet agent必须能够解析Puppet master的主机名(这就是为什么推荐为Puppet master指定一个规范名称,或者在agent主机的/etc/hosts文件中加入Puppet master)。--test选项使得Puppet以前台进程的方式运行agent,输出到标准输出,并且运行完毕后退出。默认情况下,Puppet client以守护进程方式运行,puppet agent命令以子进程方式启动Puppet守护进程后自己立即退出。 
 
从代码清单1-5中可以看到连接过程的输出,agent创建了一个证书签批请求(Certificate Signing Request,CSR)和一个用于加密传输的私钥,Puppet用SSL证书对master和agent间的连接进行认证,agent将证书签批请求发送给master,然后等待master签批并返回证书。
 
Puppet agent在发送完证书签批请求后就退出了,要得到认证后的证书,必须在CA签批证书签批请求后重新运行一次agent。可以通过配置waitforcert选项的方法改变agent的行为,使它在发送完证书签批请求后不退出,而是保持运行,周期性地查询证书签批请求是否被签批。这种配置一般需要对应地将master设置为自动签批(auto-signing)模式才有用,这一点本章后续会详细介绍。 
 
注意 可以通过设置--waitforcert选项来改变agent等待签批的时间。数值单位是秒,如果设为0,表明不等待证书签批,直接退出。
 
完成连接
 
要完成连接过程,认证agent,需要master签批agent发送来的证书,方法是在master上运行puppet cert命令(或puppetca命令):
puppet# puppet cert list
"node1.pro-puppet.com" (SHA256) 6F:0D:41:14:BD:2D:FC:CE:1C:DC:11:1E:26:07:4C:08:D0:C7:E8:62:A5:33:E3
:4B:8B:C6:28:C5:C8:88:1C:C8
 
提示 Puppet命令工具的完整列表参见http://docs.puppetlabs.com/guides/tools.html。
 
上面命令中的list选项列出了所有等待签批的证书,使用cert子命令的sign选项签批证书:
puppet# puppet cert sign node1.pro-puppet.com
Notice: Signed certificate request for node1.pro-puppet.com
Notice: Removing file Puppet::SSL::CertificateRequest node1.pro-puppet.com at
'/var/lib/puppet/ssl/ca/requests/node1.pro-puppet.com.pem'
 
用puppet cert sign --all命令签批所有等待签批的证书。
 
注意 除了单独签批每个证书,还可以开启自动签批(autosign)模式。在此模式下,master将自动签批所有来自指定IP或者IP范围内的证书签批请求,这种方式的安全性当然不如单独签批,所以请先确认你的集群网络有足够安全性的时候再开启这种模式。关于这个问题的详细解释参见http://docs.puppetlabs.com/guides/faq.html#why-shouldn-t-i-use-autosign-for-all-my-clients。
 
签批完证书两分钟后,可以在客户端上看到如下输出信息(如果不想等待两分钟,可以重启Puppet agent)。
# puppet agent --test
Info: Retrieving plugin
Info: Caching catalog for node1.pro-puppet.com
Info: Applying configuration version '1365655737'
Notice: Finished catalog run in 0.13 seconds
 
现在agent通过了master的认证,如果再次连接,会得到如下结果:
# puppet agent -t
Info: Retrieving plugin
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find default
node or by name with 'node1.example.com, node1' on node node1.pro-puppet.com
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
 
agent已经与master建立了连接,并且通过了认证,但是master上没有关于这个节点(主机名为node1.pro-puppet.com)的任何配置信息,所以这次连接收到了一个错误信息,我们必须在master上为这个agent创建一些配置信息。
 
警告 Puppet master和agent上保持时间准确非常重要,SSL认证对连接双方主机上的时间很敏感,如果时间不正确,认证有可能失败(请求连接方不可信)。连接前建议使用类似于NTP(Network Time Protocol)的工具保证连接双方时间的准确性,比较简单快捷的方法是在每一台主机上运行命令ntpdate bigben.cac.washington.edu命令(需要Internet连接),该命令执行一次NTP同步。
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站