DSC を使用して Windows Server を構成する

完了

Contoso の他のサーバー管理者の 1 人が Windows PowerShell を使用した経験があり、PowerShell DSC を使用して、新しくデプロイされた Windows Server コンピューターを構成することについて調べてみることを提案しました。 DSC を使用すると、PowerShell スクリプトとオペレーティング システムの機能を組み合わせて宣言型の構成管理を実装できることが分かりました。 さらに調査することにしました。

注意

宣言型プログラミング言語では、意図 ("行うこと") が実行 ("行う方法") から切り離されています。

DSC とは

DSC は、サーバーおよび関連する IT インフラストラクチャの管理に使用できる PowerShell ベースの管理プラットフォームです。 DSC は、次の表で説明する 3 つのコンポーネントで構成されています。

コンポーネント 説明
構成 リソースを構成および定義する宣言型の PowerShell スクリプト。 構成を実行すると、DSC によって、定義されたとおりに構成が適用されます。 これにより、ターゲット リソース (この場合はサーバー) が定義済みの状態になります。 これらの構成を適用して維持するのは、ローカル構成マネージャー (LCM) です。
リソース リソースの望ましい構成状態を定義して適用するコードが含まれています。
LCM 構成を適用するために DSC で使用されるエンジン。 LCM では定期的にシステムの状態を確認し、必要に応じてリソース内のコードを呼び出して、望ましい状態を再適用します。

注意

DSC を使用するために何もインストールする必要はありません。PowerShell DSC が Windows に含まれています。

Windows ベースの DSC は、LCM コンポーネントに大きく依存しています。 このコンポーネントが、Windows PowerShell DSC スクリプトの実行エンジンとして機能します。

注意

LCM は、現在サポートされているすべてのバージョンの Windows オペレーティング システムに不可欠な部分です。

LCM では次を担当します。

  • DSC スクリプトに定義されている設定の実装を調整する
  • これらの設定の進行中の状態を監視する
  • 望ましい状態に一致するようにコンピューターの状態を更新する

LCM では、実行するたびに次の手順が行われます。

  1. 取得: コンピューターの現在の状態を取得します。
  2. テスト: コンパイルされた DSC スクリプト (.mof ファイル) を使用して、コンピューターの現在の状態を望ましい状態と比較します。
  3. 設定: .mof ファイルに記述されている望ましい状態に一致するようにコンピューターの構成を更新します。

次の表で説明するように、DSC 構成はプッシュ モードまたはプル モードのいずれかでデプロイできます。

モード 説明
プッシュ このモードでは、1 つ以上のマネージド コンピューターに対して、望ましい構成を手動で送信 (つまり、"プッシュ") します。 LCM コンポーネントは、各マネージド コンピューターの状態が、構成に指定されているものと一致するようにします。
プル このモードでは、"プル サーバー" に構成情報が保持されます。 各マネージド コンピューター上の LCM コンポーネントは、プル サーバーを定期的に (既定では 15 分間隔で) ポーリングして、最新の構成詳細を取得します。 その後、プル サーバーによって構成変更に関する詳細が各マネージド コンピューターに送信されます。

ヒント

Windows Server をプル サーバーとしてセットアップできますが、Azure Automation の Desired State Configuration を使用することもできます。

Windows での DSC の要件

Windows で DSC を使用するために、環境で満たす必要がある要件がいくつかあります。 次のとおりです。

  • オペレーティング システム。 マネージド コンピューターでは Windows 8.1 以降または Windows Server 2012 R2 以降が実行されている必要があります。
  • Windows リモート管理。 マネージド コンピューターで Windows リモート管理 (WinRM) を有効にする必要があります。

DSC では、次のものについて望ましい状態を定義できます。

  • オペレーティング システム
  • アプリケーション

スクリプトの使用

スクリプトを使用して DSC を定義できます。 構成を作成してコンパイルしたら、それをコンピューターに割り当てて、その構成を受け取ることができます。

スクリプトの作成

多くの場合、DSC の実装は、望ましい状態が記述された構成スクリプト (.ps1) の作成から開始します。 次の例は、単純な構成の例です。 この場合、スクリプトではインターネット インフォメーション サービス (IIS) の存在を確認し、必要に応じてインストールします。

configuration IISInstall
{
    # Import the required module.
    Import-DscResource -ModuleName PsDesiredStateConfiguration
    node "localhost"
    {
        WindowsFeature IIS
        {
            Ensure = "Present"
            Name = "Web-Server"
        }
    }
}

スクリプトを作成したら、それを保存します。 この場合は、IISInstall.ps1 として保存します。

構成のコンパイル

構成スクリプトを作成したら、それをコンパイルする必要があります。 コンパイルによって、ターゲット ノードに適用される構成が含まれた 1 つ以上の .mof ファイルが生成されます。 スクリプトをコンパイルするには、PowerShell コンソールで、構成 (スクリプト ファイル) を保存したフォルダーを見つけ、次のコマンドを実行して構成を MOF ファイルにコンパイルします。

.\IISInstall.ps1
IISInstall

構成を適用する

次の手順では、構成を適用します。 これを行うには、Start-DscConfiguration コマンドレットを実行します。

重要

DSC の実行を許可するには、localhost の構成を実行している場合でも、PowerShell リモート処理用に Windows を構成する必要があります。

たとえば、PowerShell コンソールで、構成が保存されているフォルダーに移動し、次の PowerShell コマンドを実行します。

Start-DscConfiguration .\IISInstall

ヒント

Get-DscConfigurationStatus コマンドレットを実行すると、構成が成功したかどうかを確認できます。