Slide 1

Slide 1 text

Terraforming Windows Virtual Desktop Infrastructure on Azure 八重樫 剛史 Takeshi Yaegashi BANDAI NAMCO Studios Inc.

Slide 2

Slide 2 text

自己紹介 八重樫 剛史 Takeshi Yaegashi 株式会社バンダイナムコスタジオ BANDAI NAMCO Studios Inc. 所属 Linux・Unix・OSS が好きなエンジニア Go 言語が好き 組み込みシステム開発、ゲームサーバ開発、 CI/CD インフラ開発、 開発環境のクラウドシフトなどの業務に従事 最近は Azure DevOps で Unity アプリの CI/CD をいじっていた 活動場所 ホームページ・ブログ https://l0w.dev GitHub https://github.com/yaegashi GitLab https://gitlab.com/yaegashi Twitter https://twitter.com/hogegashi

Slide 3

Slide 3 text

HashiCorp products 関連活動 Terraform provider for Microsoft Graph ▪ Microsoft Graph API を操作するプロバイダ (Azure AD の代替) ▪ Terraform Registry に登録しました https://registry.terraform.io/providers/yaegashi/msgraph HashiTalks: Japan 2020 speaker ▪ Terraform provider for Microsoft Graph について喋りました

Slide 4

Slide 4 text

HashiCorp products 関連活動 Packer ▪ Azure の Windows VM イメージの構築に多用している ▪ Ansible provisioner が好き Azure Image Builder ▪ あまり知られていない Azure のマネージド Packer サービス ▪ あまりに使いづらいので CLI ツールを Go で作った話 https://qiita.com/yaegashi/items/5216a9b37c2041b93a3a

Slide 5

Slide 5 text

Windows Virtual Desktop (WVD) Azure が提供する VDI サービス ▪ COVID-19 対応のひとつとして注目されるようになった ▪ Windows 10 Enterprise の Azure VM にリモートデスクトップ接続できる ▪ Windows ライセンスと VM・基本インフラ以外の費用が必要なく、安いのが特長

Slide 6

Slide 6 text

WVD の一般的なアーキテクチャ https://docs.microsoft.com/ja-jp/azure/architecture/example-scenario/wvd/windows-virtual-desktop

Slide 7

Slide 7 text

wvd-terraform https://github.com/yaegashi/wvd-terraform ▪ ついさっき作ったばかりのリポジトリ ▪ Terraform を使って Windows Virtual Desktop をお気軽に試せるサンプルです ▪ Terraform の provider の自作とかしてるわりに運用は素人なのでいろいろだめな点をご指摘くださ い

Slide 8

Slide 8 text

Windows Virtual Desktop を試す① 必要なサブスクリプションとライセンス ▪ Azure サブスクリプション – なんとか自分で用意してください – 数日間試すだけなら、初回アカウント登録時のおまけクレジット (22,500 円) や Visual Studio サブスクリプションのおまけクレジット (6,000円/月) でも十分 ▪ Windows 10 Enterprise のライセンス × ユーザー数分 – Microsoft 365 Developer Program にサインアップするのがおすすめ https://developer.microsoft.com/ja-jp/microsoft-365/dev-program – 全部入りライセンス Microsoft 365 E5 × 25 がほぼ無期限に使える (90日ごとに更新) – 新しいテナントができるのでそこで Azure サブスクリプションを使えるようにする

Slide 9

Slide 9 text

Windows Virtual Desktop を試す② 事前に作っておくべきリソース ▪ Virtual Networks – AADDS 用と WVD ホスト用 2 つのサブネットを作っておく ▪ Azure Active Directory Domain Services (AADDS) – Azure AD のユーザー・グループを自動同期してくれるマネージド AD サーバ – これも Terraform で作れるとよいのだが azurerm provider が対応していない… – https://github.com/terraform-providers/terraform-provider-azurerm/issues/8970

Slide 10

Slide 10 text

Windows Virtual Desktop を試す③ サンプルリポジトリをクローンして設定 ▪ git clone https://github.com/yaegashi/wvd-terraform ▪ フォルダ構成 – workspace Workspace リソース – pool1 ホストプール・セッションホストリソース ▪ 各フォルダの修正箇所 – main.tf サブスクリプション・テナント・バックエンド設定 – variables.tf 変数設定 – local.auto.tfvars.json AD参加ユーザー・パスワードなど (.gitignore されている)

Slide 11

Slide 11 text

pool1/local.auto.tfvars.json CODE EDITOR { "adjoin": { "name": "aad-join", "domain": "l0wdev.onmicrosoft.com", "password": "hogehogesecret" } }

Slide 12

Slide 12 text

Windows Virtual Desktop を試す④ Terraform 実行 ▪ workspace, pool1 の各フォルダで普通に実行 – terraform init – terraform plan – terraform apply

Slide 13

Slide 13 text

Windows Virtual Desktop を試す⑤ Web クライアントで接続テスト ▪ https://rdweb.wvd.microsoft.com/arm/webclient/index.html 間違って Windows Server 2019 でホストを作ってしまっ た … (ライセンス違反)

Slide 14

Slide 14 text

セッションホストの追加登録 CODE EDITOR module "yaegashi" { source = "./modules/wvdhost" owner = "[email protected]" vm = { location = "japaneast" resource_group_name = azurerm_resource_group.wvd.name name = "wvd-yaegashi1" size = "Standard_D2as_v4" storage_account_type = "Premium_LRS" license_type = "Windows_Client" subnet_id = data.azurerm_subnet.wvd.id gpu_driver = "" } adjoin = var.adjoin hpjoin = { name = azurerm_virtual_desktop_host_pool.wvd.name token = azurerm_virtual_desktop_host_pool.wvd.registration_info[0].token wvd_yaegashi.tf のようなファイルをコピペして増やすだけで追加登録可能!

Slide 15

Slide 15 text

Terraform で WVD まとめ① wvd-terraform のよい点 ▪ ホストプール・セッションホスト・ VM の複雑な構成のデプロイや破壊が自動的にできる – ホストの追加・削除がとても手軽 ▪ Azure Portal や Azure CLI では不可能な構成も簡単に実現できる – ひとつのホストプールにサイズの異なる VM を混在して登録できる – ホスト名を個別に自由に決められる (通常は連番ホスト名しか使えない ) ▪ ユーザー個別のカスタマイズが必要な用途には都合がよい

Slide 16

Slide 16 text

Terraform で WVD まとめ② wvd-terraform のよくない点 ▪ ディレクトリ・ファイルの構成が素人ぽい ▪ 汎用性が足りない (決め打ち設定がかなりある ) ▪ ドキュメントがない (README.md すらない) ▪ これから改善していきます!

Slide 17

Slide 17 text

Thank You! [email protected] learn.hashicorp.com discuss.hashicorp.com 17

Slide 18

Slide 18 text

[email protected] learn.hashicorp.com discuss.hashicorp.com 18