国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > 杭州儀電Azure Stack技術(shù)深入淺出系列4: Azure Stack自定義虛擬機鏡像和Gallery Ite

杭州儀電Azure Stack技術(shù)深入淺出系列4: Azure Stack自定義虛擬機鏡像和Gallery Ite

時間:2023-06-30 17:00:01 | 來源:網(wǎng)站運營

時間:2023-06-30 17:00:01 來源:網(wǎng)站運營

杭州儀電Azure Stack技術(shù)深入淺出系列4: Azure Stack自定義虛擬機鏡像和Gallery Item:Azure Stack環(huán)境中服務(wù)的提供者或運營者從微軟變成了Azure Stack集成環(huán)境的運營者,通過Azure Stack的MarketPlace,我們可以根據(jù)用戶的特定需求,提供一些定制化的應(yīng)用,獲得與公有云不一樣的用戶體驗。

本文將主要介紹如何在Azure Stack的MarketPlace中如何添加一個自定義的虛擬機進行并定制滿足需求的Gallery Item,同時通過自服務(wù)的模式提供給業(yè)務(wù)的消費者。

這一篇,我們將探討以下幾個問題:

1、制作自定義鏡像

Azure Stack的鏡像分為 generalizedspecialized兩種不同的形式。

Generalized鏡像中已經(jīng)刪除了所有個人賬戶信息及一些其它數(shù)據(jù),可以作為模板來創(chuàng)建一個或者多個虛擬機。微軟對Windows和Linux鏡像都提供了相應(yīng)的工具,Windows下可以采用Sysgrep,Linux下可以安裝Azure Linux Agent,執(zhí)行sudo waagent –deprovision來實現(xiàn)。

Specialized鏡像中保留了原始虛擬機中的用戶賬戶、應(yīng)用程序和其它狀態(tài)數(shù)據(jù),可以作為模板創(chuàng)建一臺虛擬機。Specialized鏡像可以看作是原始虛擬機在某個時間的snapshot。

鏡像既可以從Azure Stack或者Azure上運行的虛擬機來制作,比如捕獲或者克隆虛擬機,也可以將在本地基于Hyper-V Manager啟動的虛擬機導(dǎo)出作為鏡像。幾種不同的自定義鏡像的詳細制作過程請參考下面鏈接:

2、從自定義鏡像創(chuàng)建虛擬機

在獲得虛擬機鏡像之后,如何在Azure Stack中根據(jù)鏡像創(chuàng)建虛擬機?

這部分介紹如何將本地VHD鏡像上傳到Azure Stack中,并且創(chuàng)建虛擬機。Azure Stack中需要通過Portal、PowerShell,ARM Template等方式來進行相應(yīng)的操作,這些操作包括2步:

2.1通過Portal新建存儲賬戶并上傳本地鏡像

2.2通過ARM Template從鏡像創(chuàng)建新的虛擬機

鏡像上傳后,就可以開始創(chuàng)建虛擬機了。從VHD創(chuàng)建虛擬機有兩種模式:AttachFrom-Image。


Attach模式下,VHD文件是直接附加到新建的虛擬機上。因此采用Attach模式,一個VHD文件只能創(chuàng)建一臺虛擬機。而From-Image模式,首先會將VHD文件復(fù)制一份到指定的Blob Container中,然后將VHD的副本附加到虛擬機上,因此可以從一個generalized VHD創(chuàng)建多臺虛擬機。

采用ARM Template來創(chuàng)建虛擬機, ARM Template的使用方式及創(chuàng)建虛擬機的完整Template可以在AzureStack-QuickStart-Templates上獲得,這里僅提供兩種模式下差異部分來進行對比分析:

-> Attach模式

"storageProfile": { "osDisk": { "name": "[concat(parameters('vmName'))]", "osType": "[parameters('osType')]", "caching": "ReadWrite", "vhd": { "uri": "[parameters('osDiskVhdUri')]" }, "createOption": "Attach" } },Attach 模式下只需要提供VHD的URI,createOption采用“Attach”
這里parameters('osDiskVhdUri')為前面通過Portal上傳的VHD文件的URL:

