自动化 – Microsoft Azure Automation – 创建新的 Azure VM 端点
大家好!
这次我们再提供一个与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示例:
再多谈几点要求…
此 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自动化的更多信息、提示/技巧和示例解决方案,请查看自动化跟踪中的“构建云”系列的其他博客文章!