基于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

验证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 就可以运行了。 脚本运行成功会输出服务器的详细信息。其他例子类似,只是输入参数不同。

pyvmomi例子运行

二、项目建立

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

0 0
原创粉丝点击