SDK创建Openstack资源

使用SDK方式创建镜像

在提供的OpenStack私有云平台上,使用T版本的“openstack-python-dev”镜像创建1台云主机,云主机类型使用4vCPU/12G内存/100G硬盘。该主机中已经默认安装了所需的开发环境,登录默认账号密码为“root/Abc@1234”。使用“openstacksdk”python库,在/root目录下创建sdk_manager_image.py文件,编写python代码,代码实现以下任务:

(1)先检查OpenStack镜像“cirros-image”名称是否存在?如果存在,先完成删除该镜像;

(2)如果不存在“cirros-image”名称,使用文件服务器上“cirros-0.3.4-x86_64-disk.img”文件创建镜像;

(3)创建完成后,查询该镜像信息,查询的body部分内容控制台输出,同时json格式的输出到文件当前目录下的image _demo.js文件中,json格式要求indent=4。

编写完成后,提交allinone节点的用户名、密码和IP地址到答题框。

import openstack,json

conn = openstack.connect(

  auth_url='http://10.24.2.46:5000/v3/',

  user_domain_name='demo',

  username='admin',

  password='000000',

)
image = conn.image.find_image('cirros-image')
if image:
  conn.image.delete_image(image.id)
uri = 'http://10.24.1.46/cirros-0.3.4-x86_64-disk.img'
data = {'name':'cirros-image','disk_format':'qcow2','container_format':'bare'}
image=conn.image.create_image(**data)
image=conn.image.import_image(image,method='web-download',uri=uri)
get_image=conn.image.find_image("cirros-image")
print(get_image)
with open("image_demo.json","w") as outfile:
   json.dump(get_image,outfile,indent=4)

使用SDK方式创建网络

import openstack,json

conn=openstack.connect(
   auth_url='http://10.24.196.72:5000/v3',
   user_domain_name='demo',
   username='admin',
   password='000000'
)
network=conn.network.find_network('pvm_int')
print(network)
if network: 
 conn.network.delete_network(network.id)
data={'name':'pvm_int'}
network=conn.network.create_network(**data)
print(network.id)
network_id=network.id
data={'name':'pvm_subnet','network_id':network_id,'ip_version':4,'cidr':'10.10.2.0/24','gateway_ip':'10.10.2.1'}
subnet=conn.network.create_subnet(**data)
print(subnet)
SDK方式创建主机类型
import openstack,json
conn=openstack.connect(
  auth_url='http://controller:5000/v3',
  user_domain_name='demo',
  username='admin',
  password='000000'
)
flavor=conn.compute.find_flavor('m1.flavor')
if flavor:
 conn.compute.delete_flavor(flavor.id)
data={'name':'m1.flavor','ram':1024,'disk':10,'id':1234,'vcpus':1}
flavor=conn.compute.create_flavor(**data)
print(flavor)
使用SDK方式创建用户
import openstack,json

conn=openstack.connect(
  auth_url='http://controller:5000/v3',
  user_domain_name='demo',
  username='admin',
  password='000000'
)
user=conn.identity.find_user('user_demo')
if user: 
  conn.identity.delete_user(user.id)
data={'name':'user_demo'}
user=conn.identity.create_user(**data)
print(user)
SDK方式创建云主机
import openstack,json
conn=openstack.connect(
  auth_url='http://controller:5000/v3',
  user_domain_name='demo',
  username='admin',
  password='000000'
)
server=conn.compute.find_server('vm1')
if server: 
  conn.compute.delete_server(server.id)
image=conn.compute.find_image('cirros')
flavor=conn.compute.find_flavor('m1.flavor')
network=conn.network.find_network('pvm_int')
data={'name':'vm1','image_id':image.id,'flavor_id':flavor.id,'networks':[{"uuid": network.id}]}
server=conn.compute.create_server(**data)
server = conn.compute.wait_for_server(server)
print(server)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

给我一碗炒粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值