Nano Server First Step Interact 2017 (2017.06.24) Kazuki Takai
Nano Server First StepInteract 2017 (2017.06.24)
Kazuki Takai
自己紹介
高井一輝 (Takai Kazuki)
某ISP勤務
クラウドサービスの開発、設計、設備維持
Windows Server / System Center / Linux / etc…
Microsoft MVP - Cloud and Datacenter Management
System Center User Group Japan (SCUGJ)
Twitter : @zhuky7 / Facebook : kazuki.takai
Blog : http://operationslab.wordpress.com/
内容とセッションのゴール
内容(お話すること)
現在(Windows Server 2016 RTM)の Nano Serverで実現できること
Nano Server のデプロイと管理
お話しないこと
Hyper-Vや Container など、Nano Server で利用できる機能の詳細
Container Application の構成方法や、Container Image の利用方法
セッションのゴール
現在の Nano Server についてイメージできる、必要があれば触れる
Agenda
Nano Server とは
Nano Server のデプロイ
Nano Server の運用
まとめ
はじめる前に
本資料の内容は個人的な検証結果に基づきます
所属する会社や組織、マイクロソフト社の公式な見解を記載するものではありません
表記や内容に誤りがあるなど、お気づきの点があれば、facebook等でご連絡いただけると幸いです
今後のリリースで機能や動作が変更、削除される可能性があります
ほとんど文字(とコマンド)です –ご了承ください
最初に少しだけ
Windows Server の次期バージョンにおける Nano Server について(6/19)
https://docs.microsoft.com/en-us/windows-server/get-started/nano-in-semi-
annual-channel
https://blogs.technet.microsoft.com/hybridcloud/2017/06/15/delivering-
continuous-innovation-with-windows-server/
少なくとも次のバージョンでは、Nano Server はコンテナベースイメージとしてのリリースのみ
インフラストラクチャーを構成するサービススタック・機能は含まれない
インフラストラクチャー系の機能は、Server Core での利用を推奨
コンテナイメージに特化することで、イメージサイズをさらに 50% 削減
Nano Server とは
Nano Server とは
Windows Server のインストールオプション
Windows Server 2016 で Nano Server が追加
Server Coreや Desktop Experience 以外の、第3の選択肢
Server Core (デフォルト、多くの場合に推奨)
Desktop Experience(特定用途向け)
Nano Server(かなり限定された用途向け)
特定の Edition や Version や SKU を示すものではない
Nano Server の特徴
フットプリント(メモリ/ディスク)が小さい
リソース消費量の削減
イメージサイズが小さい
イメージ展開速度、デプロイ所要時間の向上
ポータビリティの向上
コンテナのベースイメージとしての利便性向上
上記を実現するために、機能が限定的
Nano Server でできること
通常のWindows Server と比較して機能を限定し、特定用途に特化することで、軽量化を実現
稼働プロセス、サービスを最小化
機能が限定的(何でもできるわけではない) – e.g. GUI なし
できること
一部の(主にリソースプール基盤となるような)役割の実行
リモート管理に必要なサービスや一部エージェントの実行
できないこと
多くの(主に何かを管理するような)役割の実行
GUI が必要なアプリケーション、ツールの実行
Nano Server で実行可能な役割・機能
Hyper-V
Container
Internet Information Services
File Server
DNS Server
Failover Clustering
Datacenter Bridging
Nano Server の制約
Graphical User Interface なし、ローカルログオン機能なし
64bit アプリケーションのみサポート
グループポリシーは未サポート
Group Policy Client サービスが実装されていない
プロキシサーバーを利用するようなインターネットアクセスは未サポート
NICチーミングは SET (Switch Embedded Teaming) のみサポート
従来の LBFOによるチーミングは利用不可
HBA未サポート
.NET Framework / PowerShell は機能制限あり
DemoNano Server First Impression
Nano Serverのデプロイ
その前に
Nano Server は必ず英語版を使用する
少なくともWindows Server 2016 RTM (Ver.1607) においては
日本語版でもイメージを作成してブートすることは可能
回復コンソールが文字化けする
静的 IPアドレスの構成に失敗する
https://github.com/k-takai/Misc/blob/master/scripts/Modify-NanoServerImageGenerator.ps1
特定条件下で Gen2 VMを電源オンできない
特定条件下で VMMS がクラッシュする
など、運用上重大な支障があるので、バグ出ししたい人以外はお勧めしません
(日本語版が将来バージョンでも提供される、という保証もありません)
Nano Serverの展開
Nano Serverは、通常の OSインストールメディアからインストールできない
エディション/インストールオプションの一覧には選択肢が存在しない
別途、自分でイメージを作成して展開する必要がある
Nano Server の展開ステップ
1. イメージを作成する
インストールメディアまたは既存のイメージをベースに、イメージを作成する
Nano Server Image Generator (PowerShell)
Nano Server Image Builder (GUI Tool)
2. イメージを展開する
作成したイメージをインストール(起動)対象へ配置・展開する
VM へディスクイメージをアタッチして起動
物理サーバへ vhd/vhdxをコピーして VHD(X) ブート
WDSを使用してイメージを展開
Nano Server Image Generator (NSIG)
インストールメディア内に同梱されている PowerShell モジュール
インストールメディアの NanoServerフォルダー配下に存在
モジュールをインポートすることで、Nano Server イメージの作成が可能
Copy-Item -Recurse <DVD>:¥NanoServer¥NanoServerImageGenerator .¥
Import-Module .¥NanoServerImageGenerator¥NanoServerImageGenerator
New-NanoServerImage
DemoNano Server Image
Generator
New-NanoServerImageのオプション
New-NanoServerImage
-DeploymentType [ Guest | Host ]
物理サーバにデプロイするか、VMゲストとしてデプロイするかを選択
-Edition [ Datacenter | Standard ]
エディションを選択
-MediaPath <DVD Drive/ISO Mount Drive>:¥
DVDまたは ISOイメージをマウントしたドライブのルートフォルダーを指定
-TargetPath <image output path>
作成するイメージの出力先を指定
拡張子によって、イメージ形式とフォーマットを自動判別 (.vhd or .vhdx or .wim)
オプション(続き)
以下のページを参照
https://docs.microsoft.com/en-us/windows-server/get-started/deploy-nano-server
実行例
New-NanoServerImage-DeploymentType Guest-Edition Datacenter-MediaPath F:¥-BasePath .¥Base-TargetPath .¥nano-base.wim-EnableEMS -Verbose
ServicingPackagePath
New-NanoServerImageの ServicingPackagePathオプションを使用することで、更新プログラムのオフライン適用が可能
複数指定したい場合は、カンマ区切り(Stringの配列)で渡す
後述する NSIBと異なり、msuファイルも指定可能
Dismにそのまま渡されているだけ(Dismはもともとmsuを処理可能)
後述する NSIBと異なり、msu/cab が複数格納されたフォルダーも指定可能
Dismにそのまま渡されているだけ(Dismはもともとフォルダーを処理可能)
フォルダー内のファイルが全て適用される
Nano Server Image Builder (NSIB)
イメージ作成用の GUIツール
ダウンロードセンターからダウンロード可能
http://www.microsoft.com/en-us/download/details.aspx?id=54065
利用にはWindows ADK が必要
事前にインストールしておく
Windows Server 2016 RTM 上で利用する場合、Version 1607 のWindows ADKを使用
Version 1703 (Windows 10 Ver.1703 (Creators Update)向け)を使うとトラブルの元
裏側では NSIG を使用している
イメージ作成ステップで、NSIGのスクリプトを取得可能
Nano Server Image Builder (NSIB)
DemoNano Server Image Builder
NSIGと NSIB の違い
基本的には、できることは同じ
NSIGでしかできないこと
ServicingPackageでmsuやフォルダーを指定
NSIB は、事前に msuを expand して cab を取り出しておく
NSIBでしかできないこと
タイムゾーンの設定(を指定するインタフェースがある)
NSIGでは、SetupCompleteCommand を使用して明示的に仕込む
-SetupCompleteCommand ('tzutil.exe /s "Tokyo Standard Time"')
イメージ作成時の注意点
パーティションレイアウトは、イメージファイルの拡張子から自動判定・生成
.vhd … Gen 1 仮想マシンで利用可能な BIOS ブートできるパーティション構成
.vhdx … Gen 2仮想マシンで利用可能な UEFIブートできるパーティション構成
自動でドメイン参加させる場合は、イメージ作成ツールのオプションで指定
Nano Server はオンラインでのドメイン参加に対応していない
Unattend.xmlを使用する場合も、資格情報を使用したオンラインでの参加ではなく、オフラインドメイン参加用の設定が必要
静的 IPアドレスを構成する場合は、イメージ作成ツールのオプションで指定
又は、SetupComplete にアドレスを構成するコマンド・スクリプトを記述
イメージの展開
Nano Server だからと言って、それほど特殊な点はない
通常のWindows Server を展開するのと同様に、展開を実施
主な展開シナリオ
VHD(X) 形式のイメージを使用して、仮想マシンへ展開
VHD(X) 形式のイメージを使用して、物理サーバへ展開
WIM 形式のイメージを使用して、bootable USB からインストールを実行
WIM形式のイメージを使用して、WDS から展開
仮想マシンへの展開
仮想ディスク(vhd/vhdx)形式のイメージを使用して、仮想マシンへ展開
1. 仮想マシンを作成
2. 仮想ディスクイメージを仮想マシンへアタッチ
3. 電源オン
仮想マシンの Generation / ブート形式にマッチするようイメージを作成
Gen 1 VMに、ツールから vhdxで出力したイメージをアタッチしても起動できない
逆も同様
物理サーバへの展開
仮想ディスク形式のイメージを使用して、物理サーバへ展開
物理サーバへイメージをコピーして、VHD(X) ブートするよう構成
1. 物理サーバをWinPE などで起動
2. ローカルディスクのパーティションを構成し、NTFS でフォーマット
3. 仮想ディスクイメージをローカルディスクにコピー
4. コピーしたイメージからブートするよう、ブートセクター / マネージャーを構成
5. 再起動
対象のサーバに OSがインストール済みであれば、その環境でコピーや構成を実施
イメージコピー用にファイルサーバを用意しておくと便利
WIMを使用した展開
仮想マシンか物理サーバかに関係なく、同一の手法で展開可能
何かしらの方法で展開環境をブートし、インストールイメージからインストール
カスタムイメージを使用した、通常の Windows Setup と概念は同じ
個別のブートデバイスをアタッチして起動する場合
NSIBから、展開用のブート可能な USB を作成可能
WDS から配信する場合
作成済みのイメージをインストールイメージとしてインポート
ブートイメージには(通常と同様に) WinPE を利用
DemoDeploy Nano Server
メモリブート
Windows Server 2016 TP5 で利用可能だったオンメモリでのブートは、RTM/GA では利用不可
-RamdiskBootオプションが存在しない
-Internal RamdiskBootで NSIGとしては構成が実行されるが、RamdiskBoot用のパッケージがないので実際にはブートできない
展開後の構成
展開後は、通常のWindows Server と同様に役割・機能の構成を実施
リモートサーバー管理ツール(RSAT)や PowerShell を使用
一部の機能は、インストールされていても Enable になっていないので、dism またはPowerShell から有効化が必要
構成には DSCも利用可能だが、一部制約あり
Container を利用する場合は、dockerのインストールが必要(後述)
iSCSI Initiator / MPIO
利用には Storage パッケージが必要
Storage パッケージをインストールしたうえで、明示的な Enable が必要
Enable-WindowsOptionalFeature -Online -FeatureName MultiPathIO
さらに、MPIOの構成スクリプト実行が必要
MSDSMのみ利用可能
負荷分散ポリシーは変更不可
詳細は以下のドキュメントを参照
https://docs.microsoft.com/ja-jp/windows-server/get-started/mpio-on-nano-
server
Container ホストとしての構成
Container パッケージをインストールしただけでは、利用できない
dockerのインストールが必要
dockerインストールの前提条件として、KB3176936(以降)の適用が必要
構成手順
Container パッケージインストール
最新の更新プログラムを適用
Install-Module -Name DockerMsftProvider -Repository PSGallery
Install-Package -Name docker -ProviderName DockerMsftProvider
再起動
ドメインへの参加
Nano Server は通常のドメイン参加に対応していない
オフラインドメイン参加を使用する必要がある
イメージ作成時にドメインに関するオプションを設定すると、裏側で自動的にオフラインドメイン参加のプロビジョニングと構成が実行される
ブート後に(後から)ドメイン参加したい場合は、手動で djoinする
djoin.exe /provision /domain <Domain> /machine <ComputerName> /savefile<Filepath>
<Filepath> に出力されたファイルを Nano Server へコピー(PowerShell などを利用)
djoin /requestodj /loadfile<FilePath> /windowspath C:¥Windows /localos
オンラインでの役割・機能の追加
お勧めしません
https://docs.microsoft.com/ja-jp/windows-server/get-started/deploy-nano-
server
オンラインでの役割・機能の追加
Install-PackageProvider NanoServerPackage
Import-PackageProvider NanoServerPackage
Find-NanoServerPackage
Install-NanoServerPackage
Nano Server の運用
基本的な方針
基本的に、すべての管理オペレーションはリモートから実施
ローカルコンソールから実施できる内容は、極めて限定的
壊れた環境を頑張って修復するのではなく、再デプロイ
その方が復旧が早い(そのために、構成は極力自動化する)
問題の再現、解析は別途実施
運用監視エージェントやツールは、可能であれば MS 提供のものを利用
それ以外のベンダ製品は、対応していないものが多い(MS 製品でも…)
今後の対応状況を注視する
オペレーションツール・方法
リモートサーバー管理ツール(Remote Server Administration Tools ; RAST)
PowerShell (PowerShell Remoting)
winrs(Windows Remote Shell)
Server Management Tool (on Azure)# 廃止予定
回復コンソール(Nano Server Recovery Console)
緊急管理サービス(Emergency Management Services)
PowerShell / DSC
PowerShell は Core Edition
.NET Core ベース
Desktop Edition のサブセットとなるため、実装されていない機能やモジュール、コマンドレットがある
[ADSI] や [WMI] などの型プロバイダーは利用できない
WMI系コマンドは使用できない(CimInstance系のコマンドを使用)
DSC (Desiered State Configuration) は利用可能
Push モデルのみ(Pullモデルは利用できない)
Server Management Tool
Azure 上で利用可能なサーバー管理ツール
Azureの VMだけでなく、オンプレミスのサーバーも管理可能
ゲートウェイサーバーに SMTのエージェントをインストール
イントラネット内のサーバーに対しては、ゲートウェイサーバから WinRM で管理
残念ながら 2017/06/30 で提供終了
今後は、Azureやインターネット接続の必要がない形でのサーバー管理ツールを目指す方針
Server Management Tool
Nano Server 回復コンソール
ネットワークインターフェースの設定
ファイアウォールルールの有効化・無効化
WinRMの(再)初期化
Hyper-V VM および VMSwitchの確認
サーバー再起動・シャットダウン
Nano Server 回復コンソール
運用管理エージェント
SCVMM Agent
Nano Server 用のパッケージを(イメージ作成時などに)インストール
-Package Microsoft-NanoServer-SCVMM-Package
-Package Microsoft-NanoServer-SCVMM-Compute-Package
SCOM Agent
SCOM管理コンソールからカスタムエージェントをデプロイ
エージェントパッケージのローカルインストールは未サポート
Microsoft Management Agent (OMS Log Analytics)
未サポート
更新プログラムの適用
オンラインで更新プログラムの検索・適用を行う場合は、CIM を直接叩く
更新プログラムのスキャン
$ci = New-CimInstance -Namespace root/Microsoft/Windows/WindowsUpdate -ClassNameMSFT_WUOperationsSession
$result = $ci | Invoke-CimMethod -MethodName ScanForUpdates -Arguments @{SearchCriteria="IsInstalled=0";OnlineScan=$true}
$result.Updates
更新プログラムのインストール
$ci = New-CimInstance -Namespace root/Microsoft/Windows/WindowsUpdate -ClassNameMSFT_WUOperationsSession
Invoke-CimMethod -InputObject $ci -MethodName ApplyApplicableUpdates
Restart-Computer
セキュリティポリシーの適用
グループポリシーの(直接の)適用は不可能
ファイルからポリシーを読み込むことは可能
レジストリファイル (Registry.pol)
Export-GPRegistryPolicyでエクスポート
Import-GPRegistryPolicy -Path <GpoPolFilePath> -LocalMachineで適用
セキュリティ設定ファイル (GptTmpl.inf)
Restore-SecurityPolicy -Path <GptTmpl.inf Path>
監査ポリシー (audit.csv)
Restore-AuditPolicy -Path <Audit.csv Path>
Nano Serverの更新チャネル
Semi-annual channel (Windows Server)
旧来の CBB (Current Branch for Business) 相当
年に1~2回の更新
最新機能の利用が可能
最新バージョンへの追従が必要
Semi-annual Channel(Windows Server)
Long-term Servicing Channel(Windows Server 2016)
Nano Server Yes
Server Core Yes Yes
Server with Desktop Experience Yes
https://blogs.technet.microsoft.com/hybridcloud/2017/06/15/delivering-continuous-innovation-with-windows-server/
Nano Server とライセンス
Windows Server ライセンス(Coreベース)
ライセンス + ソフトウェアアシュアランス(SA)が必要
後述する更新チャネルの関係上、常に最新バージョンを利用できる(権利がある)必要がある
Datacenter Edition / Standard どちらも考え方は同じ
まとめ
Nano Serverはフットプリントが小さい、展開が速い
Nano Server は特定用途向け
無理に利用するのではなく、適合する環境・シナリオで利用する
まだまだ発展途上なところもある
今後の情報に注目
何かあればフィードバック!