编写可管理农奴处理程序的助手

serf_master的Python项目详细描述


#农奴主[构建
状态](https://secure.travis ci.org/garethr/serf master.png)(http://travis ci.org/garethr/serf master)
[![覆盖范围
状态](https://covertalls.io/repos/garethr/serf-master/badge.png?branch=master)](https://coveralls.io/r/garethr/serf-master?分支=主)
[![代码
运行状况](https://landscape.io/github/garethr/serf master/master/landscape.png)(https://landscape.io/github/garethr/serf master/master)

[服务器](http://www.serfdom.io/)是一个非常好的服务发现和
编排框架,它允许您编写脚本来响应基础结构中的不同事件。不过,大多数
示例都是简单的shell脚本,其中嵌入了大量逻辑。
将其与围绕注册事件
处理程序的每主机配置结合起来,很容易构建一个不可靠的、难以推理的
环境。不一定非得这样。


serf是一个框架,你在上面构建的东西很重要。我想要具有以下属性的


*可测试的。我应该能够对整个配置进行单元测试。
*单个包。所有主机都应该得到相同的代码,代码
决定在哪里运行什么。
*单个事件处理程序。我宁愿处理关于用户事件或代码中角色的逻辑,而不是serf的参数。
*使处理程序可共享。您可以简单地扩展“serfhandler”并打包您自己的处理程序,例如“serf\u master\u haproxy”。


serf master尝试这样做,呈现为一个非常小的python框架,没有依赖关系。这里有一个例子:


数据库服务器具有“db”的serf角色,web服务器具有“web”的serf
角色。我们希望当一个新的服务器被添加到集群时,web服务器能够做出反应(也许是告诉负载均衡器重新加载?)我们希望能够触发部署。对于数据库服务器,我们希望
能够触发备份自定义事件。

`` python
!/usr/bin/env python
来自serf_master import serfhandler,serfhandlerproxy

class webhandler(serfhandler):
def def deploy(self):
备份



webhandler())
```

这表示如果serf角色是“web”,则使用“webhandler”类来处理任何事件。

``python
``def member\u join(self):
````

经过测试。

配置

只需将所有事件处理程序连接到
脚本,就像这样:

``bash
serf agent-事件处理程序/opt/your/script.py
````


##安装

serf master可在
[pypi]上获得(https://pypi.python.org/pypi/serf_master),并可通过以下方式安装



欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在Android中维护应用程序状态   javajavacc:如何指定在特定上下文中需要哪些令牌?   java为什么改型会在重新加载数据时设置以前的响应?   java如何将键转换为字符串,反之亦然   java JDOM解析器插入#固定手动属性   java按元素对XML数据排序?   java Android中有哪些哈希算法?   java为什么使用可选返回类型进行单元测试失败?   Gson和argonauts使用Gson将javascript数组转换为json字符串并转换为javapojo时遇到的问题。试图让我的结构正确   java中的空格   java SQLite高分,草率IndexOutofBounds Android   使用Spring OAUTH2的java Make客户端   netbeans如何在java中创建一个JPopupMenu,其中包含一个要复制文本的项