在Azure预览版的门户上管理PowerShell DSC扩展


11/21/2014 最后更新: 更多功能和信息,请参阅 发布历史.

如果您还没有开始使用Azure 预览版门户,或者您是一位PowerShell DSC和Azure PowerShell DSC扩展(2014年8月份发布的)的忠实粉丝,那么是时间体验了。我们非常欣喜的宣布您现在可以用Azure门户来管理你的DSC扩展了。在此之前你可能只能使用预览版的门户获取PowerShell DSC扩展的一些信息(比如版本,状态和状态文本,如下图),但是您不能向已经存在的虚拟机上添加扩展,或者如果某扩展已经存在,你不能升级配置。

Extension 

用户界面准备

就像我们之前使用的那个例子 Fourth Coffee一样,为了使用新的用户界面,还需要一准备工作。准备一个ZIP文件(它包含了配置和自定义的DSC资源)。我们已经为Fourth Coffee下调了配置,并且也稍微做了一些更改。(文件被保存在C:\examples\FourthCoffee.ps1)

Configuration WebSite 
{ 
    Import-DscResource -Module xWebAdministration    
       
        # Install the IIS role 
        WindowsFeature IIS  
        {  
            Ensure          = 'Present'  
            Name            = 'Web-Server'  
        }  
  
        # Install the ASP .NET 4.5 role 
        WindowsFeature AspNet45  
        {  
            Ensure          = 'Present'  
            Name            = 'Web-Asp-Net45'  
        }  
  
        # Stop the default website 
        xWebsite DefaultSite  
        {  
            Ensure          = 'Present'  
            Name            = 'Default Web Site'  
            State           = 'Stopped'  
            PhysicalPath    = 'C:\inetpub\wwwroot'  
            DependsOn       = '[WindowsFeature]IIS'  
        }  
  
        # Copy the website content 
        File WebContent  
        {  
            Ensure          = 'Present'  
            SourcePath      = 'C:\Program Files\WindowsPowerShell\Modules\BakeryWebsite' 
            DestinationPath = 'C:\inetpub\FourthCoffee' 
            Recurse         = $true  
            Type            = 'Directory'  
            DependsOn       = '[WindowsFeature]AspNet45'  
        }  

        # Create a new website 
        xWebsite BakeryWebSite  
        {  
            Ensure          = 'Present'  
            Name            = 'FourthCoffee' 
            State           = 'Started'  
            PhysicalPath    = 'C:\inetpub\FourthCoffee'  
            DependsOn       = '[File]WebContent'  
        } 
}

你应当注意到了,我们又一次使用到了xWebAdministration DSC 资源如果你还没有下载过它,那么可以从这里找到

在准备好了配置文件,我们还要使用PowerShell来准备一个ZIP文件。注意,和之前一样,我们使用了相同的命令(Publish-AzureVMDscConfiguration),但还是有点区别的(从 C:\examples目录运行;将命令分割成了两行;注意第一行结尾的反引号):

PS> Publish-AzureVMDscConfiguration .\FourthCoffee.ps1 `                                                                
>>> -ConfigurationArchivePath .\WebsitePackage1.zip

这里实际上不会向你的Azure存储账户上传任何东西,它只是准备了一个包含特定配置的ZIP文件。另外,它为自定义DSC资源解析了配置,将它们从你的组件目录复制一个新创建的ZIP包。

Created ZIP File

为了举例子,我们将会手动复制所需的Web内容文件到一个ZIP文件。你应当已经注意到了一个新配置文件FourthCoffe.ps1,我们用它来声明从C:\Program Files\WindowsPowerShell\Modules\BakeryWebsite’读取[File]WebContent,因此我们把‘xWebAdministration’也放在ZIP文件的根目录(当然也可以使用 PowerShell DSC的其他声明方式读取内容,只是在这个例子中我使用了自己喜欢的方式Azure Files Preview)。

Updated ZIP File

使用 UI

现在我们的配置文件ZIP包(保护内容)已经准备完毕。是时间来看看这个新的用户界面了。在Azure的预览版门户上,浏览你的虚拟机,在配置区域,点击扩展(就像你查看状态的扩展一样)。现在在,扩展面板,点击“添加”按钮,我们的好朋友PowerShell DSC就近在眼前了。

Add PowerShell DSC Extension

像其它已存在的Azure扩展一样,当我们点击PowerShell DSC 扩展,会显示一些扩展的描述信息,比如资源的发布者和链接。:

Extension Details

点击“创建”按钮,会得到一个用来输入所需配置的窗口,在本次实验中,因为之前已经安装了一个DSC扩展,所以会有一个警告窗口:

Extension Fields - New Extension Fields - Existing

在Configuration Modules or Script中使用文件夹选择我们之前创建的并且添加了内容的WebsitePackage.zip。因为在这个例子中,其实我们没有使用配置数据,所以跳过ConfigurationData PSD1 File这个选项。这个选项允许指定填写一个配置数据文件命名称。它就等价于使用参数ConfigurationDataPath 执行Set-AzureVMDscExtension 。 对于‘Module-qualified Name of Configuration’,使用了包含了如下格式名称的ZIP包的DSC 配置文件名称。(‘Configuration File’可能包含了一个或着多个DSC配置;这个格式确保了Azure扩展能够找到一个正确的配置文件)

<ConfigurationFile>.ps1\<ConfigurationName>

这个例子中,所有的参数配置齐全以后,如下所示:

Extension Fields - Added

本例子中,我们没有给配置文件传递任何参数,但是‘Configuration Arguments’还是可以像–ConfigurationArgument 指定参数的。在PowerShell命令中,我们使用的参数是哈希表,而这里我们使用格式:name1=value1,name2=value’。

当你点击了“创建”了按钮,添加扩展面板会出现并关闭。通过左边的提醒图标的状态文本可以观察整个创建过程:

Notifications - Creating Extension

完成以后:

Notifications - Done Creating Extension

返回到虚拟机的配置和扩展,我们可以看到PowerShell DSC扩展已经安装了:

Extension - Installing

这个是整个创建过程到完成的几张截图(在我自己的虚拟机需要5分钟):

Extension - Transitioning - Rebooting

Extension - Transitioning - Initializing

Extension - Transitioning - Applying

Extension - Success

成功了!现在唯一的事就是要确认我们配置包中的内容有没有被放到网站内面,并且网站能否正常工作。你可能需要在Azure门户上给虚拟机配置一个端点,我在这里是用3行PowerShell代码来配置的:

PS> Get-AzureVM -Name sample -ServiceName sample-i5oc0t5i |                                                          
>>> Add-AzureEndpoint -Name HTTP -Protocol TCP -LocalPort 80 -PublicPort 80 |                                           
>>> Update-AzureVM                                                                                                      
>>>

然后使用我喜欢的浏览器去看我配置在新虚拟机中的网站是否能工作,果然如愿以偿。

Website Running

其他资源

这里是一些PowerShell DSC 相关的其它资源:

·  Azure Powershell DSC 扩展的安全凭证

· Azure DSC 扩展排错

· DSC资源工具包(包含所有组件)

希望您喜欢这次配置!

原文作者:David Coulter (微软高级顾问)

原文链接Manage the PowerShell DSC Extension in the Azure Preview Portal

本文链接: https://www.pstips.net/manage-dsc-extension-in-azure-portal.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注