创建客户端
from azure.common.client_factory import get_client_from_cli_profile
from azure.mgmt.compute import ComputeManagementClient
subscription_id = "14a12b4a-xxxx-xxxx-xxxx-5436954d3e1b"
client = get_client_from_cli_profile(ComputeManagementClient, subscription_id=subscription_id)
创建 poller
resource_group_name = "UM-TEST"
vm_name = "UMLinuxtest"
command_id = "RunShellScript"
run_command_line = ["hostname"]
run_command_parameters = {
'command_id': command_id,
'script': run_command_line,
'parameters': [
{'name': 'customer_name', 'value': "customer_name"},
{'name': 'vm_region', 'value': "vm_region"},
{'name': 'vm_id', 'value': "vm_id"},
{'name': 'vm_name', 'value': "vm_name"}
]
}
poller = client.virtual_machines.run_command(resource_group_name=resource_group_name, vm_name=vm_name, parameters=run_command_parameters)
执行并取得结果
result = poller.result(timeout=60)
if os_platform == 'Windows':
print(result.value[0].message)
print(result.value[1].message)
elif os_platform == 'Linux':
print(result.value[0].message) # 'Enable succeeded: \n[stdout]\nUMLinuxtest\n\n[stderr]\n'
目标VM上的脚本位置
每台 VM 上的 agent 会在如下路径临时存储:
- 脚本:
/var/lib/waagent/run-command/download/<number>/script.sh
- 标准输出:
/var/lib/waagent/run-command/download/<number>/stdout
- 错误输出:
/var/lib/waagent/run-command/download/<number>/stderr