与openstack云交互的简单客户端库
shade的Python项目详细描述
简介
警告
阴影已被openstacksdk取代,不再采用新的 特征。现有的代码将继续无限期地保持。 必要时进行错误修复,但改进将推迟到 openstacksdk。请更新应用程序以使用openstacksdk 直接。
shade是一个与openstack云交互的简单客户端库。这个 这里的关键词是simple。云可以做很多事情,但是 可能只有10个是大多数人关心的 规律性。如果你想做复杂的事情,你应该用 较低级别的客户端库—甚至直接使用rest api。然而, 如果您想要的是能够编写一个与云对话的应用程序 不管部署人员做了什么疯狂的选择 比他们自命不凡的同龄人更时髦,那么阴凉是适合你的。
Shade的生命起源于Ansible内部的一些代码。Ansible有很多 在不同的openstack相关模块中 代码。最终,在将复制重构为内部 库,并添加openstack infra团队拥有的逻辑和特性 为了大规模地运行客户机应用程序,我们编写了 十分之九我们需要一个独立的图书馆。
示例
有时候一个例子很好。
创建clouds.yml文件:
clouds: mordred: region_name: RegionOne auth: username: 'mordred' password: XXXXXXX project_name: 'shade' auth_url: 'https://montytaylor-sjc.openstack.blueboxgrid.com:5001/v2.0'
请注意:os client config将查找名为^{tt2}的文件$ 在以下位置:
- 当前目录
- ~/.config/openstack
- /etc/openstack
使用shade创建服务器,配置为clouds.ymlfile:
import shade # Initialize and turn on debug logging shade.simple_logging(debug=True) # Initialize cloud # Cloud configs are read with os-client-config cloud = shade.openstack_cloud(cloud='mordred') # Upload an image to the cloud image = cloud.create_image( 'ubuntu-trusty', filename='ubuntu-trusty.qcow2', wait=True) # Find a flavor with at least 512M of RAM flavor = cloud.get_flavor_by_ram(512) # Boot a server, wait for it to boot, and then do whatever is needed # to get a public ip for it. cloud.create_server( 'my-server', image=image, flavor=flavor, wait=True, auto_ip=True)