Führen Sie die vSphere-API von VMware vSphere 6 mit dem Python-Skript (pyvmomi) aus.

Dieser Artikel ist eine Transkription des Artikels "Systemmanagement in der Cloud-Ära".

Gepostet im vorherigen Artikel " VMware vSphere 6 VMDirectPath-E / A-Gerät kann nicht mit PowerCLI zu VM hinzugefügt werden " Um das Problem zu lösen, dass das PCI-Gerät mit PowerCLI nicht ordnungsgemäß mit der virtuellen Maschine verbunden werden kann, wird die Verwendung der Python-Bibliothek (pyvmomi) erläutert, mit der die vSphere-API ausgeführt wird.

1. Installieren Sie pyvmomi

Hier beschreiben wir den auf Ubuntu 14.04 basierenden Befehl zum Erstellen der Umgebung zur Überprüfung mit Bash unter Ubuntu unter Windows 10. Das Verfahren basiert auf README auf der Github-Website von pyvmomi.

Installieren Sie zuerst das Python-Pip-Paket und dann Pyvmomi mit Pip. Überprüfen Sie nach der Installation die Version von pyvmomi, die mit pip für alle Fälle installiert wurde.

# apt-get install pip
(Kürzung)
# pip install pyvmomi
Downloading/unpacking pyvmomi
  Downloading pyvmomi-6.0.0.2016.6.tar.gz (218kB): 218kB downloaded
  Running setup.py (path:/tmp/pip_build_root/pyvmomi/setup.py) egg_info for package pyvmomi

Downloading/unpacking requests>=2.3.0 (from pyvmomi)
  Downloading requests-2.11.1-py2.py3-none-any.whl (514kB): 514kB downloaded
Downloading/unpacking six>=1.7.3 (from pyvmomi)
  Downloading six-1.10.0-py2.py3-none-any.whl
Installing collected packages: pyvmomi, requests, six
  Running setup.py install for pyvmomi

  Found existing installation: requests 2.2.1
    Not uninstalling requests at /usr/lib/python2.7/dist-packages, owned by OS
  Found existing installation: six 1.5.2
    Not uninstalling six at /usr/lib/python2.7/dist-packages, owned by OS
Successfully installed pyvmomi requests six
Cleaning up...
# pip list | grep pyvmomi
pyvmomi (6.0.0.2016.6)

2. vSphere-API-Vorgang mit pyvmomi

pyvmomi ist eine Bibliothek zum Ausführen der vSphere-API mit Python Script. Daher ist Python Script erforderlich, um es auszuführen. Hier werden wir bis zu dem Punkt ausgeführt, an dem wir das Beispielskript auf Github verwenden.

Das von VMware bereitgestellte Github-Repository enthält " pyvmomi-community-samples ". Laden Sie dies herunter und versuchen Sie es auszuführen.

# git clone https://github.com/vmware/pyvmomi-community-samples.git
Cloning into 'pyvmomi-community-samples'...
remote: Counting objects: 864, done.
remote: Total 864 (delta 0), reused 0 (delta 0), pack-reused 863
Receiving objects: 100% (864/864), 474.49 KiB | 395.00 KiB/s, done.
Resolving deltas: 100% (492/492), done.
Checking connectivity... done.
# cd pyvmomi-community-samples/samples
# ls
add_disk_to_vm.py               generate_html5_console.py                  sessions_list.py
add_vm_extra_config_tags.py     getallvms.py                               set_note.py
cdrom_vm.py                     getorphanedvms.py                          set_vcenter_motd.py
change_disk_mode.py             getvnicinfo.py                             soft_reboot.py
change_vm_cd_backend.py         hello_world_vcenter.py                     suds-to-pyvmomi.py
change_vm_nic_state.py          hello_world_vcenter_with_yaml_recorder.py  tests
change_vm_vif.py                __init__.py                                tools
clone_vm.py                     list_datastore_cluster.py                  upload_file_to_datastore.py
create_folder_in_datacenter.py  list_datastore_info.py                     upload_file_to_vm.py
create_random_marvel_vms.py     list_dc_datastore_info.py                  vcenter_details.py
create_snapshot.py              list_host_alarms.py                        virtual_machine_device_info.py
delete_disk_from_vm.py          list_vmwaretools_status.py                 virtual_machine_power_cycle_and_question.py
deploy_ovf.py                   make_dc_and_cluster.py                     vminfo_quick.py
destroy_vm.py                   pyvmomi-to-suds.py                         vm_perf_example.py
esxi_perf_sample.py             README.md                                  vSphereAutoRestartManager.py
execute_program_in_vm.py        reboot_vm.py                               waitforupdates.py
export_vm.py                    reconfigure_host_for_ha.py
find_by_uuid.py                 renamer.py

Versuchen Sie nach dem Herunterladen, getallvms.py </ code> auszuführen. Um die Argumente zu überprüfen, führen Sie sie zuerst mit -h </ code> aus und übergeben Sie dann die erforderlichen Argumente. Hier wird es für den Host ausgeführt, auf dem nur 1VM vorhanden ist.

# python getallvms.py -h
usage: getallvms.py [-h] -s HOST [-o PORT] -u USER [-p PASSWORD]

Standard Arguments for talking to vCenter

optional arguments:
  -h, --help            show this help message and exit
  -s HOST, --host HOST  vSphere service to connect to
  -o PORT, --port PORT  Port to connect on
  -u USER, --user USER  User name to use when connecting to host
  -p PASSWORD, --password PASSWORD
                        Password to use when connecting to host
# python getallvms.py -s (ESXi-Hostname) -u (Login Benutzername) -p (Passwort)
('Name       : ', 'PerftestVM_20160108')
('Template   : ', False)
('Path       : ', '[esxi01_localDS] PerftestVM_20160108/PerftestVM_20160108.vmx')
('Guest      : ', 'CentOS 4/5/6/7 (64-bit)')
('Instance UUID : ', '521a4619-ad48-447d-b692-4e0b1af8d9ca')
('Bios UUID     : ', '564d26c0-4645-b99c-9a3f-eab82be1f824')
('State      : ', 'poweredOff')
('VMware-tools: ', 'toolsNotRunning')
IP         : None

Ich konnte die Informationen der virtuellen Maschine auf dem ESXi-Host sicher abrufen.

Damit ist die Installation von pyvmomi und die Funktionsprüfung mithilfe des Beispielskripts abgeschlossen. Das nächste Mal werde ich dieses Pyvmomi und das PCI-Geräteverbindungsskript verwenden, das in dieser GIST veröffentlicht ist. , Herausforderung zum Festlegen der VM DirectPath-E / A über das Skript.

Recommended Posts