使用“运行命令”在 VM 中运行脚本

“运行命令”功能使用虚拟机 (VM) 代理在 Azure Linux VM 或 Linux VM 中运行脚本。 可以使用这些脚本进行常规计算机或应用程序管理。 它们可以帮助你快速诊断和修正 VM 访问与网络问题,使 VM 恢复正常状态。 可以在属性中嵌入脚本,或引用已发布的图库脚本。

最初的一组命令是面向操作的。 已更新的一组命令是面向管理的,使你能够运行多个脚本,并且其限制会更少。 本文将说明两组运行命令之间的差异,并帮助你确定哪一组适用于你的方案。

重要

目前,Azure CLI、PowerShell 和 API 中可使用“托管运行命令”。 门户功能当前不可用。

何时使用操作或托管命令

最初的一组命令是面向操作的。 您应考虑在需要运行以下命令的情况下使用这组命令:

  • 一个小脚本用来获取虚拟机的内容
  • 你需要运行一个脚本以配置 VM(设置注册表项、更改配置)
  • 你需要运行一个一次性脚本以进行诊断

有关可用操作命令以及如何应用它们的说明,请参阅适用于 Linux 的操作运行命令适用于 Windows 的操作运行命令

已更新的一组命令是面向管理的。 如果你的需求与以下示例一致,请考虑使用托管运行命令:

  • 脚本需要在 VM 部署过程中运行
  • 需要重复执行脚本
  • 多个脚本需要按顺序执行
  • 通过运行安装脚本来启动 VM
  • 发布要共享并重复使用的自定义脚本

若要了解如何使用这些命令,请参阅适用于 Linux 的托管运行命令适用于 Windows 的托管运行命令

注释

允许的托管运行命令的最大数目当前限制为 25。

比较功能支持

功能支持 操作执行命令 管理的运行命令
ARM 模板 否,这是一个 POST 操作 是,这是一个资源类型
长时间运行 90 分钟限制 客户指定的超时
执行账户 系统帐户/root 客户指定的用户
多个运行命令 仅一个处于活动状态 多个命令并行执行或按顺序执行
大输出 限于 4KB(在状态 blob 中) 已上传到用户追加 Blob 数据块
进度跟踪 仅报告最终状态 在执行期间报告进度和最后的4k字节输出
异步执行 目标状态和配置正在等待脚本完成 客户指定的异步标志位,如果脚本需要等待预配。
虚拟机规模集支持 仅在 VM 实例上 支持虚拟机规模集模型和横向扩展
SAS 生成 无 Blob 支持 自动化的过程中,CRP 为客户二进制大对象生成 SAS 并进行管理。
画廊(自定义命令) 仅限于内置的命令标识符 客户可以发布脚本并共享它们

后续步骤

开始使用适用于 Linux 的托管运行命令适用于 Windows 的托管运行命令