用于构建与openstack一起工作的应用程序的sdk
openstacksdk的Python项目详细描述
openstacksdk
openstacksdk是一个客户端库,用于构建要工作的应用程序 用OpenStack云。该项目旨在提供 与OpenStack的许多服务以及 完整的文档、示例和工具。
它还包含一个抽象接口层。云可以做很多事情,但是 其中大概只有10个是大多数人关心的 规律性。如果你想做复杂的事情,每个面向服务的 sdk的一部分是为您准备的。但是,如果你想要的是 编写一个应用程序,它可以与云进行对话,无论您的选择多么疯狂 部署人员试图成为比他们自己更有资格的时尚人士 自恋的同龄人,那么云抽象层就是给你的。
有关其历史的更多信息,请访问 https://docs.openstack.org/openstacksdk/latest/contributor/history.html
打开堆栈
使用配置有clouds.yaml文件的对象列出服务器:
importopenstack# Initialize and turn on debug loggingopenstack.enable_logging(debug=True)# Initialize cloudconn=openstack.connect(cloud='mordred')forserverinconn.compute.servers():print(server.to_dict())
云层
openstacksdk包含基于逻辑操作的高级层。
importopenstack# Initialize and turn on debug loggingopenstack.enable_logging(debug=True)forserverinconn.list_servers():print(server.to_dict())
其好处主要体现在更复杂的操作中 步骤和步骤因提供者而异:
importopenstack# Initialize and turn on debug loggingopenstack.enable_logging(debug=True)# Initialize connection# Cloud configs are read with openstack.configconn=openstack.connect(cloud='mordred')# Upload an image to the cloudimage=conn.create_image('ubuntu-trusty',filename='ubuntu-trusty.qcow2',wait=True)# Find a flavor with at least 512M of RAMflavor=conn.get_flavor_by_ram(512)# Boot a server, wait for it to boot, and then do whatever is needed# to get a public ip for it.conn.create_server('my-server',image=image,flavor=flavor,wait=True,auto_ip=True)
openstack.config
openstack.config将为1个云和 你想放多少就放多少。它将读取环境变量 和配置文件,它还包含一些特定于供应商的默认值,因此 使用openstack不需要知道额外的信息
- 如果您有一个配置文件,您将获得其中列出的云
- 如果您有环境变量,您将得到一个名为envvars的云
- 如果两者都没有,则会得到一个名为defaults的云,其基本默认值为
有时候一个例子很好。
创建clouds.yaml文件:
clouds:mordred:region_name:Dallasauth:username:'mordred'password:XXXXXXXproject_name:'shade'auth_url:'https://identity.example.com'
请注意:openstack.config将查找名为^{tt1}的文件$ 在以下位置:
- 当前目录
- ~/.config/openstack
- /etc/openstack
更多信息请访问https://docs.openstack.org/openstacksdk/latest/user/config/configuration.html