使用Python脚本在OpenStack中启动实例可选用哪些开发工具?
OpenStack Python客户端选型建议
优先选择官方统一维护的openstacksdk,不推荐使用旧版的分服务独立客户端(如python-novaclient、python-cinderclient、python-neutronclient等),原因如下:
- 维护优先级最高:所有OpenStack版本的新特性都会优先适配该统一SDK,旧的分服务独立客户端目前仅做必要的bug修复,不再新增功能支持,后续版本兼容性更有保障
- 依赖管理简单:仅需安装
openstacksdk一个依赖包即可覆盖所有OpenStack服务的API调用,无需分别管理多个独立客户端的版本适配问题 - 调用风格统一:所有服务的API接口设计遵循统一规范,无需记忆不同独立客户端的差异化调用规则,开发和排查问题的效率更高
需求实现思路
针对你要实现的带可选磁盘创建挂载的VM启动脚本,可以按照如下逻辑开发:
- 用
argparse模块定义入参:必填参数包含实例名、镜像ID、规格(flavor)ID、网络ID,可选参数包含是否创建新磁盘、磁盘容量、挂载点 - 认证部分可以直接用openstacksdk的
connect方法初始化连接,你可以选择通过环境变量或者clouds.yaml配置文件存储OpenStack认证信息,无需手动拼接认证参数 - 实例创建直接调用
compute.create_server接口即可,参数和OpenStack官方API完全对应 - 如果用户指定要创建新磁盘,先调用
block_storage.create_volume创建块存储,轮询等待磁盘状态变为可用后,再调用compute.attach_volume接口将磁盘挂载到已创建的实例上即可
内容的提问来源于stack exchange,提问作者Alexey
相关产品推荐
相关产品推荐

