現在、Windows Server 2012R2を実行しているVM)のビルドを自動化しようとしています。現時点での課題は、役割と機能の追加を自動化することです。役割と機能ウィザード内には、 PowerShellで実行できるXML構成ファイルをエクスポートするオプション。
ただし、XMLファイルを確認すると、XMLファイルが実行されているサーバーに固有であることがわかります。「コンピューター名」などのフィールドが含まれています。
多くのVMに役割と機能をインストールするスクリプトを実行したい場合はどうなりますか?特定のコンピューターに合わせてパーソナライズされたものではなく、一般化された構成ファイルが必要です。
誰かがこの問題について意見を持っていますか?
はい、LinuxとWindowsの両方で、次のことができる目的の状態構成ファイルを作成できます。
IISを有効にし、Webサイトファイルが正しいフォルダーにあることを確認するサンプル構成ファイルを次に示します。これらのものがインストールされていないか欠落している場合は、必要に応じてそれらをインストールまたはコピーします($ websitefilepathは、ウェブサイトファイルのソースとして事前定義済み):
Configuration MyWebConfig
{
# A Configuration block can have zero or more Node blocks
Node "Myservername"
{
# Next, specify one or more resource blocks
# WindowsFeature is one of the built-in resources you can use in a Node block
# This example ensures the Web Server (IIS) role is installed
WindowsFeature MyRoleExample
{
Ensure = "Present" # To uninstall the role, set Ensure to "Absent"
Name = "Web-Server"
}
# 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
# This is a path that has web files
SourcePath = $WebsiteFilePath
# The path where we want to ensure the web files are present
DestinationPath = "C:\inetpub\wwwroot"
# This ensures that MyRoleExample completes successfully before this block runs
DependsOn = "[WindowsFeature]MyRoleExample"
}
}
}
詳細については、 Windows PowerShellの望ましい状態の構成の概要 および Windows PowerShellの望ましい状態の構成の開始 を参照してください。
では、なぜ単にinstall-windowsfeatureコマンドレットの代わりにこれを使用するのでしょうか。スクリプトの代わりにDSCを使用することの真の力は、(ターゲットマシンに関して)プッシュまたはプルする構成を格納できる場所を定義できることです。 プッシュおよびプル構成モード を参照してください。 。構成がマシンが物理か仮想かは関係ありませんが、DSCをプルするためにサーバーを起動するには少なくとも2012年かかると思います。
すべてをPowerShellで実行できます
Get-WindowsFeature | ? { $_.Installed } | Export-Clixml .\installed.xml
新しいサーバーがアクセスできる場所に、移動する必要のあるxmlをコピーします。
Import-Clixml <path to xml>\installed.xml | Install-WindowsFeature
Import-Module servermanager
Install-WindowsFeature Feature,
Feature,
Feature,
etc
上記は機能のリストをインストールします。それらをハードコーディングするか、1行に1つずつファイルに保存してから、これを使用してインストールできます。
Import-Module servermanager
$features = get-content C:\Features.txt
Install-WindowsFeature $features