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調取信息:

 

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

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/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM