为本地Vagrant箱子提供libcloud计算提供商
项目描述
libcloud-vagrant 是一个Apache Libcloud的计算提供商,它使用Vagrant来创建VirtualBox节点。
安装libcloud-vagrant后,您可以在笔记本电脑上原型化一个小型集群,例如,然后稍后将其部署到Amazon、Rackspace或其他由Libcloud支持的云中。
你好,世界
以下代码片段会在您的宿主机上启动一个虚拟机
from libcloud.compute.providers import get_driver
from libcloudvagrant import VAGRANT
driver = get_driver(VAGRANT)()
pub = driver.ex_create_network(name="pub", cidr="172.16.0.0/16", public=True)
node = driver.create_node(name="n1",
image=driver.get_image("hashicorp/precise64"),
size=driver.list_sizes()[0],
ex_networks=[pub])
print "Node '%s' running!" % (node.name,)
print ("Connect to it with 'ssh vagrant@%s' (password: 'vagrant')" %
(node.public_ips[0],))
特性
libcloud-vagrant 使用Vagrant创建箱子、网络和卷。它在~/.libcloudvagrant下创建一个Vagrant环境,该环境用于运行您定义的任意数量的Vagrant箱子。
libcloud-vagrant 创建的节点可以连接到公共网络或私有网络。公共网络作为VirtualBox的主机仅网络实现,私有网络作为VirtualBox的内部网络实现。
libcloud-vagrant 还允许您创建VDI磁盘,并将它们附加到节点的SATA控制器。
部署脚本通过Vagrant的NAT接口运行,使用Vagrant的SSH凭证。因此,它们也适用于非网络节点。
libcloud-vagrant 包含一个命令行工具,可以对Libcloud创建的Vagrant节点执行简单操作。
$ libcloud-vagrant -h
usage: libcloud-vagrant [-h] <cmd>
Manage your Vagrant libcloud environment.
positional arguments:
<cmd> command to execute
optional arguments:
-h, --help show this help message and exit
Available commands:
destroy
Destroys all nodes, networks and volumes in your Vagrant
environment.
list
Lists all nodes, networks and volumes in your Vagrant
environment.
screen
Opens a screen(1) session to all nodes in your Vagrant
environment.
$
libcloud-vagrant 并不线程或多进程安全。与Vagrant和Virtualbox命令行工具的交互通过基于文件系统的锁来保护,这(希望)会序列化操作,所以即使它们能工作,并发操作也不会给你带来太多好处。
要求
libcloud-vagrant 需要
VirtualBox(在64位Linux下测试过,版本为4.3.14)。
Vagrant(在64位Linux下测试过,版本为1.6.3)。
Python 2.7。
如果你想要将存储卷附加到节点上,你需要vagrant-libcloud-helper Vagrant插件。使用以下命令安装它:
$ vagrant plugin install vagrant-libcloud-helper
以下为可选
如果你位于HTTP/FTP代理后面,Vagrant插件vagrant-proxyconf 将修改libcloud-vagrant 创建的节点以使用它。
你不需要配置vagrant-proxyconf。使用以下命令安装它:
$ vagrant plugin install vagrant-proxyconf
安装
一旦你安装了VirtualBox和Vagrant,就做常规操作
$ pip install libcloud-vagrant
这将安装libcloud-vagrant 及其Python依赖项。你可能希望在virtualenv中执行此操作。
更多示例
查看源分发中的samples 子目录。你将找到一些用于创建单个节点、展示如何配置它以及创建两个节点集群的脚本。
项目详情
libcloud-vagrant-0.5.0.tar.gz的散列
| 算法 | 散列摘要 | |
|---|---|---|
| SHA256 | d184e7a1f655d949b63bb3edcff8aa4f4120af1a4fd9bf2ea3cbe4c5114dfd51 |
|
| MD5 | c3c0eb74d7da8e531161b077f3e022f9 |
|
| BLAKE2b-256 | e75d14ea49a4090b02169d44879a756bce21d4edfff61b4181f736333df6c81c |