1. 程式人生 > >Azure Stack-1805 版本 配置10分鐘、自動部署6小時-我的ASDK第六次實踐

Azure Stack-1805 版本 配置10分鐘、自動部署6小時-我的ASDK第六次實踐

Azure Stack 部署

在寫這篇博客的時候,我已經第六次部署Azure Stack 開發工具包(ASDK),原因也很簡單:ASDK每月更新沒法就地升級,需要推到重來。畢竟這是一個測試和開發環境,可以在部署後用來評估和演示 Azure Stack 功能和服務。

當然開始之前,還是為大家科普下,什麽是Azure Stack,按照官方的定義,Azure Stack 是一種混合雲平臺,通過它可從組織的數據中心提供 Azure 服務。 Azure Stack 旨在為重要場景(如邊緣環境和離線環境,或者滿足特定安全性和合規性要求)中的現代應用程序啟用新方案。

在開始之前,我們需要本地的單節點服務器滿足以下配置:
技術分享圖片
具體的細節可以參考:

https://docs.azure.cn/zh-cn/azure-stack/asdk/asdk-deploy-considerations

在確保開發工具包主機滿足安裝 ASDK 的基本要求以後,下一步是下載並提取 ASDK 部署包。 部署包包括 Cloudbuilder.vhdx 文件,該文件是一個虛擬硬盤驅動器,其中包括一個可啟動的操作系統,以及 Azure Stack 安裝文件。


下面開始分步描述各個部署環節:

一、 準備ASDK主機環境

  1. 以本地管理員身份登錄到開發工具包主機。
  2. 確保已將 CloudBuilder.vhdx 文件移動到 C:\ 驅動器的根目錄 (C:\CloudBuilder.vhdx)。
  3. 運行以下腳本,將開發工具包安裝程序文件 (asdk-installer.ps1) 從 Azure Stack GitHub 工具存儲庫下載到開發工具包主機上的 C:\AzureStack_Installer 文件夾:
# Variables
$Uri = ‘https://raw.githubusercontent.com/Azure/AzureStack-Tools/master/Deployment/asdk-installer.ps1‘
$LocalPath = ‘C:\AzureStack_Installer‘
# Create folder
New-Item $LocalPath -Type directory
# Enforce usage of TLSv1.2 to download from GitHub
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# Download file
Invoke-WebRequest $uri -OutFile ($LocalPath + ‘\‘ + ‘asdk-installer.ps1‘)

從提升了權限的 PowerShell 控制臺啟動 C:\AzureStack_Installer\asdk-installer.ps1 腳本,然後單擊“準備環境”
技術分享圖片

在安裝程序的“選擇 Cloudbuilder vhdx”頁上瀏覽到 cloudbuilder.vhdx 文件並將其選中,該文件是在前述步驟中下載並提取的。 如果需要向開發工具包主機添加其他驅動程序,則也可選擇在此頁上啟用“添加驅動程序”復選框。 單擊“下一步”。
技術分享圖片
在“可選設置”頁上,提供開發工具包主機 的本地管理員帳戶信息,然後單擊“下一步”。 還可以提供以下可選設置的值:

  • Computername:此選項設置開發工具包主機的名稱。 名稱必須符合 FQDN 要求,且長度不得超過 15 個字符。 默認值是由 Windows 生成的隨機計算機名稱。
  • 時區:設置開發工具包主機的時區。 默認為“(UTC-8:00)太平洋時間(美國和加拿大)”。
  • 靜態 IP 配置:將部署設置為使用靜態 IP 地址。 否則,當安裝程序重啟到 cloudbuilder.vhx 中時,會使用 DHCP 來配置網絡接口。

技術分享圖片

單擊“立即重新啟動”,將開發工具包主機啟動到 cloudbuilder.vhdx 中,然後繼續部署過程。
技術分享圖片
技術分享圖片


當重啟到ASDK的VHDX環境中的時候,這臺物理服務器已經變為了雙系統啟動狀態,這是進入了一個直接掛載VHDX啟動的物理機環境,所有的操作系統層面的操作都是在這個VHDX中完成的,不會影響之前的物理操作系統。

接下來我們開始安裝ASDK(Azure Stack 開發工具包的安裝程序用戶界面是一種基於 WCF 和 PowerShell 的開源腳本。)

  • 在主機成功啟動到 CloudBuilder.vhdx 映像之後,使用準備用於 ASDK 安裝的開發工具包主機時指定的管理員憑據登錄。 此憑據應與開發工具包主機本地管理員憑據相同。

  • 打開權限提升的 PowerShell 控制臺,運行 <驅動器號>\AzureStack_Installer\asdk-installer.ps1 腳本(現在可能位於 CloudBuilder.vhdx 映像中除 C:\ 以外的其他驅動器上)。 單擊“安裝”。
    技術分享圖片

