Exécutez l'API vSphere de VMware vSphere 6 avec le script Python (pyvmomi)

Cet article est une transcription de l 'article "Gestion du système à l'ère du cloud".

Publié dans l'article précédent " Le périphérique d'E / S VMware vSphere 6 VMDirectPath ne peut pas être ajouté à la VM avec PowerCLI " Dans le cadre du traitement du problème selon lequel le périphérique PCI ne peut pas être correctement connecté à la machine virtuelle avec PowerCLI, nous expliquerons comment utiliser la bibliothèque python (pyvmomi) qui exécute l'API vSphere.

1. Installez pyvmomi

Ici, nous allons décrire la commande de construction d'environnement basée sur Ubuntu 14.04 pour vérification avec Bash sur Ubuntu sous Windows 10. La procédure est basée sur README sur le site Github de pyvmomi.

Tout d'abord, installez le package python-pip, puis installez pyvmomi à l'aide de pip. Après l'installation, vérifiez la version de pyvmomi installée avec pip au cas où.

# apt-get install pip
(réduction)
# 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. Fonctionnement de l'API vSphere à l'aide de pyvmomi

pyvmomi est une bibliothèque pour exécuter l'API vSphere avec Python Script. Par conséquent, Python Script est requis pour l'exécuter. Ici, nous allons exécuter jusqu'au point où nous utiliserons l'exemple de script sur Github.

Il existe des « pyvmomi-community-samples » dans le référentiel Github fourni par VMware. Téléchargez-le et essayez de l'exécuter.

# 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

Après le téléchargement, essayez d'exécuter getallvms.py </ code>. Pour vérifier les arguments, exécutez d'abord avec -h </ code>, puis passez les arguments requis. Ici, il est exécuté pour l'hôte où seulement 1VM existe.

# 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 (Nom d'hôte ESXi) -u (Nom d'utilisateur connexion) -p (Mot de passe)
('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

J'ai pu obtenir les informations de la machine virtuelle sur l'hôte ESXi en toute sécurité.

Ceci termine l'installation de pyvmomi et la vérification des opérations à l'aide de l'exemple de script. La prochaine fois, j'utiliserai ce pyvmomi et le script de connexion de périphérique PCI publié dans ce GIST . , Défi pour définir les E / S VM DirectPath à partir du script.

Recommended Posts