基于pyVmomi编写vsphere控制管理接口
来源:互联网 发布:自学修图都用什么软件 编辑:程序博客网 时间:2024/06/14 06:35
VMware的vsphere客户端是界面操作,本文想做的是基于pyVmomi编写具有vsphere功能各个接口。
一、环境搭建
本机环境: Ubuntu14.04 python2.7.6 pycharm4.5.3 Django1.9 pyvmomi5.5.0-2014.1.1依赖项: python pip pyvmomi-community-samples
1.1pyVmomi安装
文件名称: pyvmomi-5.5.0-2014.1.1.tar.gz
下载地址:
https://github.com/vmware/pyvmomi/releases
基于 pyVmomi 的实例下载地址
http://vmware.github.io/pyvmomi-community-samples/
安装:
首先要确认已安装python,pycharm,pip
关于pip可参考 http://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/
执行命令安装: pip install --upgrade pyvmomi
或者下载文件包解压后在文件夹里执行命令:python setup.py install
验证安装是否成功
进入终端输入python,再输入:import pyVmomi
1.2 运行 pyvmomi-community-samples 中的例子:
文件名称:
pyvmomi-community-samples
下载地址
http://vmware.github.io/pyvmomi-community-samples/
安装
确认已安装 Python, pycharm,pip,pyvmomi
方法一: 下载 tar 或者 zip 文件,解压然后用 pycharm 打开
方法二:使用 git: git clone https://github.com/vmware/pyvmomi-community-samples.git
例子运行
如图所示,在左侧列表中选择一个例子如: hello_world_vcenter_with_yaml_recorder.py 然后点击 test,选择Edit Configurations…选项, 在窗口 Script 中选择要执行的脚本, Script Parameters 中输入:-s {服务器 IP} -u {用户名} -p {用户登录密码}。 然后脚本hello_world_vcenter_with_yaml_recorder.py 就可以运行了。 脚本运行成功会输出服务器的详细信息。其他例子类似,只是输入参数不同。
二、项目建立
2.1基于django建立项目tutorial:
项目名称: tutorial
命令1:django-admin.py startproject tutorial
进入 tutorial 文件夹,修改 setting.py 文件 1、 时区改为: TIME_ZONE=’Asia/Shanghai’ 2、 在 INSTALLED_APPS 中添加新的[’quickstart’,] 3、 DATABASES 的格式如下所示: DATABASES = { 'default':{ 'ENGINE':'django.db.backends.sqlite3', 'NAME':os.path.join(BASE_DIR,'db.sqlite3'), 'USER':'database_user', 'PASSWORD':'database_password', 'HOST':'', 'PORT':'' } }
命令2: cd tutorial
命令3: python manage.py startapp quickstart
关于django新建项目可参考:
http://jingyan.baidu.com/article/8ebacdf0ce434a49f65cd5d2.html
2.2 依赖项导入
把 pyvmomi-community-samples/samples 文件夹里的 tools 文件夹拷到 tutorial/quickstart 文件夹里。
三、问题集合
3.1 关于pyVmomi:
1、在 pycharm 里,from pyVmomi import vim, vmodl 这行代码 vim,vmodl 有红色下划线
解决方法:这是一个 bug,可忽略这个错误, vim 和 vmodl 里面的函数是可以正常调用的
2、调用 pyVmomi 里面的函数时,系统没有自动补全功能,也不会显示其包含哪些可调用子函数
解决方法:提前查看 pyVmomi 代码或代码相关说明文档,找到所需相关函数及调用方法 *可参考文献:*
http://pubs.vmware.com/vsphere-60/index.jsp?topic=%2Fcom.vmware.wssdk.apiref.doc%2Fright-pane.html
https://developercenter.vmware.com/web/sdk/55/vsphere-management
http://pubs.vmware.com/vsphere-60/index.jsp#com.vmware.wssdk.pg.doc/PG_VM_Config.12.3.html?path=7_1_0_1_9_1_0#1110381
3、起变量名时,先看下tools文件夹里面的脚本,避免变量名重复。
4、仔细看参数name的注释,部分要求的是虚拟机的DNS Name,部分要求的是虚拟机的名称(在vsphere里面显示的名字)
3.2 依赖项导入
把pyvmomi-community-samples/samples文件夹里的tools文件夹拷到tutorial/quickstart 文件夹里。
在tutorial项目quickstart文件夹里的views.py脚本里导入依赖项:
import pyVmomiimport atexitfrom pyVim.connect import SmartConnect, Disconnectfrom pyVmomi import vim,vmodlfrom tools import tasks,vm
3.3 关于Django
1、pycharm自带的Tools–Test RESTFUL web Service接口检测工具使用时,可能会发生拒绝连接,但网页访问又没有问题。
解决方法:安装postman接口测试工具
安装方法一:http://jingyan.baidu.com/article/e5c39bf56286ae39d6603374.html
安装方法二:http://www.yanyulin.info/pages/2015/01/25314200948928.html
2、URL配置 :django1.10 及 以后的版本将对删除django.conf.patterns()
3、使用POST方法的函数需要加个装饰器
先标明使用POST方法:@require_http_methods(['POST'])再添加装饰器:@csrf_exemptN:注意先后顺序,否则会报错
本文出自“heivy”的博客,转载请务必保留此出处:http://blog.csdn.net/heivy/article/details/50433525
- 基于pyVmomi编写vsphere控制管理接口
- vSphere命令行接口:使用vCLI管理ESXi
- 基于swagger做接口管理
- 基于swagger做接口管理
- 基于swagger做接口管理
- 基于SGIP协议编写短信网关接口
- 基于binder机制编写aidl接口文件
- 编写DirectShow Filters—质量控制管理
- 基于角色管理的系统访问控制
- 基于角色管理的系统访问控制
- 基于角色管理的系统访问控制
- 基于角色管理的系统访问控制
- 基于角色管理的系统访问控制
- 基于角色管理的系统访问控制
- 基于角色管理的系统访问控制
- 基于角色管理的系统访问控制
- 基于资源控制的权限管理想法
- 基于角色管理的系统访问控制
- 2015广电行业十一大关键词
- iOS遍历字典
- 修改ueditor的上传文件、图片、视频等路径
- 指针常量简介
- Nielsen:2015年部分美国有线电视运营商用户流失严重(来源:199IT)
- 基于pyVmomi编写vsphere控制管理接口
- android 粘贴 复制
- 稀疏分解与稀疏重建的区别
- 页面加载完毕后滚动条自动滚动一定位置
- 静态链表--C语言实现
- 正则表达式常用字符集
- loadrunner-analysis实例结果图表分析
- 对于Qt界面类结构与数据复制存放问题总结
- JSP中的EL表达式使用