それではDSCを使用するための準備をしよう。
DSCは、PowerShell 4.0をコアとする「Windows Management Framework 4.0(WMF 4.0)」に含まれている。従って、DSCサーバーでもノードでもWMF 4.0が入っていればDSCが利用できる。
WMF 4.0がサポートされている、すなわちPowerShell DSCが利用できるWindows OSは次の通りだ。
OS | DSC/PowerShell 4.0 | 事前準備 | インストーラー |
---|---|---|---|
Windows 7 | WMF 4.0導入で可能 | ・Windows 7 SP1(KB976932) ・.NET Framework 4.5(※) |
・x64用WMF 4.0:Windows6.1-KB2819745-x64-MultiPkg.msu ・x86用WMF 4.0:Windows6.1-KB2819745-x86.msu |
Windows 8 | Windows 8.1へのアップグレードが必須 | N/A | N/A |
Windows 8.1 | 標準 | N/A | N/A |
Windows Server 2008 R2 | WMF 4.0導入で可能 | ・Windows Server 2008 R2 SP1(KB976932) ・.NET Framework 4.5(※) |
・x64用WMF 4.0:Windows6.1-KB2819745-x64-MultiPkg.msu |
Windows Server 2012 | WMF 4.0導入で可能 | ・.NET Framework 4.5(標準でインストール済み) | ・x64用WMF 4.0:Windows8-RT-KB2799888-x64.msu |
Windows Server 2012 R2 | 標準 | N/A | N/A |
WMF 4.0がサポートされている対象Windows OS PowerShell DSCを利用するには、「事前準備」にあるコンポーネントやService Packをあらかじめインストールした後に、「インストーラー」を実行してWMF 4.0をインストールする必要がある。 ※:事前に.NET Framework 4.5をインストールしてからWMF 4.0をインストールすること。「WMF 4.0 - Known Issue: Partial Installation without .NET Framework 4.5[英語](Windows PowerShell Blog)」も参照。 |
OSごとの設定は次のようになる。
残念ながら、Windows Server 2008以前のServer OSやWindows VistaではWMF 4.0はサポートされていない。
WMF 4.0をインストールするに当たっては、マイクロソフトの他のサーバー向け製品との互換性に注意が必要だ。一部製品が導入されている場合は互換性問題が報告されているので、事前にSPを適用するなどの対応が必要である。詳細については、「Windows Management Framework 4.0(WMF 4.0)」の「システム要件」の記述を参照していただきたい。
互換性問題があるマイクロソフト製品名 | 必要な準備 |
---|---|
・System Center 2012 Configuration Manager | SP1を適用する |
・System Center Virtual Machine Manager 2008 R2 | WMF 4.0はインストール不可。SP1をインストールしても、WMF 4.0とは共存不可 |
・Microsoft Exchange Server 2007 | WMF 4.0はインストール不可 |
・Microsoft Exchange Server 2010(※) | SP3および 更新プログラムのロールアップ5 を適用する |
・Microsoft Exchange Server 2013(※) | SP1 を適用する |
・Microsoft SharePoint Server 2010 | 2014年2月の累積的な更新プログラム を適用する |
・Microsoft SharePoint Server 2013 | SP1 を適用する |
・Windows Small Business Server 2011 Standard | WMF 4.0はインストール不可 |
DSCとマイクロソフト製品との互換性 製品によっては、Service packを適用するなどの事前準備をしてからWMF 4.0をインストールする必要がある。 ※:Exchange Server 2010/2013に関しては、「Exchange Server のサポート一覧」の「Windows 管理フレームワーク」も参照のこと。 |
WMF 4.0がインストールできたら、DSCの実行前にPowerShellのバージョンを確認しよう。WMF 4.0がインストールされた環境のPowerShellはバージョンが4.0となる。バージョン確認は、PowerShellコンソール を起動して「PSVersionTable」変数を確認するだけだ。
$PSVersionTable
実行してみた結果が次の画面だ。PSVersionが4.0になっているのが確認できるだろう。
PowerShellを起動する方法だが、Windows Server 2012/2012 R2では初期状態でタスクバーにPowerShellがピン留めされているので、簡単に起動できる。
他のバージョンのWindows OSでは、[Windows]+[R]キーで「ファイル名を指定して実行」ダイアログを開き、「powershell」と入力すれば起動できる。
DSCを利用するには、DSCサーバーとノードがお互いにリモート処理できる必要がある。DSCは、「DMTF」標準に沿って「Managed Object Format(MOF)」や「WS-Management(WSMan)」で構成されていて、リモート処理にはWS-ManagementのWindows版実装であるWinRMが用いられる。そのため、サーバーとノードの両方でWinRMを利用できるようにする必要がある。ここではPowerShellを使って、WinRMを有効にしていく。
まずは、PowerShellを「管理者として実行する」で起動する。
実行するコードは次の2行だ。
Enable-PSRemoting -Force
Set-Item wsman:\localhost\Client\TrustedHosts -Value * -Force
それぞれ何をしているのか見てみよう。
1行目は、PowerShellでのWinRM(PowerShellではPSRemotingと呼ばれる)を有効化するコマンドだ。
Enable-PSRemoting -Force
以下のようにエラーが発生せずに実行されることを確認する。
2行目では、接続先のマシンが信頼できることをWinRMにある「TrustedHosts」に設定している。今回は分かりやすいように「*」を使って全ホストを無条件で信頼しているが、IPアドレスやFQDNでホストを限定することも可能だ。
Set-Item wsman:\localhost\Client\TrustedHosts -Value * -Force
PowerShellは対話的にコードを書く以外にもスクリプトファイル(.ps1ファイル)からコードを読み込むことができる。DSCを試す場合も、.ps1ファイルを実行することがある。しかし、Windows Server 2012 R2以外のWindows OSではセキュリティ上の理由から、デフォルトで.ps1ファイルの実行が禁止されている(Restrictedに設定されている)。そこで、.ps1ファイルの実行権限をWindows Server 2012 R2のデフォルトと同じ「RemoteSigned」に設定する方法を紹介する。
RemoteSignedは、「ローカルに保存されているスクリプトは実行可能。インターネットからダウンロードしたスクリプト(非ローカルのスクリプト)は、署名されているもののみが実行可能」な権限だ。詳しくはTIPS「PowerShellスクリプトの実行セキュリティ・ポリシーを変更する」を見てほしい。
次のコードを「管理者として実行したPowerShell」で実行することで実行権限が「RemoteSigned」に変わる。
Set-ExecutionPolicy RemoteSigned
今回はPowerShell DSCの概要について説明した。次回の中編から、具体的にPowerShell DSCのプッシュ型とプル型で実行する例を取り上げる。
Copyright© Digital Advantage Corp. All Rights Reserved.