#Ansible をつかって#Hyper-V で #Infrastructure as Codeを実現! / 企業でよくある#Windows , #M365 環境を構築してみるシリーズ Part4

AnsibleとHyper-VでInfrastructure as Codeを実現する この記事の内容 Hyper-V上でAnsibleを使ったInfrastructure as Code(IaC)の実現方法を解説します WindowsホストでAnsibleを動かすためにWSL(Windows Subsystem for Linux)を活用します YAMLファイルに仮想マシンの設定を記述するだけで、コマンド一発で自動展開できる仕組みを構築します Ansibleのべき等性により、同じプレイブックを複数回実行しても安全に運用できます 本シリーズのPart1〜3で作成したゴールデンイメージと組み合わせることで、完全自動のVM展開環境が完成します はじめに 本記事は「企業でよくあるWindows・M365環境を構築してみるシリーズ」のPart4です。前回までのPart1〜3では、ネステッドHyper-Vの基盤構築、Windows Server 2022のSysprep済みゴールデンイメージ作成、そして自動応答ファイルによるゼロタッチ展開の仕組みを整えました。 今回はその仕組みをさらに発展させ、Infrastructure as Code(IaC) を実現します。テキストファイルにVMの名前やIPアドレスなどの設定を書いておくだけで、コマンド一発で全自動的に環境が出来上がるという仕組みです。 自動化ツールには Ansible を使用します。Hyper-VでIaCを実現するための情報はインターネット上に非常に少なく、本記事の情報は希少性が高いものとなっています。 前提条件 本記事の手順を実施するにあたって、以下が完了していることを前提とします。 ネステッドHyper-Vの基盤構築済み Windows Server 2022のSysprep実行済みゴールデンイメージ作成済み 自動応答ファイルによるゼロタッチ展開の設定済み WSLのインストール AnsibleはWindows上では直接実行できないため、WSL(Windows Subsystem for Linux) を使用します。WSLを使うことで、Windows上でLinuxのコマンドが使えるようになります。 管理者権限でPowerShellを起動し、まずインストール可能なディストリビューション一覧を確認します。 wsl --list --online Ubuntuをインストールします。 wsl --install -d Ubuntu インストール後、再起動を求められますので再起動します。再起動後にログインすると、インストールが自動的に再開されます。UNIXユーザー名とパスワードを設定すれば完了です。 WSL(Ubuntu)環境のセットアップ WSLのUbuntu環境を最新の状態にします。 sudo apt update sudo apt upgrade -y 続いてAnsibleをインストールします。 sudo apt install ansible -y 次に、AnsibleからWindowsホストを管理するために必要な pywinrm もインストールします。 pip install pywinrm 最後にAnsible本体をインストールします。インストールが完了するとバージョン(例:2.9.6)が表示されます。 ...

December 8, 2021 · 1 min · 胡田昌彦

#ADK , #SIM を使って応答ファイルを作成し#sysprep 実行後の構成を自動化する / 企業でよくある#Windows, #M365 環境を構築してみるシリーズ Part3

以下が記事本文です。 ADK と SIM を使って応答ファイルを作成し、Sysprep 実行後の構成を自動化する この記事の内容 Windows ADK(Assessment and Deployment Kit)の「Deployment Tools」をインストールして Windows システムイメージマネージャー(SIM)を起動する手順を解説します SIM を使い、日本語ロケール・タイムゾーン・プロダクトキー・EULA 承諾・Administrator パスワードなどを盛り込んだ応答ファイル(Unattend.xml)を作成します 作成した応答ファイルを Sysprep 実行時に指定することで、仮想マシンの初回起動(OOBE)を完全に自動化する方法を紹介します 応答ファイルの配置先や Sysprep コマンドの引数についても具体的に説明します 複数の仮想マシンを展開する際に毎回手動設定が不要になり、ゴールデンイメージ運用が大幅に効率化されます 応答ファイルとは 前回は Sysprep の基本的な使い方を解説しました。今回はさらに一歩進めて、応答ファイル(Unattend.xml) を作成します。 応答ファイルとは、Sysprep 済みのイメージを初回起動(OOBE: Out-of-Box Experience)した際に自動的に読み込まれる設定ファイルです。これを使うことで次のような項目を無人で構成できます。 PC 名の設定 Administrator パスワードの設定 ライセンス(EULA)の自動承諾 言語・ロケール・タイムゾーンの設定 プロダクトキーの入力 応答ファイルを活用することで、Sysprep 済みイメージから何も入力せずに使える状態まで自動的に持っていくことが可能になります。 Windows ADK のインストール 応答ファイルを作成するには Windows ADK(Windows Assessment and Deployment Kit) が必要です。 ADK は、Windows イメージの大規模展開向けカスタマイズや、アプリケーションのパフォーマンステストなど多岐にわたる機能を持つツールキットです。Windows Server 2022 にも対応しています。 Microsoft の公式サイトから ADK のインストーラーをダウンロードし、実行します。機能の選択画面では、応答ファイルの作成に必要な以下のコンポーネントのみを選択します。 ...