https://liugestore.blob.local.azurestack.external/vhds/CentOS7-AzureStack-WithAgent.vhd下圖為Attach模式流程:

-> From-Image模式

"storageProfile": { "osDisk": { "name": "[concat(variables('vmName'),'-osDisk')]", "osType": "[parameters('osType')]", "caching": "ReadWrite", "image":{ "uri": "[variables('userImageUri')]" }, "vhd": { "uri": "[variables('osDiskVhdUri')]" }, "createOption": "FromImage" } },From-Image模式下需要提供Image的URI和VHD的URI, createOption采用 FromImage
variables('userImageUri')為前面用Portal上傳的VHD文件的URL

https://liugestore.blob.local.azurestack.external/vhds/CentOS7-AzureStack-WithAgent.vhd而variables('osDiskVhdUri')為

https://liugestore.blob.local.azurestack.external/vhds/testVM.vhd是用戶指定的新的虛擬機綁定的VHD文件,實際上是CentOS7-AzureStack-WithAgent.vhd的副本。

注:這里為了方便,將 CentOS7-AzureStack-WithAgent.vhd和 testVM.vhd放在了同一個Blob Container中。實際上,副本VHD可以放在其他的存儲賬戶中,并且名字也可以根據(jù)需要在設(shè)置。

From-Image模式流程:


3、Azure Stack 鏡像庫

上一節(jié)中介紹了如何上傳鏡像及通過ARM Template從鏡像創(chuàng)建虛擬機。VHD鏡像上傳到我們自己新建的存儲賬號中。創(chuàng)建虛擬機的時候直接通過Blob的URL來定位鏡像文件。

那么除了用戶自己維護鏡像的存儲,Azure Stack有沒有提供一個統(tǒng)一的鏡像庫來方便的存儲鏡像呢?除了用URL來標(biāo)識和定位鏡像,有沒有其它方式來唯一指定鏡像呢?

答案是有。本節(jié)討論Azure Stack的鏡像庫,主要介紹下面幾個問題:

3.1 通過Admin Portal上傳自定義鏡像到鏡像庫

Azure Stack的鏡像庫在Resource Provider的Compute當(dāng)中,需要admin權(quán)限才能進行操作。



admin portal地址:

https://adminportal.local.azurestack.external/可以看到目前已經(jīng)上傳到鏡像庫中的所有鏡像。


其中OS Disk Blob URI:就是我們上一小節(jié)中上傳的VHD鏡像的Blob URL,也即:


https://liugestore.blob.local.azurestack.external/vhds/CentOS7-AzureStack-WithAgent.vhd3.2 鏡像庫中鏡像的標(biāo)識


在上傳鏡像的過程中,我們需要填寫一些相關(guān)信息,如PUBLISHER, OFFER, SKU, VERSION, OSTYPE, OS DISK BLOB URI,那么這些信息到底有什么用呢?在點擊了Create后,發(fā)生了什么過程呢?

實際上主要發(fā)生了兩步:

第一步- 將OS DISK BLOB URI指定的vhd文件復(fù)制到VM Images庫中

在我們的POC測試環(huán)境中,鏡像庫位于C:/ClusterStorage/Volume1/Shares/SU1_Infrastructure_1/CRP/PlatformImages中,可以看到有兩個文件夾,對應(yīng)著我們在鏡像庫中的兩個鏡像。

第二步- 生成該鏡像的對應(yīng)的Manifest文件,用來標(biāo)識該鏡像。

進入剛剛上傳的鏡像對應(yīng)的文件夾中可以看到,除了存在著一個復(fù)制過來的VHD文件外還有一個Manifest文件。


Manifest文件的內(nèi)容如下:

