Создание настраиваемых артефактов пакета гостевой конфигурации
Перед началом работы рекомендуется ознакомиться со страницей обзора гостевой конфигурации.
При аудите или настройке в Windows или Linux для гостевой конфигурации используется Desired State Configuration (DSC). Эта конфигурация DSC определяет состояние, в котором должен находиться компьютер.
Важно!
Пользовательские пакеты, которые регистрируют состояние среды, общедоступны, но пакеты, которые применяют конфигурации, доступны в режиме предварительной версии. Действительны следующие ограничения.
Чтобы использовать пакеты гостевых конфигураций, которые применяют в конфигурации, требуется расширение гостевой конфигурации виртуальной машины Azure версии 1.29.24 или более поздней либо агент Arc 1.10.0 или более поздней версии.
Для тестирования создания и применения конфигураций в Linux используется модуль GuestConfiguration
, который доступен только в Ubuntu 18. Однако созданные этим модулем пакет и политики можно использовать в любом дистрибутиве или версии Linux, поддерживаемой в Azure или Arc.
Тестирование пакетов в MacOS недоступно.
Не используйте секреты или конфиденциальные сведения в пакетах с нестандартным содержимым.
Используйте следующие действия, чтобы создать собственную конфигурацию для управления состоянием компьютера на платформе Azure или другой платформе.
Установка PowerShell 7 и необходимых модулей PowerShell
Во-первых, убедитесь, что выполнены все действия, указанные на странице Настройка среды разработки гостевой конфигурации, чтобы установить требуемую версию PowerShell для вашей ОС, модуля GuestConfiguration
и при необходимости модуля PSDesiredStateConfiguration
.
Создание конфигурации
Перед созданием пакета конфигураций создайте и скомпилируйте конфигурацию DSC. При необходимости можно воспользоваться примерами конфигураций, доступными для Windows и Linux.
Важно!
При компиляции конфигураций для Windows используйте версию PSDesiredStateConfiguration
2.0.5
(стабильный выпуск). При компиляции конфигураций для Linux установите предварительную версию 3.0.0
.
Пример приведен в документе по началу работы с DSC для Windows.
Для Linux необходимо создать пользовательский модуль ресурсов DSC с помощью классов PowerShell. Полный пример настраиваемого ресурса и конфигурации доступен (и был протестирован с гостевой конфигурацией) на странице документации PowerShell Написание пользовательских ресурсов DSC с использованием классов PowerShell.
Создание артефакта пакета конфигураций
После компиляции MOF-файла нужно упаковать вместе все вспомогательные файлы. Готовый пакет используется гостевой конфигурацией для создания определений в службе "Политика Azure".
Командлет New-GuestConfigurationPackage
создает пакет. Чтобы команды в модуле могли добавлять модули, необходимые для конфигурации, в пакет, эти модули должны быть доступны в $Env:PSModulePath
для среды разработки.
Командлету New-GuestConfigurationPackage
при создании содержимого Windows передаются следующие параметры:
- Name. Имя пакета гостевой конфигурации.
- Конфигурация. Полный путь к скомпилированному документу конфигурации DSC.
- Путь. Путь к выходной папке. Это необязательный параметр. Если этот параметр не указан, пакет создается в текущем каталоге.
- Type (Audit, AuditandSet). Определяет, следует ли выполнить только аудит конфигурации или же ее необходимо применить и изменить состояние компьютера. Значение по умолчанию — Audit.
Этот шаг не требует повышения прав. Командлет Force используется для перезаписи имеющихся пакетов, если команда выполняется несколько раз.
Следующие команды создают артефакты пакета:
# Create a package that will only audit compliance
New-GuestConfigurationPackage `
-Name 'MyConfig' `
-Configuration './Config/MyConfig.mof' `
-Type Audit `
-Force
# Create a package that will audit and apply the configuration (Set)
New-GuestConfigurationPackage `
-Name 'MyConfig' `
-Configuration './Config/MyConfig.mof' `
-Type AuditAndSet `
-Force
Для созданного пакета возвращается объект с соответствующим именем и путем.
Name Path
---- ----
MyConfig /Users/.../MyConfig/MyConfig.zip
Ожидаемое содержимое артефакта гостевой конфигурации
Готовый пакет используется гостевой конфигурацией для создания определений в службе "Политика Azure". В этот пакет входит следующее:
- Скомпилированная конфигурация DSC в MOF-файле.
- Папка для модулей
- модуль GuestConfiguration;
- модуль DscNativeResources;
- Модули ресурса DSC, которые требуются для MOF-файла
- Файл метаконфигурации, в котором хранится пакет
type
иversion
.
Командлет PowerShell создает ZIP-файл пакета. Папка корневого уровня или папка версии не требуются. Пакет должен быть в формате ZIP-файла, а его размер не может превышать 100 МБ в несжатом виде.
Расширение гостевой конфигурации с помощью средств сторонних разработчиков
Пакеты артефактов для гостевой конфигурации можно расширить, включив средства сторонних разработчиков. Для расширения гостевой конфигурации требуется создать два компонента.
- Ресурс Desired State Configuration, который обрабатывает все действия, связанные с управлением сторонним средством.
- Установка
- Invoke
- Преобразование вывода
- Содержимое в правильном формате, который понимает это средство.
Ресурс DSC нужно создать самостоятельно, если сообщество еще не предложило готовое решение. Решения сообщества можно просмотреть, выполнив поиск в коллекции PowerShell по тегу GuestConfiguration.
Примечание
Расширяемость гостевой конфигурации поддерживается в режиме "использование собственной лицензии". Перед ее использованием убедитесь, что вы соблюдаете все условия, применимые к средствам сторонних разработчиков.
После установки ресурса DSC в среде разработки примените параметр FilesToInclude для командлета New-GuestConfigurationPackage
, чтобы включить содержимое платформы стороннего разработчика в артефакт содержимого.
Дальнейшие действия
- Проверьте артефакт пакета из среды разработки.
- Опубликуйте артефакт пакета, чтобы он был доступен для ваших компьютеров.
- Используйте модуль
GuestConfiguration
для создания определения Политики Azure для управления средой в большом масштабе. - Назначьте пользовательское определение политики с помощью портала Azure.
- Узнайте, как просматривать сведения о соответствии для назначений политики гостевой конфигурации.