Действительно ли возможно создать обобщенный конфигурационный файл для установки использования Windows features PowerShell?

Я в настоящее время пытаюсь автоматизировать сборку VM, выполняющего Windows Server 2012 R2. В данный момент проблема автоматизирует добавление ролей и функций. В мастере ролей и функций существует опция экспортировать конфигурационный XML-файл, который может быть выполнен в PowerShell.

Однако после просмотра XML-файла I видят его, это характерно для сервера, на котором он работает - он содержит поля, такие как "Имя компьютера".

Что, если я хочу запустить скрипт, который устанавливает роли и функции на многих VMs? Мне нужен конфигурационный файл, который обобщен, не персонализирован к определенному компьютеру.

У кого-либо есть вход по этой проблеме?

8
задан 5 September 2015 в 03:15
3 ответа

Да, как для Linux, так и для Windows вы можете создавать файлы конфигурации желаемого состояния, которые могут:

  • включать или отключать роли и функции сервера;
  • управлять настройками реестра;
  • управлять файлами и каталогами
  • запускать, останавливать и управлять процессами и службы
  • Управление группами и учетными записями пользователей
  • Развертывание нового программного обеспечения
  • Управление переменными среды
  • Запуск сценариев Windows PowerShell
  • Исправление конфигурации, которая отклонилась от желаемого состояния
  • Узнайте фактическую конфигурацию состояние на данном узле

Вот пример файла конфигурации, который включает IIS, гарантирует, что файлы веб-сайта находятся в нужной папке, и, если какие-либо из этих вещей не установлены или отсутствуют, установить или скопировать их в зависимости от ситуации ( обратите внимание, что $ 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 .

Так почему бы вам использовать это вместо простой установки? командлет windowsfeature? Реальная сила использования DSC вместо сценария заключается в том, что я могу определить место, где я могу хранить конфигурации, которые будут отправлены или извлечены (относительно целевой машины) см. Режимы конфигурации Push и Pull . Конфигурация не заботится о том, является ли машина физической или виртуальной, но я считаю, что для загрузки сервера и получения DSC требуется не менее 2012 года.

12
ответ дан 2 December 2019 в 22:47

Вы можете сделать все это в PowerShell

Get-WindowsFeature | ? { $_.Installed } | Export-Clixml .\installed.xml

Скопируйте xml, куда нужно перейти, где новый сервер сможет получить к нему доступ.

Import-Clixml <path to xml>\installed.xml | Install-WindowsFeature
6
ответ дан 2 December 2019 в 22:47
Import-Module servermanager
Install-WindowsFeature Feature,
    Feature, 
    Feature, 
    etc

Вышеупомянутый установит список функций. Вы можете жестко запрограммировать их или просто сохранить в файл, по одному в строке, а затем использовать это для их установки:

Import-Module servermanager
$features = get-content C:\Features.txt
Install-WindowsFeature $features
0
ответ дан 2 December 2019 в 22:47

Теги

Похожие вопросы