在libvirt虚拟机上运行云映像

downburst的Python项目详细描述


下击暴流是一种用于在上快速创建虚拟机的工具 利布维特。它使用ubuntu的云图像和qcow2写时拷贝克隆 使虚拟机的创建几乎是即时的,在 使用cloud init启动时间。

有关ubuntu云映像的更多信息,请参阅:

安装

您可以像任何其他python包一样安装downburst,但它也可以 附带了一个方便的引导脚本,可以在虚拟机中设置它 源目录下的环境。只需运行:

git clone https://github.com/ceph/downburst.git
cd downburst
./bootstrap

从那时起,使用:

./virtualenv/bin/downburst ARGS..

您还可以将其符号链接到例如~/bin/

用法

你需要给你的虚拟机起一个唯一的名字。这将成为 虚拟机的主机名和libvirt域名。运行:

downburst -C URI create NAME

如果此工具不是用于墨水池机器或墨水池员工 然后您应该通过–nokey选项来不安装默认的墨水池 创建的来宾的授权主机文件的ssh密钥。

downburst -C URI create NAME –nokey

uri是在~/.config/libvirt/libvirt.conf中的uri别名中设置的别名。示例:

uri_aliases = [
    'vercoi01=qemu+ssh://ubuntu@vercoi01.front.sepia.ceph.com/system?no_tty=1',
    'vercoi02=qemu+ssh://ubuntu@vercoi02.front.sepia.ceph.com/system?no_tty=1',
    'vercoi03=qemu+ssh://ubuntu@vercoi03.front.sepia.ceph.com/system?no_tty=1',
    'vercoi04=qemu+ssh://ubuntu@vercoi04.front.sepia.ceph.com/system?no_tty=1',
    'vercoi05=qemu+ssh://ubuntu@vercoi05.front.sepia.ceph.com/system?no_tty=1',
    'vercoi06=qemu+ssh://ubuntu@vercoi06.front.sepia.ceph.com/system?no_tty=1',
    'vercoi07=qemu+ssh://ubuntu@vercoi07.front.sepia.ceph.com/system?no_tty=1',
    'vercoi08=qemu+ssh://ubuntu@vercoi08.front.sepia.ceph.com/system?no_tty=1',
    'senta01=qemu+ssh://ubuntu@senta01.front.sepia.ceph.com/system?no_tty=1',
    'senta02=qemu+ssh://ubuntu@senta02.front.sepia.ceph.com/system?no_tty=1',
    'senta03=qemu+ssh://ubuntu@senta03.front.sepia.ceph.com/system?no_tty=1',
    'senta04=qemu+ssh://ubuntu@senta04.front.sepia.ceph.com/system?no_tty=1',
    ]

您可以使用以下命令删除来宾(请注意):

downburst -c URI destroy NAME

默认情况下,您的本地ssh公钥(从 ~/.ssh/id_rsa.pub)被授权以ubuntu身份登录。

您还可以传入ec2样式meta-datauser-data snippets;如果重复该参数,则文件将被合并:

downburst create --meta-data=FILE.meta.yaml \
  --user-data=FILE.user.yaml NAME

有关元数据和用户数据使用的想法,请参见doc/examples/,以及 浏览上面的ubuntu链接。

meta yaml中的有效下击暴流选项及其默认值(如果未定义):

磁盘大小:(磁盘空间)
默认10g。示例:20g
附加磁盘:(来宾的附加驱动器数量)
默认值0。示例:5(用于5个附加驱动器)
附加磁盘大小:(附加磁盘的大小)
默认10g。示例:100g
内存:(内存量)
默认512m。示例:2g
CPU:(CPU/核心计数)
默认值1。例4
网络:(什么nics/networks/mac地址):
默认nat。示例:
  • 资料来源:前线 mac:52:54:00:5a:aa:ee
发行版:(发行版类型)
默认的ubuntu。示例centos
发行版:(发行版)
默认(如果是ubuntu)“12.04”。示例“12.10”
架构:(图像架构)
默认“amd64”,可以是“i386”或“amd64/x86”

在命令行创建过程中,还可以使用–distro=value或–distroversion=value或–arch=value设置distro/distroversion/arch

所有可用的发行版/版本都可以通过运行以下命令列出:

downburst list

静态ssh密钥生成

Downburst还包括一个实用程序,用于在 您希望重复删除和重新创建vm,但没有ssh 总是抱怨。

要设置它,请运行一次:

downburst gen-ssh-key >NAME.user.yaml

从那里开始,用以下命令重新创建虚拟机(删除后):

downburst create --user-data=NAME.user.yaml NAME

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

推荐PyPI第三方库


热门话题
java Intellij通过方法中的包查找用法   java中VS代码和打包命名的问题   将java CMS功能集成到具有高度动态内容的网站(Lucene/Mysql/Nosql)的策略   oracle的java类强制转换异常。jdbc。驾驶员OracleConnection   字节码向JVM添加上指令   如何在抽象类中执行java方法?   java是否可以在apache访问日志中排除指定的GET参数?(作者:W7开发环境)   java如何获取已安装音频播放器的列表?   尝试向HS学生展示如何使用Java访问MS数据库   使用正则表达式java对给定行中的特定字符串进行计数   java JOOQ Select查询中的Select计数   方法Java,如何从二维双精度数组中找到特定值?   获取图像URL的java正则表达式   java在切换到新的窗口驱动程序后找不到元素