自动化 – Microsoft Azure Automation – 创建新的 Azure VM 端点

原文地址:http://blogs.technet.com/b/privatecloud/archive/2014/07/03/automation-microsoft-azure-automation-create-new-azure-vm-endpoint.aspx

大家好!

这次我们再提供一个与Azure Automation一同使用的示例Runbook!

这是我在Windows Azure – 自动化子类中提供的第三个Script Center Azure Automation Runbook脚本(您可以分别在这里和这里找到前两个脚本)。

事实上,Windows Azure – Automation Script Center示例列表(源自MSFT和社区)一直在不断增长,因此请确保定期检查…...如有任何想法,请随时提出!

同样,没有长篇大论,也没有大堆说明…只提供一个脚本链接,希望大家可以发现其中的乐趣!


脚本中心贡献和下载

下载示例:New-AzureVMEndpoint.ps1

以下是简要描述:

这个Runbook用于根据以下输入参数为指定虚拟机创建简单的、独立的Azure端点:
       "Azure Connection Name" "Service Name" "VM Name" "Azure Endpoint Name"
        "Azure Endpoint Protocol" "Azure Endpoint Public Port" "Azure Endpoint Local Port"

“脚本中心贡献”提供了详细描述、全套要求及实际Runbook内容(当然,还有实际的下载内容)。

请在此处的脚本中心下载用于创建Azure VM端点的Runbook示例:

 BC-DLButtonDark


再多谈几点要求…

 

此 Runbook 示例使用组织 ID 凭据进行身份验证(Azure AD;而不使用 Connect-Azure Runbook)。在使用此 Runbook 之前,必须创建一个 Azure Active Directory 用户,并允许该用户管理您要使用的 Azure 订阅。此外必须将该用户的用户名/密码添加到 Azure Automation 凭据资产中。

有关配置 Azure 以便通过 Azure Automation 管理 Azure 订阅的更多信息,请访问:https://aka.ms/Sspv1l

它利用 Automation Asset 获取所需的 Azure AD 凭据。此示例通过以下调用从 Asset 存储中获取凭据:

Get-AutomationPSCredential -Name 'Azure AD Automation Account'

注意如果多个 Azure 订阅被关联到同一个组织 ID 凭据,则首先需要建立连接,然后才能使用 Select-AzureSubscription 命令(未包含在本示例中)。

此外,创建并使用 Variable Assets 来存储某些静态的 Azure 端点数据,可能会带来一些价值。

此示例不包括用于为Azure端点启用以下选项的示例脚本:"Create a Load-Balanced Set"和"Enable Direct Server Return"。

注意此Runbook示例利用InlineScript进行实际命令调用,因为创建Azure端点所需的命令使用的管道执行相当复杂,这在PowerShell 工作流上下文中甚至更加复杂。

 

此Runbook利用现有的Azure订阅连接(需要Connect-Azure Runbook)为指定的“虚拟机”创建简单的、独立的Azure 端点。不依赖任何Automation Assets,但创建并利用Variable Assets来存储更多静态Azure端点数据可能会带来一定的好处。

此示例不包括用于为Azure端点启用以下选项的示例脚本:"Create a Load-Balanced Set"和"Enable Direct Server Return"。

注意此Runbook示例利用InlineScript进行实际命令调用,因为创建Azure端点所需的命令使用的管道执行相当复杂,这在PowerShell 工作流上下文中甚至更加复杂。


Runbook使用示例

.EXAMPLE New-AzureVMEndpoint -ServiceName "MyService001" -VMName "MyVM001" ` -AEName "Remote Desktop" -AEProtocol "TCP" `        -AEPublicPort 50025 -AELocalPort 3389 .EXAMPLE New-AzureVMEndpoint -ServiceName "MyService001" -VMName "MyVM001" ` -AEName "HTTPIn" -AEProtocol "TCP" -AEPublicPort 80 -AELocalPort 8080

.EXAMPLE $VMData = ( @{ ServiceName = "MyService001"; VMName = "MyVM001"; AEName = "My Endpoint"; AEProtocol = "TCP" AEPublicPort = "50025"; AELocalPort = "3389"; }, @{ ServiceName = "MyService001"; VMName = "MyVM002"; AEName = "My Endpoint"; AEProtocol = "TCP" AEPublicPort = "52153"; AELocalPort = "5986"; } ) foreach ($VM in $VMData) { New-AzureVMEndpoint -ServiceName $VM.ServiceName -VMName $VM.VMName ` -AEName $VM.AEName -AEProtocol $VM.AEProtocol ` -AEPublicPort $VM.AEPublicPort -AELocalPort $VM.AELocalPort }

注意实际脚本的注释中也会提供上述示例以及详细的Runbook参数描述。


感谢阅读我的博客文章!有关System Center、Windows Azure Pack和 Microsoft Azure自动化的更多信息、提示/技巧和示例解决方案,请查看自动化跟踪中的“构建云”系列的其他博客文章!