群集管理器

vmshepherd的Python项目详细描述


vmshepherd

image0image1

简介

vmshepherd是一个帮助您维护虚拟机组(集群)的应用程序。它通过检查iaas层中的状态来保留定义的参数(如计数、图像等),并使用指定的运行状况检查测试底层服务。

架构

vmshepherd被设计成易于扩展的插件。由 python3 及其 异步 模块授权,以便于扩展。下图显示了应用程序的基本组件。

https://user-images.gitubuusercontent.com/670887/41005281-41005281-1f5dfb08-691d-11e8-8221-f48f7fcc3a7.png
  • 预置管理器 负责获取集群规范/定义(预置)。内置预设: DirectoryDriver GitrepDriver
  • 运行时管理器 公开锁定预设的功能,并保存中间状态。当前可用: InMemoryDriver PostgresDriver ZookeePerDriver
  • iaas 是iaas提供程序的粘合剂(api包装器), openstackdriver 是第一个实现的。
  • healthcheck 允许检查服务的状态,而不仅仅是虚拟机的存在。 httphealthcheckdriver 是内置的。

有关更多信息,请查看 文档

安装

应用程序需要Python3.6或更高版本。最新的稳定版本在pypi上可用。

pip install vmshepherd

vmshepherd的另一种安装方式是docker。 您可以从Docker上轻松下载我们应用程序的最新版本

docker pull dreamlabcloud/vmshepherd

在运行应用程序之前,需要根据 这是 规则

创建配置文件时,可以这样部署vmshepherd:

docker run -v $PATH_TO_CONFIG_DIRECTORY/:/home/shepherd -p 8888:8888 -it vmshepherd -c config/settings.example.yaml
  • 其中path_to_config_目录是主机上配置文件的本地化
  • -c config/settings.example.yaml是在容器中传递给vmshepherd的参数列表

示例:

➜  VmShepherd/docker ✗ sudo docker run -v $(realpath ../)/:/home/shepherd -p   8888:8888 -it vmshepherd -c config/settings.example.yaml
INFO:root:Starting server, listening on 8888.
INFO:root:VmShepherd start cycle...
INFO:root:VMs Status: 1 expected, 0 in iaas, 0 running, 0 nearby shutdown, 0 pending, 0   after time shutdown, 0 terminated, 0 error, 0 unknown, 1 missing
INFO:root:VMs Status update: 0 terminated, 0 terminated by healthcheck, 1 created, 0 failed healthcheck

我们还提供了一个 dockerfile 文件,可以在开发过程中使用:

docker build -t vmshepherd .
docker run -it  -p 8888:8888 -p 8000:8000 vmshepherd run

用法

安装后,您需要创建一个主配置文件(请检查此repo中 config/ 目录中的示例)。

<>运行:

vmshepherd -c CONFIGFILE

对vmshepherd的贡献

感谢您对vmshepherd的贡献感兴趣。像往常一样,有很多方法可以贡献,我们非常感谢。

拉取请求和问题是我们用来更改vmshepherd的主要机制。github本身有一个很好的文档 阿布t使用拉取请求。我们使用 "分叉拉式" 模型, 贡献者将更改推送到他们的个人fork,并创建pull请求以将这些更改带入源存储库。

如果您想找到解决问题的方法,请查看我们的"路线图"中的问题

查看文档 http://doc.dreamlab.pl/vmshepherd/development/index.html

tl;dr

请求请求将需要:

  • 测试
  • 文档
  • 一系列逻辑上写得好的提交

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

推荐PyPI第三方库


热门话题
javafx在java中显示图像或形状的二维网格   java如何部署WAR文件而不是根文件。AWS Elastic Beanstalk中配置了Amazon AMI的war?   java如何在Eclipse中设置runnable jar的目标版本   Java 8流/收集器按地图分组   java ParseServer:不保存用户信息?   MySQL:java。sql。BatchUpdateException:键“PRIMARY”的重复条目“242243”   java Jersey测试框架为grizzly中的所有未知路径定义默认错误响应   java使用所有请求参数将请求从一个jsp转发到另一个jsp?   java为什么在JavaFX8中选择CheckboxTableCell时SelectedStateCallback不起作用?   期待EOF的java发现“异常”   java如何使用SeleniumWebDriver捕获弹出窗口的屏幕?   java无法从安卓手机向我的数据库发送截击post请求   java Selenium单击切换元素   java使用Spring api向服务器发送数据   继承和创建新类之间的java差异   数组io。内蒂。ByteBuf writeBytes(java.nio.ByteBuffer src)顶点化   java相对于多次选择和一次更新,删除和插入的代价有多高?   java单向一对多,父级具有复合密钥   Java Spring批处理多线程作业失败,原因是“致命:由于idleintransaction超时而终止连接”