VMWare đã phát triển bộ công cụ “VMware vSphere Automation SDK for Python” để hỗ trợ quản lý máy ảo trên vCenter ESXi. Bài viết này sẽ hướng dẫn cách sử dụng vShere Python SDK để thực hiện các thao tác như kết nối, khởi động và tắt máy ảo.
Các bạn có thể tải SDK ngôn ngữ Python ở link Github bên dưới:
Cài đặt “VMware vSphere Automation SDK for Python”
Để cài đặt SDK chúng ta sử dụng công cụ quản lý Packages PIP của Python
pip install -r requirements.txt
Quản lý máy ảo sử dụng “VMware vSphere Automation SDK for Python”
Lấy danh sách máy áo trên vCenter
import requests import urllib3 from vmware.vapi.vsphere.client import create_vsphere_client from samples.vsphere.vcenter.helper.vm_helper import get_vm from samples.vsphere.common.sample_util import pp from com.vmware.vcenter.vm_client import Power session = requests.session() # Disable cert verification for demo purpose. # This is not recommended in a production environment. session.verify = False # Disable the secure connection warning for demo purpose. # This is not recommended in a production environment. urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) # Connect to a vCenter Server using username and password vsphere_client = create_vsphere_client(server='<server_id>', username='<username>', password='<password>', session=session) # List all VMs inside the vCenter Server print(vsphere_client.vcenter.VM.list())
Với:
- <server_id>: Địa chỉ IP của máy chủ vCenter
- <username>: Tài khoản đăng nhập
- <password>: Mật khẩu của tài khoản
Kiểm tra trạng thái của máy ảo
vm = get_vm(vsphere_client, '<vm_name>') if not vm: raise Exception('Sample requires an existing vm with name ({}). ' 'Please create the vm first. ') # Get the vm power state print('n# Example: Get current vm power state') status = vsphere_client.vcenter.vm.Power.get(vm) print('vm.Power.get({}) -> {}'.format(vm, pp(status)))
Với <vm_name> là tên của máy ảo
Khởi động máy ảo
# Power on the vm print('# Example: Power on the vm') vsphere_client.vcenter.vm.Power.start(vm) print('vm.Power.start({})'.format(vm))
Dừng máy ảo nếu nó đang khởi động
# Power off the vm if it is on if status == Power.Info(state=Power.State.POWERED_ON): print('n# Example: VM is powered on, power it off') vsphere_client.vcenter.vm.Power.stop(vm) print('vm.Power.stop({})'.format(vm))