管理虚拟机过期和删除

os-vm-expire的Python项目详细描述


在openstack云中管理vm过期和自动删除。

这个项目是一个非官方的openstack项目,但是遵循openstack项目架构,带有horizon插件和相关服务。

openstack vmexpiration管理服务向vms添加过期。 过期后,vm将被删除。 用户可以通过api或horizon延长vm的生命周期。 过期扩展不受限制,用户始终可以扩展虚拟机,但只会在配置的持续时间内进行扩展。 用户不能将其延长超过配置的持续时间。 示例:

  • date A: VM is created, VM will expire at A + N days
  • some days before expiration user is notified
  • user extend VM to today + M days (M is configuration based, user cannot specify it)
  • if user tries to extend VM again, it will be extend again to today + M days

要求

需要启用nova通知才能获取vm开始和结束消息。

软件已经在pikeotaca上进行了测试,并在单域和多域配置中进行了测试。它应该从牛顿做功。

功能

  • 在创建虚拟机时,添加到期日期
  • 在接近到期日时,向用户发送电子邮件
  • Horizon插件,用于查看虚拟机到期并延长到期时间
  • 在到期日,删除虚拟机并向用户发送电子邮件
  • 用于延长虚拟机或从虚拟机中删除过期时间的cli命令(仅限管理员)

配置

目录/etc/os vm expire/:

  • osvmexpire.conf
  • policy.json
  • osvmexpire-api-paste.ini(用于wsgi服务器)

可以通过环境变量osvmexpire_config指定主配置文件。

部件

启动API服务器

对于dev(端口8000)

exportOSVMEXPIRE_PORT=9411# optional
osvmexpire-wsgi-api

对于prod

uwsgi --master --die-on-term --emperor /etc/os-vm-expire/vassals --logto /var/log/os-vm-expire/osvmexpire-api.log --stats localhost:9314

启动工人

管理实例创建和删除时的nova通知以创建/删除过期对象。

osvmexpire-worker --config-file /etc/os-vm-expire/osvmexpire.conf

启动清洁器

检查虚拟机的过期时间,并在过期前发送通知,以便在必要时使用扩展虚拟机。 一旦到达过期时间(如果可以通知用户过期时间),删除vm。

osvmexpire-cleaner --config-file /etc/os-vm-expire/osvmexpire.conf

cli用法

这些命令行工具需要访问配置文件,因此专用于管理该工具,而不是供最终用户使用。

osvmexpire-manage vm list
osvmexpire-manage vm extend -h
osvmexpire-manage vm remove -h

学分

代码主要是受Barbican OpenStack项目的启发(代码库来自)的,代码或多或少是为了管理不同的对象而更新的。 此项目采用相同的许可证并保留原始文件头。

该项目由法国伊里萨的热那亚核心设施开发。

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

推荐PyPI第三方库


热门话题
junit cucumber为什么会找到“runTest.java”来运行测试?   在Eclipse中找不到java KeyPairGenerator   java NotSerializableException即使在实现Serializable之后   noclassdeffounderror(java字符串连接)为什么会出现这种异常?   java Guice:将接口绑定到由动态代理创建的实例   使用Spring数据neo4j创建空间索引时发生java错误   java对于需要在50多个excel文件上运行并且每个文件平均包含25k行的项目,最佳的方法是什么   javaNIO中的java缓冲区写入/发送消息问题   如何在Java/eclipse中添加不调用super()的警告   JavaSpring:mvcUrl映射错误的id   java应该在getInstance或构造函数中使用Init方法吗?   安卓中的java空指针异常错误   java Jsoup不能完全获取原始html代码