vSphere を Python から操作するには pyvmomi を使うのが簡単です。 今回はインストール方法をメモしておきます。
pyvmomi は pip
で手軽にインストールすることが出来ます。 pip
が未インストールであればインストールし、続けて pip install
で pyvmomi をインストールします。
yum -y install gcc python-devel
curl -L https://bootstrap.pypa.io/get-pip.py | python
pip install pyvmomi
現時点ではバージョン 6.5.0.2017.5 がインストールされました。
# pip show pyvmomi
Name: pyvmomi
Version: 6.5.0.2017.5.post1
Summary: VMware vSphere Python SDK
Home-page: https://github.com/vmware/pyvmomi
Author: VMware, Inc.
Author-email: jhu@vmware.com
License: License :: OSI Approved :: Apache Software License
Location: /usr/lib/python2.7/site-packages
Requires: requests, six
pyvmomi のサンプルスクリプトが GitHub で公開されているので、クローンします。
git clone https://github.com/vmware/pyvmomi-community-samples.git
以下のサンプルスクリプトが同梱されています。
# ls pyvmomi-community-samples/samples/
add_disk_to_vm.py filter_vms.py renamer.py
add_nic_to_vm.py find_by_uuid.py scheduled_poweroff.py
add_portgroup_to_vswitch.py generate_html5_console.py service_manager_esxtop_in_vc.py
add_vm_extra_config_tags.py getallvms.py service_manager_vscsistats_in_vc.py
add_vm_nic_to_dvs.py get_hosts_vswitch.py sessions_list.py
add_vswitch_to_host.py getorphanedvms.py set_note.py
cdrom_vm.py get_vm_names.py set_vcenter_motd.py
change_disk_mode.py getvmsbycluster.py snapshot_operations.py
change_vm_cd_backend.py getvnicinfo.py soft_reboot.py
change_vm_nic_state.py hello_world_vcenter.py suds-to-pyvmomi.py
change_vm_vif.py hello_world_vcenter_with_yaml_recorder.py tests
clone_vm.py __init__.py tools
create_folder_in_datacenter.py linked_clone.py update_esxi_advanced_settings.py
create_random_marvel_vms.py list_datastore_cluster.py update_vm_storage_policy.py
create_snapshot.py list_datastore_info.py upgrade_vm.py
delete_disk_from_vm.py list_dc_datastore_info.py upload_file_to_datastore.py
delete_nic_from_vm.py list_host_alarms.py upload_file_to_vm.py
del_portgroup_from_vswitch.py list_vm_storage_policy.py vcenter_details.py
del_vswitch_from_host.py list_vmwaretools_status.py virtual_machine_device_info.py
deploy_ova.py make_dc_and_cluster.py virtual_machine_power_cycle_and_question.py
deploy_ovf.py pyvmomi-to-suds.py vminfo_quick.py
destroy_vm.py README.md vm_perf_example.py
esxi_perf_sample.py reboot_vm.py vSphereAutoRestartManager.py
execute_program_in_vm.py reconfigure_host_for_ha.py waitforupdates.py
export_vm.py relocate_events.py
例えば「全ての仮想マシンの状態を取得するサンプル」(getallvms.py
) を実行するには以下のように指定します。 ADDRESS
には ESXi または vCenter のアドレスを指定します。
python pyvmomi-community-samples/samples/getallvms.py -s [ADDRESS] -u [USERNAME] -p [PASSWORD]
サンプルスクリプトによっては PEP 476 で定義された内容に基づき、自己証明書を利用しているとエラーになってしまい、実行出来ないものがあります。 こういったスクリプトは以下を追記し、証明書の検証をオフにすることで(勿論、セキュリティレベルは下がりますが)スクリプトを実行することは出来るようになります。
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
コメント