1.安装python3.6.6 # 安装依赖,一定要安装,否则后面可能无法安装一些python插件 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel mkdir /usr/local/python36 tar -zxf Python-3.6.6.tgz cd Python-3.6.6 ./configure --prefix=/usr/local/python36 make && make install ln -s /usr/local/python36/bin/python3 /usr/bin/python3 ln -s /usr/local/python36/bin/pip3 /usr/bin/pip3 # pip3 install --upgrade pip # yum install -y git # 安装监控vmware的sdk pyvmomi [root@wondershareID_web03:/usr/local/python36]# git clone https://github.com/vmware/pyvmomi.git [root@wondershareID_web03:/usr/local/python36]# cd pyvmomi/ [root@wondershareID_web03:/usr/local/python36/pyvmomi]# ls docs LICENSE.txt MANIFEST.in NOTICE.txt pyVim pyVmomi README.rst requirements.txt sample setup.cfg setup.py test-requirements.txt tests tox.ini [root@wondershareID_web03:/usr/local/python36/pyvmomi]# python3 setup.py install 3.编写通过pyvmomi插件获取虚拟机信息的脚本 #!/opt/python3/bin/python3 #coding:utf-8 """ 获取所有的vcenter相关信息 包括exsi的硬件资源信息和vmware客户端的硬件分配信息 """ from pyVmomi import vim from pyVim.connect import SmartConnect, Disconnect, SmartConnectNoSSL import atexit import argparse def get_args(): parser = argparse.ArgumentParser( description='Arguments for talking to vCenter') parser.add_argument('-s', '--host', required=True, action='store', help='vSpehre service to connect to') parser.add_argument('-o', '--port', type=int, default=443, action='store', help='Port to connect on') parser.add_argument('-u', '--user', required=True, action='store', help='User name to use') parser.add_argument('-p', '--password', required=True, action='store', help='Password to use') args = parser.parse_args() return args def get_obj(content, vimtype, name=None): ''' 列表返回,name 可以指定匹配的对象 ''' container = content.viewManager.CreateContainerView(content.rootFolder, vimtype, True) obj = [ view for view in container.view] return obj def main(): esxi_host = {} args = get_args() # connect this thing si = SmartConnectNoSSL( host=args.host, user=args.user, pwd=args.password, port=args.port) # disconnect this thing atexit.register(Disconnect, si) content = si.RetrieveContent() esxi_obj = get_obj(content, [vim.HostSystem]) for esxi in esxi_obj: esxi_host[esxi.name] = {
python结合pyvmomi 监控esxi的磁盘等信息
最新推荐文章于 2024-05-14 11:37:57 发布