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/
收获不会与付出成反比
by juandx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2014-11-10 ruby 删除文件