《openstack-nova》use-novaclient 创建虚拟机(createvms.py)
来源:互联网 发布:中老年骨质疏松知乎 编辑:程序博客网 时间:2024/04/27 21:19
感谢朋友支持本博客,欢迎共同探讨交流,由于能力和时间有限,错误之处在所难免,欢迎指正!
如果转载,请保留作者信息。
博客地址:http://blog.csdn.net/qq_21398167
import sys
import timeimport keystoneclient.v2_0.client as keystoneclient
import novaclient.v1_1.client as novaclient
import neutronclient.v2_0.client as neutronclient
from credentials import *
'''
Creates a network and a COUNT of instances
using the user / project configured in stackrc file
'''
INSTANCE_NAME = 'fiva'
NETWORK_NAME='route-66'
SUBNET_CIDR='10.2.33.0/24'
INSTANCE_COUNT = 3
kcreds = get_keystone_creds()
print "Connecting to keystone"
keystone = keystoneclient.Client(**kcreds)
tokenlen=len(keystone.auth_token)
print keystone.auth_token[0:20] + "..." + keystone.auth_token[tokenlen-20:tokenlen]
ncreds = get_nova_creds()
nova = novaclient.Client(**ncreds)
flavors = nova.flavors.list(is_public=True)
print flavors
images = nova.images.list(detailed=False)
print images
# get networks from quantum
print "Find or create network..."
network_url = keystone.service_catalog.url_for(service_type='network')
neutron = neutronclient.Client(endpoint_url=network_url, token=keystone.auth_token)
networks = neutron.list_networks()['networks']
print "Networks: "
print [(nw['name'],nw['id'])for nw in networks]
net = None
net_id = None
networks = neutron.list_networks(name=NETWORK_NAME)['networks']
if len(networks)>0 and networks[0]['name'] == NETWORK_NAME :
net_id = networks[0]['id']
print "Network found ", NETWORK_NAME, net_id
else:
net = neutron.create_network({'network':
{'name': NETWORK_NAME,'admin_state_up': True} })
print "Created network ", net
net_id = net['network']['id']
sub = neutron.create_subnet({'subnet': {
'name': 'subnet',
'network_id': net_id,
'ip_version': 4,
'cidr': SUBNET_CIDR
}
})
print "Created subnet ", sub
print "List instances: "
# check what we get so far for instances
instances = nova.servers.list()
for instance in instances:
print 'name: ', instance.name
print 'host id: ', instance.hostId
print "Creating instances: "
instance = nova.servers.create(INSTANCE_NAME, images[0], flavors[0]
# The actual number will be based on the quota.
# see http://www.gossamer-threads.com/lists/openstack/dev/17629
,min_count=1, max_count=INSTANCE_COUNT
# if nics not specified, will connect to all project networks
,nics=[{'net-id': net_id}]
)
# Poll at 5 second intervals, until the status is no longer 'BUILD'
status = instance.status
sys.stdout.write('Building...')
while status == 'BUILD':
time.sleep(1)
sys.stdout.write(".")
sys.stdout.flush()
# Retrieve the instance again so the status field updates
instance = nova.servers.get(instance.id)
status = instance.status
print "status: %s" % status
0 0
- 《openstack-nova》use-novaclient 创建虚拟机(createvms.py)
- OpenStack之Nova分析——创建虚拟机(一)
- OpenStack之Nova分析——创建虚拟机(二)
- OpenStack之Nova分析——创建虚拟机(三)
- OpenStack之Nova分析——创建虚拟机(四)
- OpenStack之Nova分析——创建虚拟机(五)
- OpenStack之Nova分析——创建虚拟机(六)
- OpenStack之Nova分析——创建虚拟机(八)
- openstack.nova.manager创建虚拟机流程(run_instance)
- openstack.nova.manager创建虚拟机流程
- 【openstack】Nova创建虚拟机流程1
- 【openstack】Nova创建虚拟机流程2 -scheduler
- 【openstack】Nova创建虚拟机流程3-compute
- openstack nova 创建虚拟机流程 liberty版本
- OpenStack Nova 虚拟机创建流程分析
- use python-novaclient to manage openstack vm
- openstack:nova中“从镜像启动(创建一个新卷)”创建虚拟机的流程
- openstack Nova分析之 创建虚拟机流程(4)
- easyui Datagrid的deleteRow多行移除问题
- Spring学习笔记(6)----编码剖析Spring依赖注入的原理
- 推荐算法
- postgreSQL 使用With字句的例子
- GitHub使用教程
- 《openstack-nova》use-novaclient 创建虚拟机(createvms.py)
- Android学习 8-> 相对布局RelativeLayout
- SQLSERVER创建维护计划失败时解决办法
- [企业管理]人性化管理的基础讨论与思考之呻吟
- Spring学习笔记(7)----装配各种集合类型的属性
- Android应用开发学习—Toast使用方法大全
- C语言----求“鞍点”
- python sympy包符号运算进行定积分计算
- CRC16校验程序