世界のやまさ

SEKAI NO YAMASA

AzureStack on Azure を作ってみた

azurestack.blog

Azure 上で Azure Stack を動かすという誰得な話ですが、ハードが必要なく必要な時だけ1時間数百円ほどで検証できます。まずはどんな感じか触ってみたいとかPoCとしてはコスト削減が出来るので、意外と良いかもしれません。

やってはいけないこと

  • コンピューター名を azurestack にする
    • インストールスクリプトでエラーになる。ポータルで VM を作成する際は azurestack 以外の名前にすること

注意点

  • インストールスクリプトを流している間に、リモートデスクトップセッションが切れて入り直す場合、ADを作成したあたりのタイミングから Administrator ではなく、 AzureStack\AzureStackAdmin で入らないと、セッションの復元が出来なくなる。さらに Administrator ではインストールスクリプトを流せなくなる。

所要時間

躓きながらやってたので、土日でなんとか出来た感じ。 慣れれば放置している時間が長いので、5時間ぐらいあれば出来そうな気はする。

前準備

  • 余裕のある Azure サブスクリプション
  • コア数制限解除
  • Windows Server 2016 E16s v3 (16 cores, 128 GB memory) 以上
    • あくまでMinimum。もう一つ上の E32s v3 (32 cores, 256 GB memori) 以上が推奨

手順

  • VM にリモートデスクトップする
  • 管理者ユーザーのyournameをadministratorに変更
Rename-LocalUser -Name yourname -NewName Administrator
  • ログオフ
  • Azureポータルで停止
  • AzureポータルでOSDiskを256GB、データディスクを256GB4本
  • Azureポータルで開始
  • ディスクマネージャーでCドライブを256に拡張
  • データディスクをGPTで初期化
  • タイムゾーンを東京にする
  • IE Enhanced Security Configuration を無効化
    • f:id:nnasaki:20170722100627p:plain
  • 次のスクリプトでHyper-Vなど必要な機能を有効化
Add-WindowsFeature Hyper-V, Failover-Clustering, Web-Server -IncludeManagementTools
Add-WindowsFeature RSAT-AD-PowerShell, RSAT-ADDS -IncludeAllSubFeature
Install-PackageProvider nuget –Verbose
  • 再起動
  • Azure Stack Development Kit をダウンロード https://azure.microsoft.com/en-us/overview/azure-stack/development-kit/
  • Azure Stack Development Kit を起動して、必要なファイルをダウンロード、解凍
    • f:id:nnasaki:20170722123006p:plain
  • CloudBuilder.vhdx をマウントして CloudDeployment , fwupdate , tools をCドライブ直下にコピーする。CloudBuilderはイジェクトする。
  • 次のスクリプトのyourdirectoryを自分のディレクトリに変更して実行
cd C:\CloudDeployment\Setup
.\InstallAzureStackPOC.ps1 -InfraAzureDirectoryTenantName yourdirectory.onmicrosoft.com -NATIPv4Subnet 172.16.0.0/24 -NATIPv4Address 172.16.0.2 -NATIPv4DefaultGateway 172.16.0.1 -Verbose
  • administrator パスワード入力
  • しばらくすると Azure のアカウントを入力
  • エラーが起こる
    • f:id:nnasaki:20170722140421p:plain
  • C:\CloudDeployment\Roles\PhysicalMachines\Tests\BareMetal.Tests.ps1 を 開いて $isVirtualizedDeployment-not を消す。3箇所ある
    • f:id:nnasaki:20170722140713p:plain
  • 下記コマンドを実行
.\InstallAzureStackPOC.ps1 -Rerun -Verbose
  • CredSSP エラーが起きる

    • f:id:nnasaki:20170723012640p:plain
  • 次のスクリプトを実行

Enable-WSManCredSSP -Role Server
Set-Item wsman:localhost\client\trustedhosts -Value *
Enable-WSManCredSSP -Role Client -DelegateComputer *
  • gpedit.msc を開いて、Local Computer Policy > Computer Configuration > Administrative Templates > System > Credential DelegationAllow Delegating Fresh Credentials with NTLM-only Server Authentication を有効にして、 WSMAN/* の value を追加する。

    • f:id:nnasaki:20170723013026p:plain
  • 再び下記コマンドを実行

.\InstallAzureStackPOC.ps1 -Rerun -Verbose
  • 数時間後エラー VERBOSE: 1> [IdentityProvider:Deployment] ERROR: An error occurred while trying to verify connection to the graph endpoint
    • f:id:nnasaki:20170723093415p:plain
    • IE でなにも見えない状態になっていた。NATが失敗してる?
    • 下記NATSwitchを追加する手順を行ったら、IEからも見られるようになった
New-VMSwitch -Name "NATSwitch" -SwitchType Internal -Verbose
$NIC=Get-NetAdapter|Out-GridView -PassThru
New-NetIPAddress -IPAddress 172.16.0.1 -PrefixLength 24 -InterfaceIndex $NIC.ifIndex
New-NetNat -Name "NATSwitch" -InternalIPInterfaceAddressPrefix "172.16.0.0/24" –Verbose

デプロイ完了

f:id:nnasaki:20170723163952p:plain

使い方

https://portal.local.azurestack.external/ にアクセス

キタ━(・∀・)━!!!!

f:id:nnasaki:20170723164429p:plain

まとめ

手順をまとめるとすんなりに見えますが、最初 azurestack という安易な名前にしたため、スクリプトが謎エラーでコケて作り直したり、スナップショットから復元したりと結構試行錯誤しました。

使い方についてはまた別途ご紹介したいと思います。

参考サイト

azurestack.blog

docs.microsoft.com

www.projectsr.net