|
在ESXi主机上,您可以使用vSphere Web Client或者REST API来设置虚拟机的定时启动和定时关机。以下是使用vSphere Web Client的方法:
打开vSphere Web Client并连接到ESXi主机。
在导航面板中选择“虚拟机和模板”。
选择要设置定时任务的虚拟机,然后点击“配置”选项卡。
在“任务计划”区域,点击“添加任务计划”。
输入任务名称,选择“启动虚拟机”或“关机虚拟机”,并设置执行任务的时间和日期。
选择时区,然后保存设置。
使用REST API的话,可以通过发送HTTP请求来实现定时启动和关机。以下是一个使用Python和requests库发送REST API请求的示例:
import requests
from requests.auth import HTTPBasicAuth
import json
# 配置ESXi主机的认证信息
host = "https://your-esxi-host"
username = "your-username"
password = "your-password"
# 虚拟机的ID,可以通过ESXi主机的管理界面获取
vm_id = "vm-1234"
# 定义启动和关机的函数
def schedule_start(host, username, password, vm_id, schedule):
url = f"{host}/rest/scheduler/schedule"
payload = {
"name": "Start VM",
"description": "Schedule to start a virtual machine",
"action": {
"type": "VirtualMachineAction",
"vm": vm_id,
"operation": "powerOn"
},
"schedule": schedule
}
response = requests.post(url, auth=HTTPBasicAuth(username, password), json=payload)
print(response.json())
def schedule_stop(host, username, password, vm_id, schedule):
url = f"{host}/rest/scheduler/schedule"
payload = {
"name": "Stop VM",
"description": "Schedule to stop a virtual machine",
"action": {
"type": "VirtualMachineAction",
"vm": vm_id,
"operation": "powerOff"
},
"schedule": schedule
}
response = requests.post(url, auth=HTTPBasicAuth(username, password), json=payload)
print(response.json())
# 定时启动的cron表达式,例如每天凌晨1点 "0 0 1 * * ?"
start_schedule = "0 0 1 * * ?"
# 定时关机的cron表达式,例如每天凌晨2点 "0 0 2 * * ?"
stop_schedule = "0 0 2 * * ?"
# 调用函数创建定时任务
schedule_start(host, username, password, vm_id, start_schedule)
schedule_stop(host, username, password, vm_id, stop_schedule)
请注意,您需要替换your-esxi-host, your-username, your-password, vm-1234, start_schedule, 和 stop_schedule 为您的ESXi主机地址、用户名、密码、虚拟机ID和相应的cron表达式。cron表达式的格式遵循ISO 8601时间周期格式,您可以通过网上的cron表达式生成器来帮助生成正确的时间周期格式。
|
|