December 4, 2021 · 4 min · 胡田昌彦

#sysprep で #WindowsServer の #雛形 を作成する / 企業でよくある #Windows , #M365 環境を構築してみるシリーズ Part2

Sysprepで Windows Server の雛形(ゴールドイメージ)を作成する この記事の内容 Windows Server を複数台展開する際に、毎回同じ設定をする手間を省く「雛形(ゴールドイメージ)」の作り方を解説します 仮想ディスク(VHDXファイル)を単純コピーしてはいけない理由と、その解決策としての Sysprep を紹介します Sysprep 実行前に雛形へ仕込んでおくと便利な設定項目を紹介します Sysprep を実行してシャットダウンされた状態の VHDX をコピーし、新しい仮想マシンを作成する手順を解説します 次回予告として、自動応答ファイルを使った展開後のセットアップ完全自動化について触れます はじめに 本記事は「企業でよくある Windows / M365 環境を構築してみるシリーズ」のパート2です。前回はネストされた Hyper-V 基盤を作成しました。今回はその基盤の上に Windows Server を効率よく複数台展開するために、Sysprep(システム準備ツール) を使って雛形を作成する方法を解説します。 なぜ単純なVHDXコピーではいけないのか 仮想マシンを複数台用意する方法のひとつとして、仮想ハードディスク(VHDXファイル)をそのままコピーするというアプローチが考えられます。しかし Windows の場合、OS 内部には固有の ID(SID など)が埋め込まれており、単純にコピーするとその ID が重複してしまいます。 特に Active Directory 環境では、この ID の重複が原因でさまざまな問題が発生します。そのため、コピーしても問題が起きないよう「一般化(Generalize)」した状態にしてからコピーする必要があります。 この一般化を行うツールが Sysprep(System Preparation Tool) です。 Sysprep とは Sysprep は Windows に標準搭載されているシステム準備ツールで、以下のパスに格納されています。 C : \ W i n d o w s \ S y s t e m 3 2 \ S y s p r e p \ s y s p r e p . e x e Sysprep を実行して「一般化」を選択すると、OS に埋め込まれた固有の ID がクリアされ、次回起動時に再生成される状態になります。また、シャットダウンオプションを選ぶことで、一般化処理が完了した後に OS が自動的にシャットダウンされます。 ...

December 2, 2021 · 2 min · 胡田昌彦

WSL on Windows Server 2022 / #WSL #windows #windowsserver #win2022

Windows Server 2022 に WSL(Ubuntu)をインストールする この記事の内容 Windows Server 2022 Datacenter 環境に WSL をインストールする手順を紹介します PowerShell からインストール可能なディストリビューションの一覧を確認できます wsl --install コマンドで Ubuntu を導入できます インストール後は再起動が必要で、Linux ユーザー名とパスワードを設定します セットアップ後に apt update / apt upgrade でパッケージを最新化します 環境 今回の作業環境は Windows Server 2022 Datacenter です。この環境に WSL(Windows Subsystem for Linux)を使って Ubuntu を導入していきます。 インストール可能なディストリビューションの確認 まず PowerShell を起動します。次のコマンドを実行すると、WSL でインストール可能なディストリビューションの一覧が表示されます。 wsl --list --online 一覧から好みのディストリビューションを選ぶことができます。 WSL と Ubuntu のインストール 以下のコマンドで Ubuntu をインストールします。-d オプションでディストリビューションを指定します。 wsl --install -d Ubuntu インストールが完了したら、一度 再起動 します。 初回セットアップ(ユーザー名・パスワードの設定) 再起動後、WSL が起動すると Linux のユーザー名の入力を求められます。任意のユーザー名を入力してください。続いてパスワードの設定も行います。 ...