{"Offer":"CentOS","Sku":"7.0-withagent","Version":"1.0.0","PlatformImage": { "Publisher":"Inesa", "Offer":"CentOS", "Sku":"7.0-withagent", "Version":"1.0.0", "OsDisk":{ "OsType":"Linux", "Filename":"CentOS7-AzureStack-WithAgent.vhd", "FullPath":"////SU1FileServer//SU1_Infrastructure_1//CRP//PlatformImages//3ee92630-cf36-454a-8a4f-123a7ad7b9a5", "Uri":"https://liugestore.blob.local.azurestack.external/temp/CentOS7-AzureStack-WithAgent.vhd" } },"Publisher":"Inesa"}Manifest文件中包含了前面填寫的PUBLISHER, OFFER, SKU, VERSION, OSTYPE信息,也包含了鏡像文件在鏡像庫中的存儲位置以及鏡像是從哪里復(fù)制過來的。其中PUBLISHER, OFFER, SKU, VERSION, OSTYPE 唯一標(biāo)識了當(dāng)前的鏡像。通過這些標(biāo)識信息,就可以指定用改鏡像創(chuàng)建虛擬機

3.3 從鏡像庫中的鏡像創(chuàng)建虛擬機

有了鏡像的唯一標(biāo)識信息,就可以創(chuàng)建虛擬機,前面小節(jié)介紹了如何通過ARM Template來創(chuàng)建虛擬機,這里則通過PowerShell來創(chuàng)建。

# Define a credential object$cred = Get-Credential# Create a virtual machine configuration$vmConfig = New-AzureRmVMConfig -VMName myVM -VMSize Standard_DS2 | ` Set-AzureRmVMOperatingSystem -Linux -ComputerName myVM -Credential $cred | ` Set-AzureRmVMSourceImage -PublisherName Inesa -Offer CentOS ` -Skus 7.0-withagent -Version latest | Add-AzureRmVMNetworkInterface -Id $nic.Id# create new vm New-AzureRmVM -ResourceGroupName liuge -Location local -VM $vmConfig在vmConfig中通過標(biāo)識信息來指定用我們剛剛上傳的鏡像來創(chuàng)建新的虛擬機。

4、自定義Gallery Item

前面的幾個小節(jié)介紹了從自定義鏡像創(chuàng)建虛擬機的幾個方式,無論是采用PowerShell還是ARM Template,都需要一定的編程基礎(chǔ),那么有沒有一種方式,可以在Portal上通過點擊操作來創(chuàng)建自定義的虛擬機呢?本節(jié)就介紹如何為自定義鏡像在Portal上創(chuàng)建圖標(biāo),也就是Gallery Item。

4.1 什么是Gallery Item

簡單的理解:

在Azure中我們可以通過如下方式創(chuàng)建虛擬機:




如圖點擊對應(yīng)的圖標(biāo),就可以彈出創(chuàng)建虛擬機的界面:

不需要配置任何的開發(fā)環(huán)境,不需要一定的編程基礎(chǔ),只要點擊,填寫相關(guān)項,就可以快速的創(chuàng)建一臺虛擬機。


在Azure Stack中同樣可以實現(xiàn)!

4.2 利用Azure Stack Tools 創(chuàng)建Gallery Item

在Azure Stack深入淺出系列的上一篇中介紹了Azure Stack運維工具Azure Stack Tools的使用,Azure Stack Tools提供了Add-AzsVMImage方法來實現(xiàn):

