MCollective Server Config 2013-04-22

MCollective基本配置


    此文档描述 MCollective 2.0.0 及以后的 MCollective Server 配置,之前版本的 MCollective 可能会缺少某些特性。


ActiveMQ Config For MCollective 2013-04-22

ActiveMQ 基本配置


    Apache ActiveMQ 是 MCollective 官方推荐的中间件产品。这是一个很好的软件,但 是它的 XML 配置文件庞大且笨拙,在一个复杂的 MCollective 部署中可能需要编辑很 多区段。这里试图描述与 MCollective 相关的所有重要 ActiveMQ 设置。


MCollective Security Config 2013-04-22

MCollective安全配置


    作为 MCollective 重要部分就是考虑安全。默认情况下允许所有的代理和所有节点所有代理 进行通信。问题是通过这种方法如果在某个节点有一个不受信任的用户他就能够安装一个客户 端应用程序来从 server 配置文件中读取用户名/密码从而控制整个体系结构。本部分分析在 MCollective 使用过程中的安全问题,并提供几种安全方案。


Puppet Internals 2013-04-08

Puppet内部原理

本文档目标是描述Puppet的 manifest在系统上是如何工作。此过程相当复杂,但是一般也不需要了解其中太多的细节。整理此文档也正是为了那些想了解更多关于Puppet内部机制人更方便更直接理解。

在介绍之前,我们先看两个关于Puppet的经典图。一方面希望这两幅图能帮助理解,另一方面也希望下面的解释能帮助理解这两幅图。

Puppet架构图

图片

Puppet工作流程图

Deploy MCollective in Production Environment 2013-03-24

MCollective生产环境安装部署思路

MCollective(后面简称mco)生产环境安装需要考虑到单个client/server节点的安装、ActiveMQ集群、Subcollectives的划分和实际环境等问题,需要分阶段分内容安装部署。这里我把需要安装的节点简单分为三类,具体表示请见图。

图片

1.Client节点:运行MCollective Client Code。管理员操作中心,它可以直接就是ActiveMQ节点。

2.Sub-collectives主节点:ActiveMQ 节点(Client可选),每个区域(数据中心)都有一个ActiveMQ实例。区域节点只能与本地其他节点通过该中间件通信。这里需要注意main-collective也是一种Sub-collective。

3.ActiveMQ实例间通过使用OpenWire协议通信。可运行在IPSec之上,也支持SSL。

Puppet CA 2013-03-24

概述

puppet尽量依靠标准。就安全而言,它使用标准的SSL证书用于client和master的认证。这意味着客户端验证它与正确的server通信而且server验证它与正确的客户端通信。

由于为每个client颁发签名证书和管理自己认证权限复杂性的代价,puppet包括了它自己的认证授权(CA)。puppet并对使用这个认证授权进行了优化而且它也可被用于其他用途的生成证书。puppet证书管理主要目标是保持简单,并尽可能不让其更加明显。

puppetca是用于管理puppet认证授权的应用程序。它允许生成,撤销、签名、删除证书和显示签名请求列表。默认情况下,puppetmastered有认证授权中心功能。

证书

在puppetd或者puppetmasterde第一次执行时client和master自动生成证书,分别地,puppetd(client端puppet),第一次连接master时会接受master证书并且保存。至此之后就会验证从master处获得证书的唯一性。

Remote Interaction 2013-03-17

远程交互--Remote Interaction

Fabric基本操作,run和sudo,能够将本地输入发送到远程终端,以一种几乎和SSH相同的方式。这时你就像在和远程主机直接交互一样,例如程序提示输入密码之类。

然而,正如ssh本身一样,fabric在实现该功能时同样受到一些局限,因此并不总是很直观。


合并stdout和stderr

第一个需要讨论的问题就是标准输出和标准错误流,为什么它们能够根据需要分开和合并

Fabric 0.9以及之前版本,以至python自身,buffer输出都是基于line-by-line。除非一个新行字母(character)出现,否则文本不会被打印出来,这在大都数情况下工作的很好,但是当一个人需要处理半行输出(例如prompts)时会出现问题。

Fabric API 2013-03-16

Fabric API Full List

Core API

核心API主要有七类:带颜色的输出类(color output),上下文管理类(context managers), 装饰器类(decorators), 网络类(network), 操作类(oprations), 任务类(tasks), 工具类(utils)。

Color Output

每一个包含这个模块的函数返回String带有颜色。比如:

ActiveMQ Middleware 2013-03-16

ActiveMQ中间件

此部分公分三小部分,即ActiveMQ安全,ActiveMQ TLS,ActiveMQ 集群。


ActiveMQ 安全

作为MCollective重要部分就是考虑安全。目前看到的例子都是允许所有的代理和所有的节点代理进行通信。问题是通过这种方法如果在某个节点有一个不受信任的用户他就能够安装一个客户端应用程序来从server配置文件中读取用户名/密码从而控制整个体系结构。

默认的消息主题格式与ActiveMQ Wildcard 模式相兼容,因此可以做细粒度的控制。

ActiveMQ Wildcard模式

Common Plugin 2013-03-16

常见插件类型

常见插件类型有以下:data plugins(数据插件), discovery plugins(发现插件), result aggregation plugins(结果聚类插件), registration plugins(注册插件), fact source plugins(事实源插件).


data plugins(数据插件)

直到mcollective 2.0发现系统仍只能发现安装的代理、配置管理类(puppet classes)、facts和节点identities。可以通过插件系统来支持发现更多的源sources.

注意:这个功能在2.1中可用。

基本的思想就是你可以通过下面这样的发现语句来实现: