Проверка артефактов пакета конфигурации машины

Модуль PowerShell GuestConfiguration включает средства для автоматизации тестирования пакета конфигурации за пределами Azure. Используйте эти средства, чтобы найти проблемы и быстро выполнить итерацию, прежде чем переходить к тестированию в среде, подключенной к Azure или Arc.

Прежде чем начать тестирование, необходимо настроить среду разработки и создать артефакт пакета конфигурации настраиваемого компьютера.

Важно!

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

Чтобы использовать пакеты конфигурации компьютера, которые применяют конфигурации, требуется расширение гостевой конфигурации виртуальной машины Azure версии 1.26.24 или более поздней версии или агент Arc 1.10.0 или более поздней версии.

Модуль GuestConfiguration доступен только в Ubuntu 18 и более поздних версиях. Однако пакет и политики, созданные модулем, можно использовать в любом дистрибутиве Или версии Linux, поддерживаемом в Azure или Arc.

Тестирование пакетов в macOS недоступно.

Вы можете протестировать пакет с рабочей станции или из среды непрерывной интеграции и непрерывного развертывания (CI/CD). Модуль GuestConfiguration включает тот же агент для среды разработки, что и на компьютерах с поддержкой Azure или Arc. Агент включает автономный экземпляр PowerShell 7.1.3 для Windows и 7.2.0-preview.7 для Linux. Автономный экземпляр гарантирует, что среда скрипта, в которой тестируется пакет, согласована с компьютерами, управляемыми с помощью конфигурации компьютера.

Служба агента на компьютерах с поддержкой Azure и Arc работает в качестве LocalSystem учетной записи в Windows и Root в Linux. Выполните команды, приведенные в этой статье, в контексте привилегированной безопасности для получения наилучших результатов.

Чтобы запустить PowerShell как LocalSystem в Windows, используйте средство PSExec sysInternals.

Чтобы запустить PowerShell в качестве корневого каталога в Linux, используйте команду sudo.

Проверка соответствия пакета конфигураций требованиям

Сначала проверьте соответствие пакета конфигураций основным требованиям с помощью Get-GuestConfigurationPackageComplianceStatus. Команда проверяет следующие требования к пакетам.

  • MOF-файл существует и допустим в нужном расположении
  • Необходимые модули и зависимости имеют правильную версию и не дублируются
  • Пакет подписан (необязательно)
  • Test и Get возвращают сведения о состоянии соответствия

Командлет Get-GuestConfigurationPackageComplianceStatus принимает следующие параметры:

  • Путь. Путь к файлу или URI пакета конфигурации машины.
  • Параметр: параметры политики, предоставляемые в виде хэш-таблицы.

При первом запуске этой команды на тестовый компьютер устанавливается агент конфигураций машины. В Windows используется путь C:\ProgramData\GuestConfig\bin, а в Linux — /var/lib/GuestConfig/bin. Этот путь недоступен для учетной записи пользователя, поэтому для команды требуется повышение прав.

Выполните следующую команду, чтобы проверить пакет:

В Windows из сеанса PowerShell 7 с повышенными привилегиями.

# Get the current compliance results for the local machine
Get-GuestConfigurationPackageComplianceStatus -Path ./MyConfig.zip

В Linux, запустив PowerShell с помощью sudo.

# Get the current compliance results for the local machine
sudo pwsh -command 'Get-GuestConfigurationPackageComplianceStatus -Path ./MyConfig.zip'

Команда выводит объект, содержащий состояние соответствия и подробные сведения для каждого ресурса.

  complianceStatus  resources
  ----------------  ---------
  True              @{BuiltInAccount=localSystem; ConfigurationName=MyConfig; …

Проверка возможности применять конфигурацию с помощью пакета конфигураций

Наконец, если используется режим пакета конфигураций AuditandSet, можно проверить, может ли метод Set применять параметры к локальному компьютеру с помощью команды Start-GuestConfigurationPackageRemediation.

Важно!

Эта команда пытается внести изменения в локальную среду, в которой она выполняется.

Командлет Start-GuestConfigurationPackageRemediation принимает следующие параметры:

  • Путь: полный путь к пакету компьютерной конфигурации.

В Windows из сеанса PowerShell 7 с повышенными привилегиями.

# Test applying the configuration to local machine
Start-GuestConfigurationPackageRemediation -Path ./MyConfig.zip

В Linux, запустив PowerShell с помощью sudo.

# Test applying the configuration to local machine
sudo pwsh -command 'Start-GuestConfigurationPackageRemediation -Path ./MyConfig.zip'

Команда возвращает выходные данные только при возникновении ошибок. Чтобы получить сведения о том, как устранить неполадки, связанные с событиями, которые происходят во время выполнения команды Set, используйте параметр -verbose.

После выполнения команды Start-GuestConfigurationPackageRemediation можно выполнить команду Get-GuestConfigurationComplianceStatus еще раз, чтобы убедиться, что компьютер находится в правильном состоянии.

Следующий шаг