VMWare Reporter

Interact easily with your VMWare clusters.

Installation

VMWare Reporter package is published on PyPI:

pip install vmware-reporter

Optionaly, use specifier [excel] to also install dependencies for reading and writing Excel files:

pip install vmware-reporter[excel]

Configuration

Create file C:\ProgramData\vmware-reporter\.env (/etc/vmware-reporter/.env on Linux).

Example:

VMWARE_HOST = myvcenter.example.org
VMWARE_USER = reporter@vsphere.local
VMWARE_PASSWORD = ...
VMWARE_NO_SSL_VERIFY = False

Several scopes may be distinguished. Example for two scopes named SCOPE1 and SCOPE2:

VMWARE_SCOPES = SCOPE1,SCOPE2

VMWARE_SCOPE1_HOST = myvcenter1.example.org
VMWARE_SCOPE1_USER = reporter@vsphere.local
VMWARE_SCOPE1_PASSWORD = ...

VMWARE_SCOPE2_HOST = myvcenter2.example.org
VMWARE_SCOPE2_USER = reporter@vsphere.local
VMWARE_SCOPE2_PASSWORD = ...

Usage examples

See also full documentation (including API reference).

VMWare Reporter may be used as a library in your Python code:

from vmware_reporter import VCenterClient
with VCenterClient() as vcenter:
    for vm in vcenter.iterate_objs('vm'):
        print(vm.name)

VMWare Reporter may also be invoked as a command-line application (the vmware-reporter executable is installed with the package). Examples:

  • Export inventory of VMWare managed objects to a YAML file:

vmware-reporter inventory
  • Export all available information about VMWare managed objects to JSON files:

vmware-reporter export
  • Reconfigure VMs (mass operation): copy template vm_reconfigure.xlsx to data/vm_reconfigure.xlsx, fill-in this file, then:

vmware-reporter vm reconfigure
  • If you use several scopes, put files in data/SCOPE1/ instead of data/ and specify scope on the command line. Example:

vmware-reporter -e SCOPE1 vm reconfigure

Complete help about command-line usage may be displayed by typing:

vmware-reporter --help

Run every day (using a systemd timer)

Copy vmware-reporter.service, vmware-reporter.timer and notify-email@.service in /etc/systemd/system and adapt them to your configuration.

Run:

sudo systemctl daemon-reload
sudo systemctl enable vmware-reporter.timer
sudo systemctl start vmware-reporter.timer

Credits

This library leverages pyvmomi, the vSphere API Python bindings provided by VMWare.