在Azure VM上自动执行启动任务的最简单方法是什么?

时间:2014-10-04 05:00:02

标签: azure

我当前的应用场景要求我同时启动多个VM以及一些启动任务(每个VM上的启动任务触发相同的脚本但具有不同的参数)。以前在EC2中,我可以轻松启动多个EC2实例,然后轻松使用Windows任务调度程序来触发可执行文件,读取每个实例的用户数据中的数据,然后一切都完成。

我在Azure中尝试了相同的方法,但发现了许多问题:

  1. 尝试使用任务调度程序并启动任务"在启动时#34;但由于在syspreping之后用户信息丢失而无法工作,因此我无法启动它任务。
  2. 尝试gpedit.msc并指定启动脚本。不会工作。我不知道为什么。
  3. 尝试使用任务计划程序并在特定时间点启动任务。不会工作。我收到了一条错误消息,其中显示"运营商或管理员拒绝了该请求"。
  4. 那么在Azure VM中自动执行启动任务的最简单方法是什么?

2 个答案:

答案 0 :(得分:2)

您是否考虑过使用Azure-powershell

  1. 您可以使用Start-AzureVM - cmdlet启动虚拟机。
  2. 您可以使用以下
  3. 启动代码段:

    $vmuri = Get-AzureWinRMUri -ServiceName $VMName
    
    #region start hpc-azure-nodes
    Invoke-Command -ConnectionUri $vmuri -Credential $credential {
        #start your tasks with the according parameters
    } -ArgumentList
    

    一种相当漂亮的方式是在Azure中创建head-vm并安装HPC-cluster-manager。利用HPC群集管理器,您可以在限制范围内配置任意数量的Azure计算节点,部署软件并从群集管理器集中启动/停止软件。

    此外,HPC群集管理器提供了许多有用的功能:

    • 添加/删除节点
    • 通过rdp连接到每个节点
    • 查看作业的记录信息
    • 还有很多很多

    还有一个HPC-powershell,它为自动化提供了一个很好的环境。不可否认,这种方法需要更多努力,但从长远来看,它几乎肯定会得到回报。

答案 1 :(得分:0)

我认为您正在寻找的是PowerShell所需的状态配置(DSC)。

这是PowerShell 4.0中引入的管理平台。您可以通过提供系统中每个节点所需状态的描述来使用它来配置VM或服务器组。基本上,您可以描述服务器在启动时所处的状态,如果配置已经漂移,则会更正它。

DSC脚本可以:

  • 管理注册表项
  • 复制文件和文件夹
  • 运行PowerShell脚本
  • 部署软件
  • 管理服务器角色
  • 开启/关闭Windows功能

Here is a quick tutorial at blog.msdn.com可以帮助您入门。