November 26, 2021 · 1 min · 胡田昌彦

Nested Hyper-Vで検証基盤を準備 / 企業でよくあるWindows, M365環境を構築してみるシリーズ Part1 #Winodws #hyper-v

Nested Hyper-Vで検証基盤を準備する — 企業でよくあるWindows・M365環境を構築してみるシリーズ Part1 この記事の内容 Nested Hyper-V(ネスト仮想化)とは何か、有効化の手順を解説します Windows Server 2022 をインストールした仮想マシンを検証基盤として構築します 内部仮想スイッチと PowerShell の New-NetNat コマンドレットを使い、NAT ネットワークを構成します ゲスト VM からインターネットへの疎通確認まで行います 次回以降、この基盤の上に Active Directory など企業向け環境を展開していきます シリーズの概要 このシリーズでは、Windows Server と Microsoft 365 を使った典型的な企業向け環境を構築し、ポイントを解説していきます。冗長化も考慮しながら進めていく予定です。 本記事は第1回として、後続の環境構築すべての土台となる Nested Hyper-V の検証基盤 を整えます。検証機材として Lenovo ThinkSystem SE350 を使用しています。 Nested Hyper-V とは Nested Hyper-V(ネスト仮想化)とは、仮想マシン上で Hyper-V を動作させることです。つまり、すでに仮想化されている環境の中に、さらに仮想マシンを作成できるようになります。 有効化するには Set-VMProcessor コマンドレットに -ExposeVirtualizationExtensions $true を指定して実行します。これにより、仮想マシンに仮想化支援機能が公開され、その中で Hyper-V が利用できるようになります。 ネットワーク構成の全体像 構築するネットワーク構成は以下のとおりです。 既存の構成(SE350 上): 物理ネットワーク → SE350(物理マシン)→ インターネット SE350 上に Hyper-V が有効化済み NatSwitch という名前の NAT スイッチが作成済み(192.168.x.x/16 のネットワーク) Hyper-V ホストは NatSwitch 上に仮想 NIC を持ち、192.168.x.254 を割り当て済み 今回新たに構築する構成: ...

November 16, 2021 · 3 min · 胡田昌彦

#WindowsServer2012 /R2はもうすぐ #サポート切れ です! #EOS #windowsserver

