使用python sdk在Azure中的Linux虚拟机中运行命令

hivapdat  于 2022-12-24  发布在  Python
关注(0)|答案(1)|浏览(163)

我发现azure python sdk提供了以下在linux vm中运行命令的方法。

from azure.mgmt.compute import compute_management_client
from azure.common.credentials import ServicePrincipalCredentials

credentials = ServicePrincipalCrendentials(client_id, secret, tenant)
client = compute_management_client(credentials, subscription_id)

client.virtual_machines.run_command(resource_group_name,
     vm_name, parameters, customheaders=None, raw=False,
     **operation_config)

但是我如何在这里传递我的命令呢?我找不到任何参数和operation_config的示例。请帮助

iovurdzv

iovurdzv1#

基本示例:

run_command_parameters = {
      'command_id': 'RunShellScript', # For linux, don't change it
      'script': [
          'ls /tmp'
      ]
  }
  poller = client.virtual_machines.run_command(
        resource_group_name,
        vm_name,
        run_command_parameters
  )
  result = poller.result()  # Blocking till executed
  print(result.value[0].message)  # stdout/stderr

如果要注入参数,可以执行以下操作:

run_command_parameters = {
        'command_id': 'RunShellScript',
        'script': [
            'echo $arg1'
        ],
        'parameters':[
            {'name':"arg1", 'value':"hello world"}
        ]
    }

如果使用Windows,则可以使用RunPowerShellScript命令id
您可能需要使用CLI测试命令:az vm run-command invoke --help
由于CLI使用此SDK,因此您将获得相同的行为。

相关问题