Openstack python api 学习文档 api创建虚拟机

Openstack python api 学习文档

 

转载请注明http://www.cnblogs.com/juandx/p/4953191.html

 

因为需要学习使用api接口调用openstack,所以上一篇写了一些使用openstack的纯api调用的方法,

但是openstack还提供了更好的python的api,只需要python的包即可,感觉更好使用。

对于compute的api,包是放在了/usr/lib/python2.7/site-packages/novaclient/目录,所以直接看看代码也蛮好的。

下面演示使用api调取信息:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import os
import time
from novaclient.v2 import client
 
nova = client.Client('username','password','project_name','http://controller_ip:5000/v2.0')
#print nova.servers.list()
#print nova.flavors.list()
#print nova.images.list()
 
# 镜像,flavor,网络肯定都是之前已经自己创建好了的
image = nova.images.find(name='cirros-0.3.4-x86_64')
flavor = nova.flavors.find(name='m1.medium')
network = nova.networks.find(label='int') #这里选择一个名叫int的网段
 
# launch a instance
# 注意,这里网络的参数和v1_1版本的不一样,以前是传入network就可以,现在是创建网卡,当然也可以创建多个网卡
server = nova.servers.create(name="test-vm", image=image, flavor=flavor,nics=[{'net-id':network.id}])
 
# 创建snapshot, 这里传入虚机和要创建的名字两个参数即可,我加了一个时间来命名。
image = nova.servers.create_image(server, image_name=server.name + time.strftime("_%Y%m%d",time.localtime()))
 
# 分配floating ip
nova.floating_ip_pools.list()
#得到[<FloatingIPPool: name=ext>],这是我之前创建的一个名叫ext的floating_ip的pool
 
#取得一个ip
floating_ip = nova.floating_ips.create(pool='ext')
 
#分配floating_ip
server.add_floating_ip(floating_ip)
 
#删除floating_ip
server.remove_floating_ip(floating_ip)
 
# 删除虚拟机
server.delete()

  

 

使用keystone

1
2
3
4
5
from keystoneclient.v2_0 import client as ks2client
 
keystone2 = ks2client.Client(username='admin',password='openstack1',tenant_name='service',auth_url='http://9.112.233.24:5000/v2.0')
 
user = keystone2.users.find(id='asdfdsf-dads978s-sadfsdfsdf-2323')

  

 

其中主要参数的解释大家参照最后文档中python api的文档即可,这里仅作简单介绍,希望大家有问题多多指正。

 

 

参考文档:

openstack python api : http://developer.openstack.org/api-ref.html   http://docs.openstack.org/developer/python-novaclient/

https://albertomolina.wordpress.com/2013/11/20/how-to-launch-an-instance-on-openstack-iii-python-novaclient-library/

 

posted @   juandx  阅读(11943)  评论(3编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
历史上的今天:
2014-11-10 ruby 删除文件
点击右上角即可分享
微信分享提示