Windows Server 2012/R2のサポート終了が迫っています!今すぐ移行計画を立てましょう この記事の内容 Windows Server 2012/2012 R2のサポートは2023年10月10日に終了します サポート終了後も延長セキュリティ更新プログラム(ESU)で最大3年の猶予が得られますが、コストがかかります Azureまたはオンプレミスの Azure Stack HCI へ移行することで、ESUを3年間無償で受けられます Azure Stack HCI へ移行することで、Windowsサーバーのメジャーバージョンアップ問題から解放されます クラスター対応更新(CAU)により、OS・ファームウェア・ドライバーのアップデートがボタン操作で完了します サポート終了まであと少し Windows Server 2012および2012 R2は、Microsoftの製品ライフサイクル情報によると、2023年10月10日にサポートが終了します。 まだまだ現役で使われている組織が多いかと思いますが、残り期間を考えると、今から計画を立ててもギリギリか、すでに間に合わない状況になりつつあります。組織内にWindows Server 2012が存在している場合、アップグレードするのか、移行するのか、作り変えるのかといった検討から実作業まで、相当な期間が必要です。2年という猶予はあっという間に過ぎてしまいます。 中には、まだWindows Server 2008を使い続けているというお客様もいらっしゃいます。メジャーバージョンのサポート切れに多くの組織が追いつけず、延長サポートを受けるために高額な費用を支払い続けているケースも少なくありません。 延長セキュリティ更新プログラム(ESU)という選択肢 Microsoftからはサポート終了に伴うサーバー移行支援オファーも提供されており、その中に**Extended Security Updates(ESU)**があります。ESUを利用することで、サポート終了後も最大3年間、セキュリティ更新プログラムを受け取ることができます。 ただし、ESUをファーストオプションとして最初から選択してしまうのは避けてください。あくまでも移行準備のための猶予として位置づけるべきものです。 ESUを無償で受けられる2つの移行先 移行先によっては、3年間のESUを無償で受けることができます。これが非常に重要なポイントです。 1. パブリッククラウド(Azure)への移行 Windows Server 2012をそのままAzureに移行することで、3年間無償でESUを受けることができます。Windows Server 2008でも実績がある方法です。 移行を支援するサービスとして、以下のものが活用できます。 Azure Migrate:移行のアセスメントと計画を支援 Azure Site Recovery:スムーズなレプリケーションと移行 以前は「クラウドに持ってこられない」と思われていたシステムも、今では対応できるケースが増えています。たとえば、共有ディスクを使ったクラスターも、現在はAzure上で利用できるようになっています。一度検討したことがある方も、改めて確認してみる価値があります。 2. オンプレミスのAzure Stack HCIへの移行 パブリッククラウドへの移行がハードルとして高い組織には、オンプレミスのままAzure Stack HCIへ移行することで、無償でESUを受けられるという選択肢があります。 Azure Stack HCIが対象となるサービスには以下が含まれます。 Azure VMware Solution(AVS) Azure Stack HCI たとえばAVSを使えば、IPアドレスやMACアドレスを変更せずにライブマイグレーションでAzureに移行し、延長サポートを受け続けることも可能です。 オンプレミスの仮想基盤をAzure Stack HCIにリプレースして、オンプレミス環境のまま無償ESUを受け取ることができます。Azure Stack HCIのOSは「Azure Stack HCI OS」としてWindows Serverから独立しており、Azureの延長サポートを受けられる構成になっています。 ...

September 8, 2021 · 1 min · 胡田昌彦

#WindowsServer2019 から 2022 へのインプレースアップグレード #windowsserver2022 #win2022 #windowsserver

Windows Server 2019 から 2022 へのインプレースアップグレード この記事の内容 Windows Server 2019 が稼働中の Hyper-V サーバーに対して、インプレースアップグレードで Windows Server 2022 を導入した検証結果を紹介します アップグレード作業は Lenovo XClarity Controller(リモート管理ボード)経由でリモート実施しました Hyper-V 上で仮想マシンが起動中だとアップグレードが失敗するという注意点があります アップグレード後も Hyper-V ロールおよびゲスト VM が問題なく動作することを確認しました 検証環境では特に大きなトラブルなくアップグレードに成功しました 検証環境について 今回の検証は、Lenovo ThinkSystem SE350 をメインの検証環境として使用しています。この機材はお借りしたものであり、普段から Hyper-V サーバーとして多数の仮想マシンを稼働させています。 今回の目的は、その実際に使用中のサーバーに対して、インプレースアップグレードで Windows Server 2022 を導入し、問題なく動作するかどうかを検証することです。 リモート管理ボードを使ったアップグレード作業 サーバー機器は通常の PC とは異なり、ディスプレイを直接接続することが少ない環境です。今回は Lenovo XClarity Controller(リモート管理ボード)にアクセスし、リモートコントロール機能を使って画面を開いた状態でアップグレード作業を実施しました。 これにより、BIOS 画面も含めて作業中に画面が消えることなく、安定してセットアップを進めることができます。 アップグレードの手順 1. Windows Server メディアのマウントとセットアップの起動 Windows Server 2022 のインストールメディアをサーバーにマウントし、セットアップを起動します。セットアップ開始直後に更新プログラムのダウンロードが始まりますが、これは最新の ISO を入手済みであっても追加の更新が適用されることがあるため正常な動作です。 2. 失敗事例:仮想マシンの停止を忘れずに 最初の試行では、以下のエラーが発生しセットアップが中断されました。 実 行 中 の 仮 想 マ シ ン が 1 つ 以 上 検 出 さ れ ま し た Hyper-V サーバーに対してインプレースアップグレードを実施する場合、Hyper-V 上で稼働中の仮想マシンをすべて電源オフにする必要があります。 ...

