foreman架构的引入7-Foreman结合mcollective完成push动作

零基础学习Puppet自动化配置管理系列文档

注:以下内容是在foreman1.6.3+puppet2.6.2环境下进行操作。更多配置请参考官网http://theforeman.org/manuals/1.6/index.html

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

#   puppetrun   (for puppetrun/kick, deprecated in Puppet 3)
#   mcollective (uses mco puppet)
#   puppetssh   (run puppet over ssh)
#   salt        (uses salt puppet.run)
#   customrun   (calls a custom command with args)

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

如何是OK的?如下:

[[email protected] yum.repos.d]# mco puppet -v runonce
Discovering hosts using the mc method for 2 second(s) .... 1
 * [ ============================================================> ] 1 / 1
puppetmaster162.kisspuppet.com          : OK
    {:summary=>      "Started a Puppet run using the ‘puppet agent --test --color=false --splay --splaylimit 30‘ command"}
---- rpc stats ----
           Nodes: 1 / 1
     Pass / Fail: 1 / 0
      Start Time: Wed Dec 17 16:22:15 +0800 2014
  Discovery Time: 2004.22ms
      Agent Time: 71.49ms
      Total Time: 2075.70ms

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

Foreman安装

Foreman安装

2、配置foreman-proxy代理的puppet的puppet_provider

[[email protected] ~]# vim /etc/foreman-proxy/settings.d/puppet.yml 
---
# Puppet management
:enabled: true
:puppet_conf: /etc/puppet/puppet.conf
# valid providers:
#   puppetrun   (for puppetrun/kick, deprecated in Puppet 3)
#   mcollective (uses mco puppet)
#   puppetssh   (run puppet over ssh)
#   salt        (uses salt puppet.run)
#   customrun   (calls a custom command with args)
:puppet_provider: mcollective
...

3、配置sudoer,添加mco命令

[[email protected] ~]# vim /etc/sudoers.d/foreman-proxy 
foreman-proxy ALL = NOPASSWD : /usr/bin/puppet cert *, /usr/bin/mco puppet runonce *
Defaults:foreman-proxy !requiretty

[[email protected] ~]# /etc/init.d/foreman-proxy restart
Stopping foreman-proxy:                                    [  OK  ]
Starting foreman-proxy:                                    [  OK  ]

4、页面测试puppetrun按钮

Foreman安装

成功之后的显示

Foreman安装

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

#可以通过日志查看执行情况
[[email protected] yum.repos.d]# tailf  /var/log/foreman-proxy/proxy.log
192.168.20.11 - - [17/Dec/2014 16:25:36] "POST /run HTTP/1.1" 200 - 0.5454

以上

[[email protected] ~]# cat /etc/foreman-proxy/settings.yml
...
:log_file: /var/log/foreman-proxy/proxy.log
# valid options are
# WARN, DEBUG, Error, Fatal, INFO, UNKNOWN
:log_level: DEBUG  #开启debug模式,显示更详细的信息,排错的时候使用。1.5版本之前默认是开启的

