创建客户端
from azure.common.client_factory import get_client_from_cli_profilefrom azure.mgmt.compute import ComputeManagementClientsubscription_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