August 26, 2021 · 1 min · 胡田昌彦

#WindowsServer2022 を仮想マシンにインストールしてみました

Windows Server 2022 を仮想マシンにインストールしてみました この記事の内容 Windows Server 2022 のサポートライフサイクルと主な新機能を紹介します SMB over QUIC や AMD プロセッサーへのネスト仮想化対応など注目ポイントを解説します 評価版 ISO を使った仮想マシンへのインストール手順を実際に確認します インストール後の画面の印象や、Windows Server 2022 の外観的な変化についてお伝えします Windows Server 2022 のサポートライフサイクル Windows Server 2022 はすでに GA(一般提供)済みのバージョンです。マイクロソフトのサポートライフサイクルページによると、スタートデートは 2021 年 8 月 18 日となっています。 サポート期間は以下のとおりです。 メインストリームサポート終了日: 2026 年 10 月 13 日 延長サポート終了日: 2031 年 10 月 14 日 Windows Server はバージョンアップのたびにサポート切れとアップグレードを繰り返す組織も多いかと思います。すでに 2022 がリリースされていますので、今後の計画にあたってはこのタイムラインを把握しておくのがよいでしょう。 Windows Server 2022 の主な新機能 Windows Server 2022 はとりわけ大きな新機能があるという印象ではありませんが、セキュリティ系を中心にいくつかの改善が加わっています。 セキュリティの強化 トランスポート層の暗号化において新しい TLS バージョンへの対応 DNS over HTTPS(DoH)のサポート SMB 暗号化における AES-256 の採用 SMB over QUIC 特に注目したいのが SMB over QUIC です。これは TCP ではなく UDP ベースの QUIC プロトコルを使用して SMB 通信を行う新機能です。TLS も有効になっているため、Azure 上に置かれたファイルサーバーへ、VPN なしでインターネット経由から安全にアクセスできるようになります。 ...

August 25, 2021 · 2 min · 胡田昌彦

見て理解する #AzureStackHCI / Storage Spaces Direct / #s2d #windows #windowsserver

Azure Stack HCI と Storage Spaces Direct を見て理解する この記事の内容 Windows Admin Center(WAC)を使ったAzure Stack HCIクラスターの追加・管理方法 Storage Spaces Direct(S2D)のコマンド一発での有効化手順 スケールアウト(ノード追加)の簡単さ クラウド監視(Cloud Witness)の構成方法 ボリューム種別(3方向ミラー・Mirror Accelerated Parity)と耐障害性の実証 環境の概要 今回のデモ環境では、Windows Admin Center(WAC)をWebベースの管理ツールとして使用しています。ホストマシンはメモリ128GB・プロセッサ1基・32コアの構成で、Hyper-V上にさらにHyper-Vをネストして動作させています。 クラスターはStorage Spaces Directを実行していることが前提です。WACはAAD(Azure AD)と接続することで認証を行い、シングルサインオンにも対応しています。 Windows Admin CenterへのクラスターI追加 まず既存クラスターをWACに追加します。「接続の追加」からサーバー名を指定してクラスターを登録すると、WACがStorage Spaces Directを実行しているクラスターであることを自動で検出します。 追加後はダッシュボードで各サーバーの稼働状況、CPU・メモリ・IOPSレイテンシーなどをリアルタイムに確認できます。 Storage Spaces Direct の有効化 S2Dの有効化は驚くほどシンプルです。PowerShellで以下のコマンドを実行するだけです。 Enable-ClusterS2D New-Volume -StoragePoolFriendlyName "S2D on <クラスター名>" -FriendlyName "S2DVolume" -FileSystem CSVFS_ReFS このコマンドを実行すると、接続されているすべてのディスクを自動的に検出し、構成を最適化してストレージプールを作成します。複雑に見えるHyper-Converged Infrastructureの構成が、たった数行のコマンドで完了します。 スケールアウト(ノード追加) Azure Stack HCIの大きな特長の一つがスケールアウトの容易さです。 WACの「クラスターにサーバーを追加」からサーバー名を指定するだけで、3台目のノードをクラスターに参加させられます。追加中も仮想マシンは稼働を継続し、ストレージも自動的にリバランスされます。 1クラスターあたり最大16ノードまで拡張可能 最大ディスク容量は4ペタバイト ダウンタイムなしで仮想マシンの再配置とストレージのリバランスが実施されます クラウド監視(Cloud Witness)の構成 クラスターノードが偶数台の場合、クォーラムの観点から奇数台構成を推奨します。たとえば4ノード構成では、ノード同士が「2対2」で分断された際にどちらの側も過半数に達せず、両方が停止してしまう危険があります。 この解決策として**クラウド監視(Cloud Witness)**を追加します。Azureのストレージアカウントを使うことで、物理的な拠点を用意することなくクォーラムの票を1票追加できます。 Cloud Witnessの設定手順 1. Azureポータルでストレージアカウントを作成する ...

