BT

PowerShellのDesired State Configuration,プッシュモードとプルモードをサポート

| 作者: João Miranda フォローする 2 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2014年1月8日. 推定読書時間: 4 分 |

原文(投稿日:2013/12/16)へのリンク

Windows PowerShell Blogに現在,PowerShellのDSC(Desired State Configuration)に関する記事が掲載されている。DSCはWindowsでコンピュータの構成管理を行うための,Microsoftからの提案だ。最新の記事のひとつではプッシュとプルという,DSCで選択可能な2つのコンフィギュレーションモードについて説明されている

DSCは指定されたノードあるいはマシンに必要な構成を宣言的に指定する,PowerShellツールの追加機能である。これはPowerShellが元々備えている,命令型のスタイルとは異なったアプローチだ。マシン設定のために実行するステップに注目するのではなく,DSCを利用したスクリプトでは,必要な設定をただ単に記述すればよい。それを実施する方法は,PowerShell DSCシステムが決定してくれるのだ。

PowerShell DSCはリソースという概念を持っている。リソースはユーザやグループ,サーバロール,レジストリエンティティといった項目を設定するブロックを構成するものだ。組み込みでいくつかのリソースが用意されている他に,独自のリソースを作成することもできる。以下の例ではFileリソースを使用して,localhostC:\inetpub\wwwrootの内容がC:\SiteFilesの正確なレプリカであることを定義している。

Configuration SiteConfig
{
   # A Configuration block can have zero or more Node blocks
   Node "localhost"
   {
      # File is a built-in resource you can use to manage files and directories
      # This example ensures files from the source directory are present in the destination directory
      File MyFileExample
      {
         Ensure = "Present"  # You can also set Ensure to "Absent"
         Type = "Directory“ # Default is “File”
         Recurse = $true
         SourcePath = "C:\SiteFiles" # This is a path that has web files
         DestinationPath = "C:\inetpub\wwwroot" # The path where we want to ensure the web files are present
      }
   }
}

コンフィギュレーションの適用に関して,PowerShellにはプッシュとプルという2つのモードが用意されている。プッシュモードは,Start-DscConfiguration cmdletを実行することで即時に起動される。例えば下記のコマンドでは,カレントパスにあるコンフィギュレーションが,スクリプトで指定されたすべてのノードに対して適用される。

Start-DscConfiguration -Wait -Verbose -Path .

プルモードでは,イニシアティブが与えられるのはノード自身だ。プルサーバを監視して,新しいコンフィギュレーションをチェックするのはノードの責任になる。新しいコンフィギュレーションが用意されると,LCM(Local Configuration Manager) - PowerShell DSCのエンジン - がダウンロードと適用を行う。プルモードの設定は少し複雑だ。プルサーバとなるWebサイトの設定や,各ターゲットノードのLCMを,DscLocalConfigurationManagerを使って設定する必要がある。Windows PowerShellチームでも,プルサーバの設定を簡単にするための記事とヘルパツールを公開している。

ほとんどのツールが両方のモードをサポートするが,Ansibleなどプッシュ用のものや,PuppetChefのようにプル用のものもある。どちらのモードにも賛成と反対,さまざまな議論がある。プッシュモードはシンプルで,制御性に優れる。ターゲットノード上に特別なソフトウェアをインストールする必要がない上に,コンフィギュレーションがユーザの要求に従って起動するからだ。一方のプルモードはスケーラビリティに優れ,メタデータ機能が豊富だ。ターゲットノードは自分自身で,非同期的に設定を実行する。またプルサーバには,各ノードの状態に対応するメタデータを集中的に配置することができる。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

特集コンテンツ一覧

.NETの派生を理解する

Wayne Citrin 2018年7月18日 午前3時44分

ASP.NET Core - シンプルの力

Chris Klug 2018年6月4日 午前3時26分

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT