DSC を使用して Windows Server を構成する
Contoso の他のサーバー管理者の 1 人が Windows PowerShell を経験しており、PowerShell DSC を使用して調査し、新しく展開された Windows Server コンピューターを構成することをお勧めします。 DSC では、PowerShell スクリプトとオペレーティング システム機能を組み合わせて宣言型の構成管理を実装できることを学習します。 さらに調査することにします。
注
宣言型プログラミング言語では、意図 ("行うこと") が実行 ("行う方法") から切り離されています。
DSC とは
DSC は、サーバーと関連する IT インフラストラクチャの管理に使用できる PowerShell ベースの管理プラットフォームです。 DSC は、次の表に示す 3 つのコンポーネントで構成されています。
| コンポーネント | 説明 |
|---|---|
| Configurations | リソースを構成および定義する宣言型 PowerShell スクリプト。 構成を実行すると、DSC は定義に従って構成を適用します。 これにより、ターゲット リソース (この場合はサーバー) が定義された状態になります。 これらの構成を適用して維持するのは、ローカル構成マネージャー (LCM) です。 |
| リソース | リソースの目的の構成状態を定義して適用するコードを含めます。 |
| LCM | DSC が構成の適用に使用するエンジンです。 LCM は定期的にシステムの状態を検証し、必要に応じてリソース内のコードを呼び出して目的の状態を再適用します。 |
注
DSC を使用するために何もインストールする必要はありません。PowerShell DSC は Windows に含まれています。
Windows ベースの DSC は、LCM コンポーネントに広範に依存しています。 このコンポーネントは、Windows PowerShell DSC スクリプトの実行エンジンとして機能します。
注
LCM は、現在サポートされているすべてのバージョンの Windows オペレーティング システムに不可欠な部分です。
LCM は以下を担当します。
- DSC スクリプトで定義されている設定の実装の調整
- これらの設定の現在の状況の監視
- 目的の状態に一致するようにコンピューターの状態を更新する
LCM では、実行するたびに次の手順が行われます。
- 取得: コンピューターの現在の状態を取得します。
- テスト: コンパイル済みの DSC スクリプト (.mof ファイル) を使用して、コンピューターの現在の状態を目的の状態と比較します。
- 設定: .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 コマンドレットを実行して、構成の成功を確認できます。