在foreman-proxy的1.6.3版本,至少提供了以下五种触发puppet agent命令的工具,默认使用的是puppetrun,不过已经过时,这里介绍如何使用mcollective进行触发,下个章节会介绍如何使用puppetssh触发。

在整个测试之前,首先要保障你的mco+mq在命令行操作的情况下是OK的。如果没有OK或者不懂什么是mco+mq,请参考之前的文章。

如何是OK的?如下:

  1. Discovering hosts using the mc method for 2 second(s) .... 1
  2. * [ ============================================================> ] 1 / 1
  3. puppetmaster162.kisspuppet.com : OK
  4. {:summary=> "Started a Puppet run using the 'puppet agent --test --color=false --splay --splaylimit 30' command"}
  5. ---- rpc stats ----
  6. Nodes: 1 / 1
  7. Start Time: Wed Dec 17 16:22:15 +0800 2014
  8. Discovery Time: 2004.22ms
  9. Agent Time: 71.49ms
  10. Total Time: 2075.70ms

1、在Foreman中开启puppet插件的puppetrun功能

3、配置sudoer,添加mco命令

  1. [root@puppetmaster162 ~]# vim /etc/sudoers.d/foreman-proxy
  2. foreman-proxy ALL = NOPASSWD : /usr/bin/puppet cert *, /usr/bin/mco puppet runonce *
  3. Defaults:foreman-proxy !requiretty
  4. [root@puppetmaster162 ~]# /etc/init.d/foreman-proxy restart
  5. Starting foreman-proxy: [ OK ]

Foreman安装

成功之后的显示

5、查看报告看更详细的信息

失败的情况如下:

  1. I, [2014-12-17T16:27:43.163933 #24337] INFO -- : 'dhcp' module is disabled.
  2. I, [2014-12-17T16:27:43.579571 #24337] INFO -- : 'puppet' settings were initialized with default values: :puppetdir: /etc/puppet
  3. I, [2014-12-17T16:27:43.583486 #24337] INFO -- : 'bmc' module is disabled.
  4. I, [2014-12-17T16:27:43.583655 #24337] INFO -- : 'chefproxy' module is disabled.
  5. I, [2014-12-17T16:27:43.583934 #24337] INFO -- : 'realm' module is disabled.
  6. D, [2014-12-17T16:28:15.059328 #24344] DEBUG -- : about to execute: /usr/bin/sudo -u root /usr/bin/mco puppet runonce -I puppetmaster162.kisspuppet.com
  7. 192.168.20.11 - - [17/Dec/2014 16:28:15] "POST /run HTTP/1.1" 200 - 0.5468
  8. D, [2014-12-17T16:32:56.924849 #24344] DEBUG -- : about to execute: /usr/bin/sudo -u root /usr/bin/mco puppet runonce -I puppetmaster162.kisspuppet.com
  9. 192.168.20.11 - - [17/Dec/2014 16:32:57] "POST /run HTTP/1.1" 200 - 0.6095
  10. D, [2014-12-17T16:32:57.878231 #24344] DEBUG -- : about to execute: /usr/bin/sudo -u root /usr/bin/mco puppet runonce -I foreman163.kisspuppet.com
  11. W, [2014-12-17T16:33:20.364704 #24344] WARN -- : Non-null exit code when executing '/usr/bin/sudo-uroot/usr/bin/mcopuppetrunonce-Iforeman163.kisspuppet.com'
  12. E, [2014-12-17T16:33:20.368673 #24344] ERROR -- : Failed puppet run: Check Log files

备注:Foreman在命令执行后的显示这块做的其实很不好的,如何能够将所有节点执行的情况动态或者显示在界面上就更好了!