連載
» 2014年05月22日 17時46分 UPDATE

PowerShell DSCで始めるWindowsインフラストラクチャ自動化の基本:PowerShell Desired State Configuration(DSC)とは(前編) (2/2)

[吉崎生、http://tech.guitarrapc.com/,著]
前のページへ 1|2       

 それでは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 2012 R2とWindows8.1にはWMF 4.0が標準でインストールされている
  • Windows Server 2012では、WMF 4.0を追加でインストールする
  • Windows 8では、Windows 8.1にアップグレードする必要がある(WMF 4.0単体のインストールはサポートされていない)
  • Windows Server 2008 R2やWindows 7では、まずOSのService Pack 1(SP1)、次に.NET Framework 4.5、最後にWMF 4.0という順番でインストールする

 残念ながら、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のインストール後のバージョンと動作の確認

 WMF 4.0がインストールできたら、DSCの実行前にPowerShellのバージョンを確認しよう。WMF 4.0がインストールされた環境のPowerShellはバージョンが4.0となる。バージョン確認は、PowerShellコンソール を起動して「PSVersionTable」変数を確認するだけだ。

$PSVersionTable 



 実行してみた結果が次の画面だ。PSVersionが4.0になっているのが確認できるだろう。

PowerShellのバージョンを確認する PowerShellのバージョンを確認する
PowerShellのバージョンを確認するには、PowerShellを起動して$PSVersionTable変数の内容を表示させる。
  (1)「PSVersion」の「Value」がPowerShellのバージョンを表す。「4.0」になっていることを確認する。

 PowerShellを起動する方法だが、Windows Server 2012/2012 R2では初期状態でタスクバーにPowerShellがピン留めされているので、簡単に起動できる。

インストール直後のWindows Server 2012 R2 インストール直後のWindows Server 2012 R2
タスクバーにピン止めされた「PowerShellコンソール」のアイコンをクリックしてPowerShellを起動する。
  (1)これをクリックする。

 他のバージョンのWindows OSでは、[Windows]+[R]キーで「ファイル名を指定して実行」ダイアログを開き、「powershell」と入力すれば起動できる。

PowerShellの起動 PowerShellの起動
PowerShellは、[スタート]メニューから起動するか、[Windows]+[R]キーで「ファイル名を指定して実行」から起動する。
  (1)「powershell」と入力する。
  (2)これをクリックするとPowerShellが起動する。

DSCの環境構築

 DSCを利用するには、DSCサーバーとノードがお互いにリモート処理できる必要がある。DSCは、「DMTF」標準に沿って「Managed Object Format(MOF)」や「WS-Management(WSMan)」で構成されていて、リモート処理にはWS-ManagementのWindows版実装であるWinRMが用いられる。そのため、サーバーとノードの両方でWinRMを利用できるようにする必要がある。ここではPowerShellを使って、WinRMを有効にしていく。

 まずは、PowerShellを「管理者として実行する」で起動する。

PowerShellを管理者権限で起動する PowerShellを管理者権限で起動する
これはWindows Server 2012 R2の例。WinRMを有効にするには、管理者権限で起動したPowerShellを使って設定する。
  (1)タスクバーの「PowerShell」のアイコンを右クリックする。
  (2)[管理者として実行]を選択する。

 実行するコードは次の2行だ。

Enable-PSRemoting -Force
Set-Item wsman:\localhost\Client\TrustedHosts -Value * -Force



 それぞれ何をしているのか見てみよう。

 1行目は、PowerShellでのWinRM(PowerShellではPSRemotingと呼ばれる)を有効化するコマンドだ。

Enable-PSRemoting -Force



 以下のようにエラーが発生せずに実行されることを確認する。

WinRM(PSRemoting)を有効にしている様子。 WinRM(PSRemoting)を有効にしている様子

 2行目では、接続先のマシンが信頼できることをWinRMにある「TrustedHosts」に設定している。今回は分かりやすいように「*」を使って全ホストを無条件で信頼しているが、IPアドレスやFQDNでホストを限定することも可能だ。

Set-Item wsman:\localhost\Client\TrustedHosts -Value * -Force



TrustedHosts の Valueが「*(全ての接続先ホストを信頼する)」になっている様子 TrustedHosts の Value が「*(相手が誰でも信頼する)」になっている様子

Windows Server 2012 R2以外でDSCを構築する場合

 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のプッシュ型とプル型で実行する例を取り上げる。

「PowerShell DSCで始めるWindowsインフラストラクチャ自動化の基本」のインデックス

PowerShell DSCで始めるWindowsインフラストラクチャ自動化の基本

前のページへ 1|2       

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。