foreman架构的引入7-Foreman结合mcollective完成push动作
在foreman-proxy的1.6.3版本,至少提供了以下五种触发puppet agent命令的工具,默认使用的是puppetrun,不过已经过时,这里介绍如何使用mcollective进行触发,下个章节会介绍如何使用puppetssh触发。 #puppetrun(forpuppetrun/kick,deprecatedinPuppet3) #mcollective(usesmcopuppet) #puppetssh(runpuppetoverssh) #salt(usessaltpuppet.run) #customrun(callsacustomcommandwithargs) 在整个测试之前,首先要保障你的mco+mq在命令行操作的情况下是OK的。如果没有OK或者不懂什么是mco+mq,请参考之前的文章。 如何是OK的?如下: [root@puppetmaster162yum.repos.d]#mcopuppet-vrunonce Discoveringhostsusingthemcmethodfor2second(s)....1 *[============================================================>]1/1 puppetmaster162.kisspuppet.com:OK {:summary=>"StartedaPuppetrunusingthe'puppetagent--test--color=false--splay--splaylimit30'command"} ----rpcstats---- Nodes:1/1 Pass/Fail:1/0 StartTime:WedDec1716:22:15+08002014 DiscoveryTime:2004.22ms AgentTime:71.49ms TotalTime:2075.70ms 1、在Foreman中开启puppet插件的puppetrun功能 Foreman安装 Foreman安装 2、配置foreman-proxy代理的puppet的puppet_provider [root@puppetmaster162~]#vim/etc/foreman-proxy/settings.d/puppet.yml --- #Puppetmanagement :enabled:true :puppet_conf:/etc/puppet/puppet.conf #validproviders: #puppetrun(forpuppetrun/kick,deprecatedinPuppet3) #mcollective(usesmcopuppet) #puppetssh(runpuppetoverssh) #salt(usessaltpuppet.run) #customrun(callsacustomcommandwithargs) :puppet_provider:mcollective ... 3、配置sudoer,添加mco命令 [root@puppetmaster162~]#vim/etc/sudoers.d/foreman-proxy foreman-proxyALL=NOPASSWD:/usr/bin/puppetcert*,/usr/bin/mcopuppetrunonce* Defaults:foreman-proxy!requiretty [root@puppetmaster162~]#/etc/init.d/foreman-proxyrestart Stoppingforeman-proxy:[OK] Startingforeman-proxy:[OK] 4、页面测试puppetrun按钮 Foreman安装 成功之后的显示 Foreman安装 5、查看报告看更详细的信息 #可以通过日志查看执行情况 [root@puppetmaster162yum.repos.d]#tailf/var/log/foreman-proxy/proxy.log 192.168.20.11--[17/Dec/201416:25:36]"POST/runHTTP/1.1"200-0.5454 以上 [root@puppetmaster162~]#cat/etc/foreman-proxy/settings.yml ... :log_file:/var/log/foreman-proxy/proxy.log #validoptionsare #WARN,DEBUG,Error,Fatal,INFO,UNKNOWN :log_level:DEBUG#开启debug模式,显示更详细的信息,排错的时候使用。1.5版本之前默认是开启的 [root@puppetmaster162yum.repos.d]#tailf/var/log/foreman-proxy/proxy.log I,[2014-12-17T16:27:43.148519#24337]INFO--:'foreman_proxy'settingswereinitializedwithdefaultvalues::enabled:true W,[2014-12-17T16:27:43.155592#24337]WARN--:Couldn'tfindsettingsfile/etc/foreman-proxy/settings.d/facts.yml.Usingdefaultsettings. I,[2014-12-17T16:27:43.155860#24337]INFO--:'facts'settingswereinitializedwithdefaultvalues::enabled:true I,[2014-12-17T16:27:43.163012#24337]INFO--:'dns'moduleisdisabled. I,[2014-12-17T16:27:43.163513#24337]INFO--:'tftp'moduleisdisabled. I,[2014-12-17T16:27:43.163933#24337]INFO--:'dhcp'moduleisdisabled. I,[2014-12-17T16:27:43.579571#24337]INFO--:'puppet'settingswereinitializedwithdefaultvalues::puppetdir:/etc/puppet I,[2014-12-17T16:27:43.583486#24337]INFO--:'bmc'moduleisdisabled. I,[2014-12-17T16:27:43.583655#24337]INFO--:'chefproxy'moduleisdisabled. I,[2014-12-17T16:27:43.583934#24337]INFO--:'realm'moduleisdisabled. D,[2014-12-17T16:28:15.059328#24344]DEBUG--:abouttoexecute:/usr/bin/sudo-uroot/usr/bin/mcopuppetrunonce-Ipuppetmaster162.kisspuppet.com 192.168.20.11--[17/Dec/201416:28:15]"POST/runHTTP/1.1"200-0.5468 失败的情况如下: Foreman安装 [root@puppetmaster162~]#tailf/var/log/foreman-proxy/proxy.log I,[2014-12-17T16:27:43.163933#24337]INFO--:'dhcp'moduleisdisabled. I,[2014-12-17T16:27:43.579571#24337]INFO--:'puppet'settingswereinitializedwithdefaultvalues::puppetdir:/etc/puppet I,[2014-12-17T16:27:43.583486#24337]INFO--:'bmc'moduleisdisabled. I,[2014-12-17T16:27:43.583655#24337]INFO--:'chefproxy'moduleisdisabled. I,[2014-12-17T16:27:43.583934#24337]INFO--:'realm'moduleisdisabled. D,[2014-12-17T16:28:15.059328#24344]DEBUG--:abouttoexecute:/usr/bin/sudo-uroot/usr/bin/mcopuppetrunonce-Ipuppetmaster162.kisspuppet.com 192.168.20.11--[17/Dec/201416:28:15]"POST/runHTTP/1.1"200-0.5468 D,[2014-12-17T16:32:56.924849#24344]DEBUG--:abouttoexecute:/usr/bin/sudo-uroot/usr/bin/mcopuppetrunonce-Ipuppetmaster162.kisspuppet.com 192.168.20.11--[17/Dec/201416:32:57]"POST/runHTTP/1.1"200-0.6095 D,[2014-12-17T16:32:57.878231#24344]DEBUG--:abouttoexecute:/usr/bin/sudo-uroot/usr/bin/mcopuppetrunonce-Iforeman163.kisspuppet.com W,[2014-12-17T16:33:20.364704#24344]WARN--:Non-nullexitcodewhenexecuting'/usr/bin/sudo-uroot/usr/bin/mcopuppetrunonce-Iforeman163.kisspuppet.com' E,[2014-12-17T16:33:20.368673#24344]ERROR--:Failedpuppetrun:CheckLogfiles 192.168.20.11--[17/Dec/201416:33:20]"POST/runHTTP/1.1"5003422.4920 备注:Foreman在命令执行后的显示这块做的其实很不好的,如何能够将所有节点执行的情况动态或者显示在界面上就更好了! 本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/1591389,如需转载请自行联系原作者