Windows Dev. Site

PowerShell DSC / Hyper-V

PowerShell 4.0の新しい機能である、Desired State Configurationを使ってみました。

参考:PowerShell DSCによるプッシュ型展開

http://www.atmarkit.co.jp/ait/articles/1407/24/news131.html

このDSCというのは、サーバの設定を自動的にするしくみで、リモートホストとPushおよびPull通信をします。

ここでは、Windows Server 2012R2のHyper-VにWindows 8.1を仮想化した環境で、2012R2から8.1へのPushをテストしました。
設定するものは、ファイルリソースを使って、メッセージを指定のフォルダに書き込み見ます。

8.1側は以下の設定を事前にします。

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

hello.ps1

Param([string]$msg)

Configuration DSCTest
{
    Node "192.168.11.11"
    {
        File dscFile
        {
            DestinationPath = "C:\work\hello.txt"
            Ensure = "Present"
            Type = "File"
            Contents = $msg
        }
    }
}
$outputPath = ".\DSCTest"
DSCTest -OutputPath $outputPath
Start-DscConfiguration -Path $outputPath -Wait -Verbose -Credential 192.168.11.11\user

結果
dsc01

冪等性から、何度設定しても同じ状態になる特徴がありますが(同じ状態だと何もしない)、
上のようにメッセージを引数で変えてやると、毎回設定にいくようです。

対象ノードは複数設定でき、いろいろと応用した使い方ができそうです。