February 15, 2020 · 1 min · 胡田昌彦

Storage Spaces Direct(記憶域スペースダイレクト)での2ノードから4ノードへのスケールアウト / #S2D #windowsserver

Storage Spaces Direct(記憶域スペースダイレクト)での2ノードから4ノードへのスケールアウト この記事の内容 Storage Spaces Direct(S2D)クラスターを2ノードから4ノードへスケールアウトする手順を紹介します ノード追加後のストレージプール拡張は、S2Dが自動的に実行します 仮想ディスク(Virtual Disk)の拡張は管理者が手動で行う必要があります Windows Admin CenterのUIへの反映はPowerShellより遅延があるため、リアルタイム確認にはPowerShellを推奨します ノード追加後のストレージ最適化(リバランス)の実行方法についても解説します 前提環境 この動画では、2ノード構成のStorage Spaces Directクラスターを出発点としています。クラスターはすでに稼働しており、仮想マシンも動作しているという状態です。 初期状態の確認として、以下のコマンドでストレージプールや仮想ディスクの状態を把握しておきます。 Get-StoragePool Get-VirtualDisk Get-PhysicalDisk 初期状態では、例えばストレージプールのサイズが 43.7 TB 程度であることを確認しておきます。この数値がノード追加後にどう変わるかを比較するための基準値となります。 ノードの追加手順 クラスターへのノード追加 ノードの追加は Add-ClusterNode コマンドを使って行います。追加するサーバーを指定するだけで、クラスターへの参加が完了します。 Add-ClusterNode -Name <追加するサーバー名> このコマンド一発でクラスターにノードが追加されます。操作自体は非常にシンプルです。 S2Dによる自動処理 ノードがクラスターに追加されると、Storage Spaces Directは以下の処理を全自動で実行します。 新しく追加されたサーバーのディスクを検出する 検出したディスクをストレージプールに追加する ストレージプールのサイズを拡張する この動作は、Get-PhysicalDisk コマンドで確認できる CanPool プロパティに注目することで追跡できます。ノード追加直後は True(プールへの追加が可能)となっており、S2Dが自動処理を完了すると False(すでにプールに追加済み)に変わります。 Get-PhysicalDisk | Select-Object FriendlyName, CanPool, Usage すべてのディスクの CanPool が False になれば、自動追加が完了した状態です。 ストレージプール拡張の確認 ノード追加後に再度 Get-StoragePool を実行すると、プールサイズが拡張されていることを確認できます。 Get-StoragePool 例として、2ノード時に 43.7 TB だったプールサイズが、4ノード追加後には 615.67 TB に拡張されていることが確認できます。この拡張も人手を介さず全自動で行われます。 ...

December 15, 2019 · 1 min · 胡田昌彦