[[email protected] yum.repos.d]# tailf  /var/log/foreman-proxy/proxy.log
I, [2014-12-17T16:27:43.148519 #24337]  INFO -- : ‘foreman_proxy‘ settings were initialized with default values: :enabled: true
W, [2014-12-17T16:27:43.155592 #24337]  WARN -- : Couldn‘t find settings file /etc/foreman-proxy/settings.d/facts.yml. Using default settings.
I, [2014-12-17T16:27:43.155860 #24337]  INFO -- : ‘facts‘ settings were initialized with default values: :enabled: true
I, [2014-12-17T16:27:43.163012 #24337]  INFO -- : ‘dns‘ module is disabled.
I, [2014-12-17T16:27:43.163513 #24337]  INFO -- : ‘tftp‘ module is disabled.
I, [2014-12-17T16:27:43.163933 #24337]  INFO -- : ‘dhcp‘ module is disabled.
I, [2014-12-17T16:27:43.579571 #24337]  INFO -- : ‘puppet‘ settings were initialized with default values: :puppetdir: /etc/puppet
I, [2014-12-17T16:27:43.583486 #24337]  INFO -- : ‘bmc‘ module is disabled.
I, [2014-12-17T16:27:43.583655 #24337]  INFO -- : ‘chefproxy‘ module is disabled.
I, [2014-12-17T16:27:43.583934 #24337]  INFO -- : ‘realm‘ module is disabled.
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
192.168.20.11 - - [17/Dec/2014 16:28:15] "POST /run HTTP/1.1" 200 - 0.5468

失败的情况如下:

Foreman安装

[[email protected] ~]# tailf  /var/log/foreman-proxy/proxy.log
I, [2014-12-17T16:27:43.163933 #24337]  INFO -- : ‘dhcp‘ module is disabled.
I, [2014-12-17T16:27:43.579571 #24337]  INFO -- : ‘puppet‘ settings were initialized with default values: :puppetdir: /etc/puppet
I, [2014-12-17T16:27:43.583486 #24337]  INFO -- : ‘bmc‘ module is disabled.
I, [2014-12-17T16:27:43.583655 #24337]  INFO -- : ‘chefproxy‘ module is disabled.
I, [2014-12-17T16:27:43.583934 #24337]  INFO -- : ‘realm‘ module is disabled.
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
192.168.20.11 - - [17/Dec/2014 16:28:15] "POST /run HTTP/1.1" 200 - 0.5468
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
192.168.20.11 - - [17/Dec/2014 16:32:57] "POST /run HTTP/1.1" 200 - 0.6095
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
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‘
E, [2014-12-17T16:33:20.368673 #24344] ERROR -- : Failed puppet run: Check Log files
192.168.20.11 - - [17/Dec/2014 16:33:20] "POST /run HTTP/1.1" 500 34 22.4920

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

时间: 2024-11-08 17:26:49

foreman架构的引入7-Foreman结合mcollective完成push动作的相关文章

foreman架构的引入1-foreman作为自动化运维工具为什么会如此强大

零基础学习Puppet自动化配置管理系列文档 在引入foreman之前,笔者曾经大幅度测试过puppet的另外一个生态圈前端软件,那就是KermIT(kermit.fr需要墙).说实话基于KermIT这套架构还是相当不错的,尤其是在于mcollective的各种插件结合上做的很完美,可惜社区太不活跃,软件版本更新超慢,坑超多,最终还是放弃了.不过,他的架构还是值得借鉴的,对于那些想自己在puppet前端做UI的朋友可以多参考参考. 本文引入另外一个非常出色的前端管理工具Foreman,什么是fo

foreman架构的引入6-整合puppetmaster

零基础学习Puppet自动化配置管理系列文档 注:以下内容是在foreman1.6.3+puppet2.6.2环境下进行操作.更多配置请参考官网http://theforeman.org/manuals/1.6/index.html 安装好foreman和puppetmaster之后,接下来做的事情就是做整合,目前foreman可以管理puppet的环境.类.类里的变量.报告.facter等信息.接下来会逐一进行介绍. 1.首先要保证智能代理已经代理了puppet和puppet CA Forem

foreman架构的引入10-hostgroup如何转换为本地的fact

零基础学习Puppet自动化配置管理系列文档 在Foreman上可以根据业务逻辑设置多个主机组(Host Groups),并且可以将不同的节点加入到不同的主机组,这样在每次操作"puppet run"的时候,只需要在搜索按钮里搜索对应的主机组即可找到里面包含的所有节点,如下图所示 Foreman安装 但是,foreman目前在puppet run上对mcollective的集成度很低,基本就是只能运行一条命令.那么如果要在shell终端上通过mco命令去对这些自定义的Host Grou

foreman架构的引入4-安装Foreman1.6.3架构(foreman与puppetmaster分离)

零基础学习Puppet自动化配置管理系列文档 注意:本实验是在离线情况下安装的,所以需要在本地创建自己的yum仓库,创建方法可参考<如何根据版本制作属于自己的puppet yum源>,如何你实在是比较懒或者搞不定rpm包之间的依赖关系,那就去我的github上下载吧:https://github.com/kisspuppet/foreman-repo 更多安装细节请参考官网:http://theforeman.org/manuals/1.6/index.html 之前讲的all-in-one方

foreman架构的引入2-安装前环境准备

零基础学习Puppet自动化配置管理系列文档 Foreman官网提供了每个版本非常完善的安装步骤,无论是源码安装还是rpm包安装都变得非常方便.而且Foreman通过puppet模块对安装步骤进行了封装并提供了大量的安装参数可以传输,相当的方便.不过由于其体系过大,代理很多软件,安装的软件包超多,安装过程也并非那么简单. 以下是需要考虑的问题及解决方法 特别说明:接下来的所有的推荐说明.操作和测试都是基于目前最新版1.5.4进行的,而1.6版本只更新了2个Release,还不太稳定. 关于For

MCollective架构篇1-MCollective架构的引入

零基础学习Puppet自动化配置管理系列文档 Marionette Collective(MCollective)是一个与Puppet关系密切的服务运行框架.Puppet擅长管理系统的状态,但agent默认的30 分钟间隔的运行方式使它不合适作为实时管理控制工具使用,而MCollective的功能定位正式面向大规模主机群的实时任务并行处理.它离线消息中间件 技术实现检点间的信息传递,大量主机可以基于自身的某些固有属性(元数据)而非主机名进行分组,这意味着用这些信息按照不同标准将集群分为多个群组,

Foreman 安装

Foreman 1.13.0-RC1发布了,Foreman是一个集成的数据中心生命周期管理工具,提供了服务开通,配置管理以及报告功能,和 Puppet Dahboard一样,Foreman 也是一个 Ruby on Rails 程序(基础教程qkxue.net).Foreman 和 Dashboard 不同的地方是在于,Foreman 更多的关注服务开通和管理数据中心的能力,例如和引导工具,PXE 启动服务器(腾云科技ty300.com),DHCP 服务器及服务器开通工具进行集成.Foreman

Ubuntu 14.04系统安装 Foreman

Foreman是一个集成的数据中心生命周期管理工具,提供了服务开通,配置管理以及报告 功能,和Puppet Dahboard一样,Foreman也是一个Ruby on Rails程序.Foreman和 Dashboard不同的地方是在于,Foreman更多的关注服务开通和管理数据中心的能力,例如和引导工具,PXE启动服务器,DHCP服务器及服务 器开通工具进行集成. Foreman 机器统一管理平台 Foreman可以与Puppet集成使用,通常是作为puppet的前端接入. Foreman t

puppet foreman

服务器(物理机器和虚拟机)多了以后需要工具来管理,经常登陆系统后不知是在虚拟机上还是在物理机上?如果在虚拟机上这个虚拟机运行在哪个服务器节 点(host)上?如果在物理机上运行在什么配置的物理机上?运行在 Dell 刀片服务器上还是 IBM 超级计算机上,SUN 服务器上还是普通 PC 上?这个系统 IP 是多少?域名是啥?有几个网卡?分别走的哪个交换机?有没有连到 SAN 存储等等?无数问题,我们需要一个统一查看和管理所有机器(物理机和虚拟机)的这么一套工具.Foreman 就是这么一个集成了