Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Windows Server 2012 Community Day 2013 年 12 月

PowerShell を使用した
Hyper-V の管理
高井 一輝
System Center User Group Japan
自己紹介
• 高井 一輝 (Takai Kazuki)
• 某 ISP 勤務
• クラウドとオンプレミスを組み合わせたインテグレーション
• 見積り、提案書の作成から設計、構築、試験、運用まで
• ネットワーク、サーバ (Windows、Lin...
本日の内容
• お話すること
• PowerShell についてのおさらいと PowerShell 4.0
• 運用管理視点での PowerShell
• PowerShell を使用した Hyper-V 環境の管理

• お話しないこと
• ...
このセッションのゴール
• PowerShell でできることを理解する
• PowerShell を使用するメリットを理解する
• PowerShell を使用して Hyper-V の管理タスクを実施できる

4
本日の環境
• Windows Server 2012 R2
• 多くのコマンドは Windows Server 2012 でも利用可能
• 一部のデモは Windows Server 2012 を併用

5
アジェンダ
• Windows PowerShell とは
• Windows Server 2012 R2 PowerShell 4.0 の新機能
• PowerShell による管理・運用
• PowerShell による Hyper-V ...
Windows PowerShell とは

7
PowerShell とは
• Windows で利用可能な新しいシェル / スクリプト言語
• Windows Server 2008 R2 以降で標準搭載
• コマンドプロンプトよりも高度な処理 / 制御が可能
• WSH よりもスクリプト...
なぜ PowerShell を使用するのか
• 運用管理者にとってのメリット
• GUI では設定できない項目の操作 / 変更が可能
• 自動化が容易 (スクリプト化可能)
– 操作ミスの低減
– 作業の効率化
– 時間短縮

• 操作履歴 (...
PowerShell 実行環境
• PowerShell (PowerShell コンソール)
• powershell.exe
• 通常の PowerShell 環境

• PowerShell ISE (Integrated Scripti...
Windows Server 2012 R2
PowerShell 4.0 の新機能
11
Windows Server 2012 R2 の PowerShell
• PowerShell 4.0
• w/ Windows Management Framework 4.0

• モジュール及びコマンドの追加
• PowerShell ...
追加されたコマンド
Export-BinaryMiLog
Import-BinaryMiLog
Add-WindowsImage
Expand-WindowsImage
Export-WindowsImage
Get-WindowsImageC...
追加されたコマンド (Hyper-V 関連)
• Hyper-V モジュール
•
•
•
•
•
•
•

Copy-VMFile
Debug-VM
Test-VMNetworkAdapter
*-VMFirmware
*-VMNetworkA...
PowerShell 4.0 の主な変更点
• 運用管理者の視点では…
•
•
•
•
•
•
•

Default Execution Policy
Get-FileHash コマンドレット
Desired State Configurati...
Default Execution Policy の変更
• Default の実行ポリシーが RemoteSigned に変更
• Windows Server 2012 R2 のみ
– Local Machine ポリシーの既定値が変更され...
Get-FileHash コマンドレット
• ファイルのハッシュ値を計算するコマンドレット
• 複数のハッシュアルゴリズムに対応
• SHA1, SHA256, SHA384, SHA512, MACTripleDES, MD5,
RIPEMD...
Get-FileHash コマンドレット

18
Desired State Configuration (DSC)
• Windows PowerShell Desired State Configuration
• サーバーの構成と管理を行うための新機能
• サーバーに対する操作 (構築)...
DSC の Configuration
Configuration WebServerConfig
{
Node web01
{
WindowsFeature FTPRole
{
Name = "Web-FTP-Server"
Ensure =...
DSC リソース
Built-In Resources

Custom Resources

Archive

Environment

File

Resources A

Group

Log

Package

Resources B

...
DSC ビルトイン リソース
• Role
• Windows の役割や機能を構成

• User / Group
• ローカルユーザーやグループを構成

• Service
• Windows サービスの状態を構成

• Package
• ...
Desired State DEMO
Configuration
PowerShell による管理・運用

24
PowerShell による管理・運用
• PowerShell を使用する目的
• 管理タスクの自動化
• 運用管理の効率化

• 運用管理を自動化・効率化するための準備
• スクリプトを実行できるよう構成する
• リモートから接続して管理で...
スクリプトの実行許可
• スクリプトの実行やコンフィグレーションのロード
• 実行ポリシー (Execution Policy) によって制御される
• 既定値では、スクリプトの実行が禁止されている
– Windows Server 2012 ...
実行ポリシー
• 実行ポリシーは以下の 6 種類 (5 段階 + “未定義”)
• Restricted
• AllSigned
• RemoteSigned
• Unrestricted
• Bypass
• Undefined

: スクリ...
実行ポリシーのスコープ
• 実行ポリシーはスコープごとに設定可能
•
•
•
•
•

MachinePolicy
UserPolicy
Process
CurrentUser
LocalMachine

:
:
:
:
:

グループポリシー...
リモート接続の構成
• リモート コンピューターへ接続して操作を行う
• WS-Management を使用してリモートコンピューターの WinRM
(Windows Remote Management) サービスへ接続する
• 事前にリモート...
リモート接続の要件
• リモート接続の要件を満たすようコンピューターを構成する
• WinRM サービスが起動している
• WinRM のエンドポイントが適切に構成されている
• Windows Firewall やその他の Firewall ...
リモート接続時の注意点
• PowerShell のバージョンによりセッションの扱いが異なる
• PowerShell 2.0 / WinRM 2.0 では接続元側でセッション情報を保持
• PowerShell 3.0 / WinRM 3.0...
プロファイルの構成
• プロファイル
• PowerShell 起動時に自動的にロードされるスクリプト
• 以下の4種類 (上から順に実行される)
– $PROFILE.AllUsersAllHosts
• $PSHOME¥profile.ps...
PowerShell 起動時に実行ログの取得を開始
• PowerShell で実行ログを取得
• Start-Transcript コマンドレット

• PowerShell 起動時に Start-Transcript を実行
• プロファイ...
PowerShell による Hyper-V 環境の管理

34
PowerShell による Hyper-V 環境の管理
• Hyper-V ホスト / 仮想マシンの管理
• 基本的に Hyper-V モジュールのコマンドレットを使用
• タスクに応じて適切なコマンドレットを選択
–
–
–
–
–
–

...
仮想マシンの構成・管理
• 仮想マシンの状態を変更
• Start-VM / Stop-VM / Restart-VM
Suspend-VM / Resume-VM / Save-VM

• 仮想マシンの作成、削除
• New-VM / Rem...
スナップショットの管理と仮想マシンのエクスポート
• スナップショットの管理
• Checkpoint-VM
• Restore-VMSnapshot
• Remove-VMSnapshot

• 仮想マシンのエクスポート / インポート
• ...
レプリケーションの管理
• Hyper-V Replica によるレプリケーションの管理
•
•
•
•
•
•
•
•
•

Enable-VMReplication
Set-VMReplication
Start-VMInitialRepl...
その他の操作
• ライブマイグレーション
• Move-VM
• Move-VMStorage

• VHD / VHDX の管理
• New-VHD
• Mount-VHD
• Dismount-VHD

• その他
• Copy-VMFil...
Copy-VMFile
• Hyper-V ホストから仮想マシンへファイルをコピー
• 仮想マシンから Hyper-V ホストへのコピーはできない
• 対象となる仮想マシンの要件
– 仮想マシンの設定で統合サービスの「ゲスト サービス」が有効化...
Copy Files to VM DEMO
w/o Network
Hyper-V を管理する際の注意点
• WMI の名前空間
• root¥virtualization 名前空間が Windows Server 2012 R2 で廃止に
– Windows Server 2012 時点で非推奨となっていた
...
本日のデモシナリオ
• OSの構成変更前にスナップショットを取得
• クロスバージョン ライブマイグレーション
• Hyper-V Replica テストフェイルオーバー
• 仮想マシンの展開

43
OSの構成変更前にスナップショットを取得
• 重要な変更を行う前にスナップショットを取得
• 変更に成功したらスナップショットを削除
• 変更に失敗したらスナップショットへ戻す

• スナップショット (チェックポイント) の操作
• Chec...
Create / Revert DEMO
VM Snapshot
クロスバージョン ライブマイグレーション
• ライブマイグレーション
• 仮想マシンをオンラインのままホストを移動
• 仮想マシンのディスクを同時に移動することも可能
• PowerShell であれば Move-VM するだけ

• クロスバ...
Cross-version DEMO
Live Migrations
Hyper-V Replica の制御
• Hyper-V Replica テスト フェイルオーバー
• レプリカ ホスト側で保護対象の仮想マシンを一時的に起動
• プライマリホスト側で稼働中の仮想マシンには影響を与えない
• デフォルトでは、...
Hyper-V Replica DEMO
Test Failover
仮想マシンの展開
• テンプレートから仮想マシンを展開
• 構成済みの仮想ハードディスクイメージを複製して仮想マシンを作成

• 用意するもの
• 構成済みの仮想ハードディスクイメージ
–
–
–
–

展開時のマスターイメージとして使用
Wi...
Sysprep
• システム準備ツール(System Preparation Tool)
• インストール済みのWindowsからコンピューター固有の情報を削除し、
複製/展開に使用できるように準備するツール
• インストール済みの(展開時にマ...
Sysprep
• VMモード
•
•
•
•
•

/mode:vm
ハードウェアのスキャン/構成をスキップ
同じ仮想マシンまたはハイパーバイザーに展開する場合のみ有効
異なるハードウェアプロファイルのVMに展開すると正常に動作しない
仮想マ...
Deploying DEMO
Virtual Machines
仮想マシンの展開
• スクリプトの内容(動的IP版)
• Sysprep 済みの仮想ハードディスクイメージを親ディスクとして、
新規仮想マシン用の差分ディスクを作成
• 仮想マシンを作成
• 仮想マシンのパラメーターを調整
• 仮想ハードディス...
仮想マシンの展開
• スクリプトの内容(固定IP版)
• Sysprep 済みの仮想ハードディスクイメージを親ディスクとして、
新規仮想マシン用の差分ディスクを作成
• 空の仮想ハードディスクを使用して仮想マシンを作成
• 仮想マシンのパラメー...
まとめ
• PowerShell により運用管理タスクを自動化できる
• 運用管理の負荷を軽減
• サービスレベルの向上
– ユーザーの要望に迅速に対応できる、など

• 一からスクリプトを作成するのは大変
• 高度な用途、大規模な環境には、ぜ...
参考資料
• Windows Server 2012 勉強会キット
• Windows PowerShell 4.0 による Windows Server 2012 R2 の管理 ~
Hyper-V 編
• http://technet.mic...
Q&A

58
Thank You!

ご清聴ありがとうございました

59
Upcoming SlideShare
Loading in …5
×

PowerShell を使用した Hyper-V の管理

9,607 views

Published on

Windows Server 2012 Community Day 2013年12月 (第9回) のセッション資料です。
セッションで使用したスクリプトは以下に掲載しています。
http://wp.me/p1Cs5O-7w

Published in: Technology
  • Be the first to comment

PowerShell を使用した Hyper-V の管理

  1. 1. Windows Server 2012 Community Day 2013 年 12 月 PowerShell を使用した Hyper-V の管理 高井 一輝 System Center User Group Japan
  2. 2. 自己紹介 • 高井 一輝 (Takai Kazuki) • 某 ISP 勤務 • クラウドとオンプレミスを組み合わせたインテグレーション • 見積り、提案書の作成から設計、構築、試験、運用まで • ネットワーク、サーバ (Windows、Linux) • System Center User Group Japan (SCUGJ) • Twitter : @zhuky7 / Facebook : kazuki.takai • Blog : http://operationslab.wordpress.com/ 2
  3. 3. 本日の内容 • お話すること • PowerShell についてのおさらいと PowerShell 4.0 • 運用管理視点での PowerShell • PowerShell を使用した Hyper-V 環境の管理 • お話しないこと • Windows Server の初期構成や、Hyper-V ホストの構築方法 • ネットワーク仮想化と仮想ネットワークの管理 • System Center 製品の詳細 3
  4. 4. このセッションのゴール • PowerShell でできることを理解する • PowerShell を使用するメリットを理解する • PowerShell を使用して Hyper-V の管理タスクを実施できる 4
  5. 5. 本日の環境 • Windows Server 2012 R2 • 多くのコマンドは Windows Server 2012 でも利用可能 • 一部のデモは Windows Server 2012 を併用 5
  6. 6. アジェンダ • Windows PowerShell とは • Windows Server 2012 R2 PowerShell 4.0 の新機能 • PowerShell による管理・運用 • PowerShell による Hyper-V 環境の管理 6
  7. 7. Windows PowerShell とは 7
  8. 8. PowerShell とは • Windows で利用可能な新しいシェル / スクリプト言語 • Windows Server 2008 R2 以降で標準搭載 • コマンドプロンプトよりも高度な処理 / 制御が可能 • WSH よりもスクリプトの記述が容易 • Character-based User Interface • テキストベースではなくオブジェクトベース • パイプラインを流れるのはオブジェクト • 豊富なコマンドレット • PowerShell 本体で用意されているコマンドレット • Windows Server OS や役割 / 機能に付随するコマンドレット • 特定の製品やサービスに付随するコマンドレット 8
  9. 9. なぜ PowerShell を使用するのか • 運用管理者にとってのメリット • GUI では設定できない項目の操作 / 変更が可能 • 自動化が容易 (スクリプト化可能) – 操作ミスの低減 – 作業の効率化 – 時間短縮 • 操作履歴 (ログ) を取得しやすい • デフォルトでリモートからアクセス可能 • 運用管理者にとってのデメリット • 直観的ではない (「グラフィカル」ではない) 9
  10. 10. PowerShell 実行環境 • PowerShell (PowerShell コンソール) • powershell.exe • 通常の PowerShell 環境 • PowerShell ISE (Integrated Scripting Environment) • powershell_ise.exe • スクリプト作成 / デバッグ用の環境 – ブレークポイントの設定 – スクリプトの一部を選択して実行 (選択範囲を実行) • コンソールと ISE では、一部動作 (挙動) が異なる • 外部コマンドの呼び出し制約 10
  11. 11. Windows Server 2012 R2 PowerShell 4.0 の新機能 11
  12. 12. Windows Server 2012 R2 の PowerShell • PowerShell 4.0 • w/ Windows Management Framework 4.0 • モジュール及びコマンドの追加 • PowerShell 4.0 としての追加 • Windows Server 2012 R2 としての追加 ※PS 4.0 (WMF 4.0) は Windows Server 2012 R2 以外でも利用可能 – Windows 7 SP1, Windows Server 2008 R2 SP1, Windows Server 2012 – .NET Framework 4.5 が必要 – http://www.microsoft.com/ja-jp/download/details.aspx?id=40855 12
  13. 13. 追加されたコマンド Export-BinaryMiLog Import-BinaryMiLog Add-WindowsImage Expand-WindowsImage Export-WindowsImage Get-WindowsImageContent New-WindowsImage Remove-WindowsImage Set-AppXProvisionedDataFile Split-WindowsImage Add-VMNetworkAdapterExtendedAcl Add-VmNetworkAdapterRoutingDomainMapping Copy-VMFile Debug-VM Get-VMFirmware Get-VMNetworkAdapterExtendedAcl Get-VmNetworkAdapterIsolation Get-VMNetworkAdapterRoutingDomainMapping Remove-VMNetworkAdapterExtendedAcl Remove-VMNetworkAdapterRoutingDomainMapping Set-VMFirmware Set-VmNetworkAdapterIsolation Set-VmNetworkAdapterRoutingDomainMapping Test-VMNetworkAdapter Expand-IscsiVirtualDisk Export-IscsiTargetServerConfiguration Import-IscsiTargetServerConfiguration Resize-IscsiVirtualDisk Stop-IscsiVirtualDiskOperation Get-FileHash Debug-MMAppPrelaunch Add-NetEventNetworkAdapter Add-NetEventPacketCaptureProvider Add-NetEventProvider Add-NetEventVmNetworkAdapter Add-NetEventVmSwitch Get-NetEventNetworkAdapter Get-NetEventPacketCaptureProvider Get-NetEventProvider Get-NetEventSession Get-NetEventVmNetworkAdapter Get-NetEventVmSwitch New-NetEventSession Remove-NetEventNetworkAdapter Remove-NetEventPacketCaptureProvider Remove-NetEventProvider Remove-NetEventSession Remove-NetEventVmNetworkAdapter Remove-NetEventVmSwitch Set-NetEventPacketCaptureProvider Set-NetEventProvider Set-NetEventSession Start-NetEventSession Stop-NetEventSession Add-NetNatExternalAddress Add-NetNatStaticMapping Get-NetNat Get-NetNatExternalAddress Get-NetNatGlobal Get-NetNatSession Get-NetNatStaticMapping New-NetNat Remove-NetNat Remove-NetNatExternalAddress Remove-NetNatStaticMapping Set-NetNat Set-NetNatGlobal Find-NetIPsecRule Find-NetRoute Get-NetCompartment Test-NetConnection Select-NetVirtualizationNextHop Get-PcsvDevice Restart-PcsvDevice Set-PcsvDeviceBootConfiguration Start-PcsvDevice Stop-PcsvDevice Read-PrinterNfcTag Write-PrinterNfcTag Configuration Get-DscConfiguration Get-DscLocalConfigurationManager Get-DscResource New-DscCheckSum Restore-DscConfiguration Set-DscLocalConfigurationManager Start-DscConfiguration Test-DscConfiguration Get-SMCounterSample Get-SMPerformanceCollector Get-SMServerBpaResult Get-SMServerClusterName Get-SMServerEvent Get-SMServerFeature Get-SMServerInventory Get-SMServerService Remove-SMServerPerformanceLog Start-SMPerformanceCollector Stop-SMPerformanceCollector Disable-SmbDelegation Enable-SmbDelegation Get-SmbBandWidthLimit Get-SmbDelegation Remove-SmbBandwidthLimit Set-SmbBandwidthLimit Set-SmbPathAcl Move-SmbClient Get-SilComputer Get-SilData Get-SilLogging Get-SilSoftware Get-SilUalAccess Get-SilWindowsUpdate Publish-SilData Set-SilLogging Start-SilLogging Stop-SilLogging Export-StartLayout Get-StartApps Import-StartLayout Clear-FileStorageTier Flush-Volume Get-FileStorageTier Get-StorageNode Get-StorageTier Get-StorageTierSupportedSize New-StorageTier New-Volume Register-StorageSubsystem Remove-StorageTier Resize-StorageTier Set-FileStorageTier Set-StorageProvider Set-StorageTier Unregister-StorageSubsystem Update-StoragePool Write-FileSystemCache Write-VolumeCache Disable-TlsSessionTicketKey Enable-TlsSessionTicketKey Export-TlsSessionTicketKey New-TlsSessionTicketKey Get-TpmEndorsementKeyInfo Get-TpmSupportedFeature Add-VpnConnectionRoute Add-VpnConnectionTriggerApplication Add-VpnConnectionTriggerDnsConfiguration Add-VpnConnectionTriggerTrustedNetwork Get-VpnConnectionTrigger New-VpnServerAddress Remove-VpnConnectionRoute Remove-VpnConnectionTriggerApplication Remove-VpnConnectionTriggerDnsConfiguration Remove-VpnConnectionTriggerTrustedNetwork Set-VpnConnectionIPsecConfiguration Set-VpnConnectionTriggerDnsConfiguration Set-VpnConnectionTriggerTrustedNetwork Get-WindowsSearchSetting Set-WindowsSearchSetting : 13
  14. 14. 追加されたコマンド (Hyper-V 関連) • Hyper-V モジュール • • • • • • • Copy-VMFile Debug-VM Test-VMNetworkAdapter *-VMFirmware *-VMNetworkAdapterExtendedAcl *-VmNetworkAdapterIsolation *-VmNetworkAdapterRoutingDomainMapping • NetWNV モジュール • Select-NetVirtualizationNextHop 14
  15. 15. PowerShell 4.0 の主な変更点 • 運用管理者の視点では… • • • • • • • Default Execution Policy Get-FileHash コマンドレット Desired State Configuration (DSC) *-ScheduledJob の RunNow パラメーター *-JobTrigger の RepeatIndefinitely パラメーター Get-Process コマンドレットの IncludeUserName パラメーター etc... What's New in Windows PowerShell http://technet.microsoft.com/en-us/library/hh857339.aspx 15
  16. 16. Default Execution Policy の変更 • Default の実行ポリシーが RemoteSigned に変更 • Windows Server 2012 R2 のみ – Local Machine ポリシーの既定値が変更された • Windows 8.1 は Undefined のまま ※実行ポリシーの話は後ほど 16
  17. 17. Get-FileHash コマンドレット • ファイルのハッシュ値を計算するコマンドレット • 複数のハッシュアルゴリズムに対応 • SHA1, SHA256, SHA384, SHA512, MACTripleDES, MD5, RIPEMD160 • デフォルトは SHA256 • PowerShell 3.0 以前でも .NET のクラスを使用することで ハッシュ値の計算は可能 • System.Security.Cryptography.SHA1 • System.Security.Cryptography.MD5 17
  18. 18. Get-FileHash コマンドレット 18
  19. 19. Desired State Configuration (DSC) • Windows PowerShell Desired State Configuration • サーバーの構成と管理を行うための新機能 • サーバーに対する操作 (構築) 手順ではなく、サーバーの状態を記述する ことでサーバーを自動構成 • DSC によるサーバーの構成手順 • PowerShell で構成後のサーバーの状態を定義 • PowerShell コードから構成データが含まれる MOF ファイルを生成 • MOF ファイルを使用してサーバーを構成 19
  20. 20. DSC の Configuration Configuration WebServerConfig { Node web01 { WindowsFeature FTPRole { Name = "Web-FTP-Server" Ensure = "Present" IncludeAllSubFeature = $true } } WebServerConfig } Start-DscConfiguration -Wait -Path .¥WebServerConfig 20
  21. 21. DSC リソース Built-In Resources Custom Resources Archive Environment File Resources A Group Log Package Resources B Process Registry Role Resources C Script Service User Resources D Windows PowerShell Desired State Configuration 21
  22. 22. DSC ビルトイン リソース • Role • Windows の役割や機能を構成 • User / Group • ローカルユーザーやグループを構成 • Service • Windows サービスの状態を構成 • Package • Windows インストーラーや setup.exe などのパッケージを構成 • File • ファイルやフォルダーを構成 • etc... 22
  23. 23. Desired State DEMO Configuration
  24. 24. PowerShell による管理・運用 24
  25. 25. PowerShell による管理・運用 • PowerShell を使用する目的 • 管理タスクの自動化 • 運用管理の効率化 • 運用管理を自動化・効率化するための準備 • スクリプトを実行できるよう構成する • リモートから接続して管理できるよう構成する • PowerShell 起動時のプロファイルを構成する 25
  26. 26. スクリプトの実行許可 • スクリプトの実行やコンフィグレーションのロード • 実行ポリシー (Execution Policy) によって制御される • 既定値では、スクリプトの実行が禁止されている – Windows Server 2012 R2 以外 • 実行ポリシーの確認と変更 • Get-ExecutionPolicy / Set-ExecutionPolicy • グループポリシーによる設定 – コンピューターポリシー / ユーザーポリシー • PowerShell 起動時のオプションで指定 – powershell.exe -ExecutionPolicy <Policy> 26
  27. 27. 実行ポリシー • 実行ポリシーは以下の 6 種類 (5 段階 + “未定義”) • Restricted • AllSigned • RemoteSigned • Unrestricted • Bypass • Undefined : スクリプトの実行を禁止する : 有効な署名付きのスクリプトのみ実行可能 : ローカルのスクリプトは無条件に実行可能 リモートから取得したスクリプトには署名が必要 : スクリプトは実行可能 (一部警告表示あり) : スクリプトは実行可能 (警告表示なし) : 未定義 • 規定値は Undefined • Windows Server 2012 R2 のみ RemoteSigned (LocalMachine Scope) • 全てのスコープで Undefined の場合、Restricted とみなされる 27
  28. 28. 実行ポリシーのスコープ • 実行ポリシーはスコープごとに設定可能 • • • • • MachinePolicy UserPolicy Process CurrentUser LocalMachine : : : : : グループポリシーによる設定 (Computer) グループポリシーによる設定 (User) 実行中の PowerShell セッション内のみ有効 ログインユーザーの設定 (レジストリに格納) ローカルコンピューターの設定 (レジストリに格納) • 上位スコープの設定が優先される • 基本的には管理者権限で設定を行う • Process / CurrentUser スコープは一般ユーザー権限で設定変更可能 • LocalMachine スコープでスクリプト実行を禁止していても、Process ス コープで実行を許可することで、一時的なスクリプトの実行が可能 28
  29. 29. リモート接続の構成 • リモート コンピューターへ接続して操作を行う • WS-Management を使用してリモートコンピューターの WinRM (Windows Remote Management) サービスへ接続する • 事前にリモート接続の構成が必要 – Windows Server 2012 R2 では、同一セグメントからのリモート接続が デフォルトで許可されている • とりあえず接続したい場合は以下を実行 (検証環境向け) – 接続先 : Enable-PSRemoting -Force – 接続元 : Set-Item WSMan:¥localhost¥Client¥TrustedHosts -Value * – 本番環境へ適用する際は、設定の意味を理解してセキュリティを考慮する • Get-Help about_Remote – http://technet.microsoft.com/en-us/library/hh847900.aspx 29
  30. 30. リモート接続の要件 • リモート接続の要件を満たすようコンピューターを構成する • WinRM サービスが起動している • WinRM のエンドポイントが適切に構成されている • Windows Firewall やその他の Firewall 製品で通信が許可されている – ネットワークロケーションがパブリック ネットワークの場合、PowerShell の バージョン / OS によって Enable-PSRemoting の挙動が異なるので注意 • 接続先コンピューターの Administrators グループに所属しているか、 権限が適切に構成されている • 接続先に対する資格情報の送信が許可されている – ドメインに参加しているか、TrustedHosts が適切に構成されている • Get-Help about_Remote_Requirements – http://technet.microsoft.com/en-us/library/hh847859.aspx 30
  31. 31. リモート接続時の注意点 • PowerShell のバージョンによりセッションの扱いが異なる • PowerShell 2.0 / WinRM 2.0 では接続元側でセッション情報を保持 • PowerShell 3.0 / WinRM 3.0 以降は接続先側でセッション情報を保持 – セッションを切断し、別の接続元から同一のセッションへ再接続が可能 • トラブルが少ない構成 • ドメイン環境 • Domain Admins グループのユーザーを使用 • WMF (Windows Management Framework) 3.0 (PowerShell 3.0 / WinRM 3.0) 以降を使用 31
  32. 32. プロファイルの構成 • プロファイル • PowerShell 起動時に自動的にロードされるスクリプト • 以下の4種類 (上から順に実行される) – $PROFILE.AllUsersAllHosts • $PSHOME¥profile.ps1 – $PROFILE.AllUsersCurrentHost • $PSHOME¥Microsoft.PowerShell_profile.ps1 • $PSHOME¥Microsoft.PowerShellISE_profile.ps1 – $PROFILE.CurrentUserAllHosts • $HOME¥Documents¥WindowsPowerShell¥profile.ps1 – $PROFILE.CurrentUserCurrentHost • $HOME¥Documents¥WindowsPowerShell¥Microsoft.PowerShell_profile.ps1 • $HOME¥Documents¥WindowsPowerShell¥Microsoft.PowerShellISE_profile.ps1 32
  33. 33. PowerShell 起動時に実行ログの取得を開始 • PowerShell で実行ログを取得 • Start-Transcript コマンドレット • PowerShell 起動時に Start-Transcript を実行 • プロファイル内で Start-Transcript を実行 • AllUsersCurrentHost または CurrentUserCurrentHost に記述 – PowerShell ISE はトランスクリプションをサポートしない • トランスクリプトへの出力は PowerShell の実行ログのみ • PowerShell から起動した外部コマンド (ipconfig など) の出力は 記録されない • 外部コマンドの出力を記録したい場合は、Start-Process で 標準出力や標準エラー出力をリダイレクトする 33
  34. 34. PowerShell による Hyper-V 環境の管理 34
  35. 35. PowerShell による Hyper-V 環境の管理 • Hyper-V ホスト / 仮想マシンの管理 • 基本的に Hyper-V モジュールのコマンドレットを使用 • タスクに応じて適切なコマンドレットを選択 – – – – – – Get-* : 状態の確認、情報取得 New-* : 新規作成 Set-* : 設定の変更 Add-* : 設定の追加、コンポーネントの追加 Remove-* : 削除、コンポーネントの取り外し その他、直観的な動詞 Start-* / Stop-* / Suspend-* / Resume-* / Move-* / etc... 35
  36. 36. 仮想マシンの構成・管理 • 仮想マシンの状態を変更 • Start-VM / Stop-VM / Restart-VM Suspend-VM / Resume-VM / Save-VM • 仮想マシンの作成、削除 • New-VM / Remove-VM • 仮想マシンの構成変更 • Set-VM • Set-VMBios / Set-VMProcessor / Set-VMMemory Set-VMHardDiskDrive / Set-VMNetworkAdapter • Enable-VMIntegrationService / Disable-VMIntegrationService 36
  37. 37. スナップショットの管理と仮想マシンのエクスポート • スナップショットの管理 • Checkpoint-VM • Restore-VMSnapshot • Remove-VMSnapshot • 仮想マシンのエクスポート / インポート • Import-VM • Export-VM • Export-VMSnapshot 37
  38. 38. レプリケーションの管理 • Hyper-V Replica によるレプリケーションの管理 • • • • • • • • • Enable-VMReplication Set-VMReplication Start-VMInitialReplication / Stop-VMInitialReplication Import-VMInitialReplication Stop-VMReplication Suspend-VMReplication / Resume-VMReplication Remove-VMReplication Start-VMFailover Stop-VMFailover 38
  39. 39. その他の操作 • ライブマイグレーション • Move-VM • Move-VMStorage • VHD / VHDX の管理 • New-VHD • Mount-VHD • Dismount-VHD • その他 • Copy-VMFile 39
  40. 40. Copy-VMFile • Hyper-V ホストから仮想マシンへファイルをコピー • 仮想マシンから Hyper-V ホストへのコピーはできない • 対象となる仮想マシンの要件 – 仮想マシンの設定で統合サービスの「ゲスト サービス」が有効化されている (既定値は「無効」) – 仮想マシンの OS で「Hyper-V ゲスト サービス インターフェイス」サービス (vmicguestinterface) が起動している • コピー先のパスに対して、コピー先 OS 上の Administrators グループが 「フル コントロール」を保持している必要がある – Administrator アカウントではなく、Administrators グループ 40
  41. 41. Copy Files to VM DEMO w/o Network
  42. 42. Hyper-V を管理する際の注意点 • WMI の名前空間 • root¥virtualization 名前空間が Windows Server 2012 R2 で廃止に – Windows Server 2012 時点で非推奨となっていた • root¥virtualization¥v2 を使用する • Windows Server 2008 R2 などからスクリプトを移植する際は注意 42
  43. 43. 本日のデモシナリオ • OSの構成変更前にスナップショットを取得 • クロスバージョン ライブマイグレーション • Hyper-V Replica テストフェイルオーバー • 仮想マシンの展開 43
  44. 44. OSの構成変更前にスナップショットを取得 • 重要な変更を行う前にスナップショットを取得 • 変更に成功したらスナップショットを削除 • 変更に失敗したらスナップショットへ戻す • スナップショット (チェックポイント) の操作 • Checkpoint-VM • Restore-VMSnapshot • Remove-VMSnapshot 44
  45. 45. Create / Revert DEMO VM Snapshot
  46. 46. クロスバージョン ライブマイグレーション • ライブマイグレーション • 仮想マシンをオンラインのままホストを移動 • 仮想マシンのディスクを同時に移動することも可能 • PowerShell であれば Move-VM するだけ • クロスバージョン ライブマイグレーション • 異なる Hyper-V ホスト OS バージョン間でのライブマイグレーション • 特別な準備は不要 (ライブマイグレーションと同様の設定で問題ない) • 現状では Windows Server 2012 R2 への移行のみ 46
  47. 47. Cross-version DEMO Live Migrations
  48. 48. Hyper-V Replica の制御 • Hyper-V Replica テスト フェイルオーバー • レプリカ ホスト側で保護対象の仮想マシンを一時的に起動 • プライマリホスト側で稼働中の仮想マシンには影響を与えない • デフォルトでは、テスト中の VM は仮想スイッチにつながっていない状態 – 改めて仮想マシンの設定を変更しスイッチへ接続 – Set-VMNetworkAdapter で事前に設定 • テスト フェイルオーバーの操作 (開始) は、レプリカ ホスト側で実施 • 本番のフェイルオーバーも同様の手順で実施可能 48
  49. 49. Hyper-V Replica DEMO Test Failover
  50. 50. 仮想マシンの展開 • テンプレートから仮想マシンを展開 • 構成済みの仮想ハードディスクイメージを複製して仮想マシンを作成 • 用意するもの • 構成済みの仮想ハードディスクイメージ – – – – 展開時のマスターイメージとして使用 Windowsの場合はsysprepを使用して展開用に準備 仮想マシンが停止している状態のイメージを使用 単一のイメージファイルへ結合(スナップショット削除/差分ディスク結合) • 自動応答ファイル – 展開するOSがWindowsで、展開後の構成を自動化したい場合 50
  51. 51. Sysprep • システム準備ツール(System Preparation Tool) • インストール済みのWindowsからコンピューター固有の情報を削除し、 複製/展開に使用できるように準備するツール • インストール済みの(展開時にマスターイメージとして使用する) Windows上で実行 • C:¥Windows¥System32¥Sysprep¥Sysprep.exe – Sysprep.exe /generalize /oobe /shutdown [/mode:vm] • http://technet.microsoft.com/ja-jp/library/hh825033.aspx 51
  52. 52. Sysprep • VMモード • • • • • /mode:vm ハードウェアのスキャン/構成をスキップ 同じ仮想マシンまたはハイパーバイザーに展開する場合のみ有効 異なるハードウェアプロファイルのVMに展開すると正常に動作しない 仮想マシンにインストールされたWindows上でのみ指定可能 • 仮想マシン展開用のマスターイメージ • DHCPを使用する構成で仮想マシンを展開 ⇒ VMモード – DHCP構成で展開した後、手動またはスクリプトで固定IPをアサイン • 固定IPを使用する構成で仮想マシンを展開 ⇒ VMモードは使用しない 52
  53. 53. Deploying DEMO Virtual Machines
  54. 54. 仮想マシンの展開 • スクリプトの内容(動的IP版) • Sysprep 済みの仮想ハードディスクイメージを親ディスクとして、 新規仮想マシン用の差分ディスクを作成 • 仮想マシンを作成 • 仮想マシンのパラメーターを調整 • 仮想ハードディスクのマウント • 自動応答ファイルを配置 • 仮想ハードディスクのアンマウント • 電源オン 54
  55. 55. 仮想マシンの展開 • スクリプトの内容(固定IP版) • Sysprep 済みの仮想ハードディスクイメージを親ディスクとして、 新規仮想マシン用の差分ディスクを作成 • 空の仮想ハードディスクを使用して仮想マシンを作成 • 仮想マシンのパラメーターを調整 • 電源オン / 電源オフ (MACアドレスのアサイン) • 仮想ハードディスクの接続変更 • 仮想ハードディスクのマウント • 自動応答ファイルを配置 • 仮想ハードディスクのアンマウント • 電源オン 55
  56. 56. まとめ • PowerShell により運用管理タスクを自動化できる • 運用管理の負荷を軽減 • サービスレベルの向上 – ユーザーの要望に迅速に対応できる、など • 一からスクリプトを作成するのは大変 • 高度な用途、大規模な環境には、ぜひ System Center を 56
  57. 57. 参考資料 • Windows Server 2012 勉強会キット • Windows PowerShell 4.0 による Windows Server 2012 R2 の管理 ~ Hyper-V 編 • http://technet.microsoft.com/ja-jp/windowsserver/jj649374.aspx • Microsoft Virtual Academy • http://www.microsoftvirtualacademy.com – Windows Server 2012 管理のための Windows PowerShell 3.0 新機能解説 – Getting Started with PowerShell 3.0 Jump Start – Windows Server 2012 R2: Server Management and Automation • PowerShell Advent Calendar 2013 • http://atnd.org/events/45107 57
  58. 58. Q&A 58
  59. 59. Thank You! ご清聴ありがとうございました 59

×