$ImagePath = "<Path to VHD>"Add-AzsVMImage -publisher "Inesa" -offer "CentOS" -sku "7.0-withagent" -version "1.0.0" -osType Linux` -osDiskLocalPath $ImagePath -tenantID $TenantId -EnvironmentName "AzureStackAdmin"執(zhí)行上面的指令后就可以實現(xiàn)與Azure 類似的通過Portal來創(chuàng)建虛擬機

更多Azure Stack Tools的內(nèi)容請參考:Azure Stack Tools


4.3 深入理解自定義Gallery Item的流程

利用Azure Stack Tools 的Add-AzsVMImage可快速的實現(xiàn)自定義Gallery Item。那么Add-AzsVMImage到底封裝了什么操作?自定義Gallery Item需要經(jīng)過哪些過程呢?
Add-AzsVMImage主要做了2個工作:

4.31 將本地VHD文件上傳到Azure Stack的鏡像庫

將鏡像上傳到鏡像庫的過程前面已經(jīng)介紹過了,Add-AzsVMImage所進行的操作與前面介紹的相同,流程如下:

4.32 為鏡像庫中的鏡像創(chuàng)建Gallery Item

為了解自定義Gallery Item的流程,這部分將介紹如何自己通過PowerShell的指令來實現(xiàn)。主要分為以下幾步:

Step 1.首先創(chuàng)建下面的目錄結(jié)構(gòu)及文件:




其中DeploymentTmeplates、Icons、strings為文件夾的名字。Icons下面存放的是圖標(biāo)文件,可以選擇自己需要的png文件進行替換。
Step 2.編輯Manifest文件:

Manifest文件包含了一些對圖標(biāo)的描述,包括名字,發(fā)布者,版本,圖標(biāo)樣式等信息。也就是對下圖中CentOS 7.2的一些描述.

Step 3.編輯UIDefinition.json

UIDefinition定義了在創(chuàng)建新的虛機時UI顯示的步驟和內(nèi)容,有兩種類型:


Step 4.編輯DeplymentTemplates/CreateUIDefinition.json

ImageReference中可以設(shè)置下面的屬性來表示采用的鏡像:

Step 5.編輯Strings/resources.resjon

里面主要是Manifest.json中用到的幾個變量的詳細信息
{ "summary": "Create a CentOS 7.2 VM", "longSummary": "Create a CentOS 7.2 VM. Publisher: Inesa, Offer: CentosServer, Sku:7.0-WithAgent, Version:1.0.0", "description": "Create a CentOS 7.2 VM. Publisher: Inesa, Offer: CentosServer, Sku:7.0-WithAgent }Step 6.生成azkpg包
->使用工具AzureGalleryPackager,下載地址:http://www.aka.ms/azurestackmarketplaceitem
->解壓,進入目錄
->執(zhí)行powershell指令:

./AzureGalleryPackageGenerator/AzureGalleryPackager.exe -m C: /CentOS.72/Manifest.json -o C:/InesaMarketPlaceItems->執(zhí)行成功后會在InesaMarketPlaceItems文件夾下生成相應(yīng)的azkpg文件Inesa.CentOS72.2.0.0.azpkg 。

Step 7.上傳azkpg文件到Blob中


Step 8.根據(jù)azkpg文件生成Gallery Item


$subscriptionid = (Get-AzureRmSubscription -SubscriptionName 'Default Provider Subscription').SubscriptionIdAdd-AzureRMGalleryItem -SubscriptionId $subscriptionId -GalleryItemUri "https://liugestore.blob.local.azurestack.external/templates/Inesa.CentOS72.1.0.0.azpkg" -ApiVersion "2015-04-01"其中https://liugestore.blob.local.azurestack.external/templates/Inesa.CentOS72.1.0.0.azpkg 是上傳的文件的URI

經(jīng)過上面的8步,已經(jīng)可以實現(xiàn)創(chuàng)建Gallery Item的功能,實際上,Add-AzsVMImage中也是根據(jù)這個過程來實現(xiàn)的。

4.4 利用Publishing Tool來添加 Gallery Item

在前面小節(jié)中,需要執(zhí)行PowerShell指令來添加Gallery Item。隨著Azure Stack GA,微軟提供了一個Publishing Tool來實現(xiàn)可視化的添加Gallery Item。界面如下圖:

Publishing Tool的詳細使用教程:


5、總結(jié)

通過本文,我們了解了如何創(chuàng)建自定義的虛擬機鏡像,并且通過自定義鏡像來創(chuàng)建虛擬機,為自定義鏡像創(chuàng)建Gallery Item等。從較簡單的例子入手,逐步深入,來介紹Azure Stack Tools中 Add-AzsVMImage所做的工作,希望能夠?qū)ψx者有一定的啟發(fā)。

作者:劉建志




如果對文章內(nèi)容感興趣請聯(lián)系:
儀電(集團)有限公司Azure Stack技術(shù)支持團隊( gaoc@rc.inesa.com / niuhx@rc.inesa.com)
轉(zhuǎn)載請注明:轉(zhuǎn)載自Azure Stack Notes博客(http://a-stack.com)

關(guān)鍵詞:虛擬,定義,系列,技術(shù),深入,杭州

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關(guān)閉