在標識提供者的“類型”下拉框中,選擇“Azure Cloud”、“Azure China”或“AD FS”。 在“本地管理員密碼”下的“密碼”框中,鍵入本地管理員密碼(必須與當前配置的本地管理員密碼相符),然後單擊“下一步”。

  • Azure Cloud:將 Azure Active Directory (Azure AD) 配置為標識提供者。要使用此選項,需要建立 Internet 連接。
  • Azure China Cloud:這是將由世紀互聯運營的中國版的Azure Active Directory (Azure AD) 配置為標識提供者, 若要使用此選項,需要建立 Internet 連接。
  • AD FS:將默認的戳記目錄服務用作標識提供者。 登錄時使用的默認帳戶是 [email protected],要使用的密碼是在設置過程中提供的。

技術分享圖片
選擇用於開發工具包的網絡適配器,然後單擊“下一步”。
技術分享圖片

為 BGPNAT01 虛擬機選擇 DHCP 或靜態網絡配置。

提示
BGPNAT01 VM 是邊緣路由器,提供適用於 Azure Stack 的 NAT 和 VPN* 功能。

  • DHCP(默認):虛擬機 DHCP 服務器獲取 IP 網絡配置。
  • 靜態:僅當 DHCP 無法為 Azure Stack 分配可訪問 Internet 的有效 IP 地址時,才使用此選項。 靜態 IP 地址必須在 CIDR 格式中使用子網掩碼長度來指定(例如,10.0.0.5/24)。

  • 鍵入有效的時間服務器 IP 地址。 此必填字段設置可供開發工具包使用的時間服務器。 必須以有效的時間服務器 IP 地址的形式提供此參數。 服務器名稱不受支持。

提示
若要查找時間服務器 IP 地址,請訪問 pool.ntp.org 或 ping time.windows.com。

(可選)設置以下值:

  • VLAN ID:設置 VLAN ID。 僅當主機和 AzS-BGPNAT01 必須通過配置 VLAN ID 來訪問物理網絡(和 Internet)時,才使用此選項。
  • DNS 轉發器:在 Azure Stack 部署過程中會創建 DNS 服務器。 若要允許解決方案中的計算機解析標記外部的名稱,請提供現有的基礎結構 DNS 服務器。 標記內 DNS 服務器將未知的名稱解析請求轉發至此服務器。

技術分享圖片
技術分享圖片

在“驗證網絡接口卡屬性”頁上會看到一個進度欄。 完成驗證後,單擊“下一步”。在“摘要”頁上單擊“部署”,開始在開發工具包主機上安裝 ASDK。
技術分享圖片

如果執行 Azure AD 部署,系統會在安裝開始後數分鐘提示輸入 Azure AD 全局管理員帳戶憑據。
技術分享圖片

部署程序需要花費數小時,在此期間,主機會自動重新啟動一次。 若要監視部署進度,請在開發工具包主機重啟後,以 azurestack\AzureStackAdmin 身份登錄。 如果部署成功,PowerShell 控制臺會顯示“COMPLETE: Action ‘Deployment‘”。
技術分享圖片

技術分享圖片

技術分享圖片

超級順利,幾個小時的自動化部署,現已成功安裝 ASDK!

如果部署出於某種原因失敗,可以從頭重新部署,也可以在同一個權限提升的 PowerShell 窗口中使用以下 PowerShell 命令,從最後一個成功步驟重新開始部署:

cd C:\CloudDeployment\Setup
.\InstallAzureStackPOC.ps1 -Rerun

部署ASDK完成後的配置任務

需要安裝與 Azure Stack 兼容的 Azure PowerShell 模塊才能使用 Azure Stack。

通過 PowerShell 庫安裝適用於 Azure Stack 的 PowerShell 命令。 若要註冊 PSGallery 存儲庫,請打開權限提升的 PowerShell 會話並運行以下命令:

Set-PSRepository `
  -Name "PSGallery" `
  -InstallationPolicy Trusted

通過 API 版本配置文件安裝與 Azure Stack 兼容的 AzureRM 模塊。 Azure Stack 需要 2017-03-09-profile API 版本配置文件(可通過安裝 AzureRM.Bootstrapper 模塊獲取)。

無論是否與 ASDK 主機建立了 Internet 連接,都可以安裝 Azure Stack PowerShell,我們這裏主要采用了連接互聯網的方式進行安裝:

# Install the AzureRM.Bootstrapper module. Select Yes when prompted to install NuGet 
Install-Module `
  -Name AzureRm.BootStrapper

# Install and import the API Version Profile required by Azure Stack into the current PowerShell session.
Use-AzureRmProfile `
  -Profile 2017-03-09-profile -Force

Install-Module `
  -Name AzureStack `
  -RequiredVersion 1.2.11

如果安裝成功,輸出中會顯示 AzureRM 和 AzureStack 模塊。
技術分享圖片

AzureStack-Tools 是托管 PowerShell 模塊的 GitHub 存儲庫,可用於管理資源並將其部署到 Azure Stack。 若要獲取這些工具,請克隆 GitHub 存儲庫,或運行以下腳本來下載 AzureStack-Tools 文件夾:

# Change directory to the root directory. 
cd 
# Enforce usage of TLSv1.2 to download the Azure Stack tools archive from GitHub
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
invoke-webrequest `
  https://github.com/Azure/AzureStack-Tools/archive/master.zip `
  -OutFile master.zip

# Expand the downloaded files.
expand-archive master.zip `
  -DestinationPath . `
  -Force

# Change to the tools directory.
cd AzureStack-Tools-master

技術分享圖片


最後就是驗證ASDK的安裝是否成功了。
若要確保 ASDK 部署成功,可以遵循以下步驟使用 Test-AzureStack cmdlet:

以 AzureStack\CloudAdmin 身份登錄到 ASDK 主機。
以管理員身份打開 PowerShell(非 PowerShell ISE)。
運行: Enter-PSSession -ComputerName AzS-ERCS01 -ConfigurationName PrivilegedEndpoint
運行: Test-AzureStack

此項測試可能需要幾分鐘時間才能完成。 如果安裝成功,將返回如下所示的輸出:
技術分享圖片


激活管理員門戶和租戶門戶

在完成使用 Azure AD 的部署以後,必須激活 Azure Stack 管理員門戶和租戶門戶。 對於目錄的所有用戶來說,此激活是指同意為 Azure Stack 門戶和 Azure 資源管理器提供正確的權限(已在同意頁上列出)。

如果在管理員門戶中操作,請導航到 https://adminportal.local.azurestack.external/guest/signup,
閱讀信息,然後單擊“接受”。 接受後即可添加服務管理員,但這些管理員不能也是目錄租戶管理員。
如果在租戶門戶中操作,請導航到 https://portal.local.azurestack.external/guest/signup,
閱讀信息,然後單擊“接受”。 接受後,目錄中的用戶即可登錄到租戶門戶。

技術分享圖片
技術分享圖片
技術分享圖片

到此大家就會看到當前我已經安裝好最新的1.0.180513.1的版本。


最後因為是開發測試環境,我們就要對當前的環境進行密碼過期策略進行調整,以防測試期間出現密碼過期的狀況。
若要通過 Powershell 更改密碼過期策略,請執行以下步驟:

在提升權限的 Powershell 控制臺中,運行以下命令:
Set-ADDefaultDomainPasswordPolicy -MaxPasswordAge 180.00:00:00 -Identity azurestack.local

技術分享圖片


可將 Azure Stack 開發工具包 (ASDK) 安裝註冊到 Azure,以便從 Azure 下載 Marketplace 項,並設置向 Microsoft 報告商務數據的功能。 之所以建議註冊,是因為這樣可以測試重要的 Azure Stack 功能,例如 Marketplace 聯合和使用情況報告。 註冊 Azure Stack 之後,使用情況將報告給 Azure 商業組件。 用於註冊的訂閱下會顯示此信息。 但是,ASDK 用戶無需付費,不管他們報告的用量是多少。

接下來我就為已經部署好的ASDK進行註冊,以確保可以正常下載市場鏡像。

  • 以管理員身份打開 PowerShell 控制臺。
  • 運行以下 PowerShell 命令,將 ASDK 安裝註冊到 Azure(需要同時登錄到 Azure 訂閱和本地 ASDK 安裝):
# Add the Azure cloud subscription environment name. Supported environment names are AzureCloud or, if using a China Azure Subscription, AzureChinaCloud.
Add-AzureRmAccount -EnvironmentName "AzureChinaCloud"

# Register the Azure Stack resource provider in your Azure subscription
Register-AzureRmResourceProvider -ProviderNamespace Microsoft.AzureStack

#Import the registration module that was downloaded with the GitHub tools
Import-Module C:\AzureStack-Tools-master\Registration\RegisterWithAzure.psm1

#Register Azure Stack
$AzureContext = Get-AzureRmContext
$CloudAdminCred = Get-Credential -UserName AZURESTACK\CloudAdmin -Message "Enter the credentials to access the privileged endpoint."
Set-AzsRegistration `
    -PrivilegedEndpointCredential $CloudAdminCred `
    -PrivilegedEndpoint AzS-ERCS01 `
    -BillingModel Development
-ResourceGroupLocation "ChinaEast"

其中如果是國際版的Azure賬號,需要將其中的參數 "AzureChinaCloud"改為“AzureCloud”,並且將-ResourceGroupLocation "ChinaEast"刪去

如果腳本運行成功,那麽就會顯示:Your environment is now registered and activated using the provided parameters.
技術分享圖片
技術分享圖片


我們可以來驗證一下ASDK是否註冊成功,在登錄管理門戶之後,點擊 Marketplace Management > Add from Azure.
技術分享圖片

如果看到以上畫面,那麽說明已經註冊成功,可以開始測試之旅啦!

Azure Stack-1805 版本 配置10分鐘、自動部署6小時-我的ASDK第六次實踐