Модуль msutter DSC (конфигурация определенного состояния PowerShell), похоже, имеет узкое место. Каждый класс, использующий ресурс DSC, генерирует промежуточный код Powershell / DSC, который создает файл с именем current.mof в том же каталоге. Когда я бегу Марионеточный агент - тест дела идут плохо. Похоже, что один класс марионеток получает информацию, относящуюся к другому классу марионеток, как будто он генерирует свой MOF, а затем случайно выполняет MOF другого класса. Я полагаю, я могу найти способ связать все эти ресурсы вместе со стрелками зависимостей, чтобы они выполнялись последовательно, но тогда это означает, что у меня не может быть действительно отдельных классов профиля для каждого распаковываемого ZIP-архива. Я бы предпочел, чтобы один сервер получал классы A, B и C, другой - B, C и т. Д. Если я вставлю цепочку, мне придется дублировать много кода.
Я прав в этом? Я новичок в PowerShell. Вот пример одного класса, который извлекает ZIP-файл из веб-службы и затем распаковывает его в целевое расположение:
# This profile class installs the BookingsUI package from a URI specified in the global ::package_source variable
class phoenix_profiles::archive_test {
$archive_file = "BookingsUI.zip"
$drive = pick($::destination_drive, 'd:')
# $staged_archive_path = "${drive}/eftours/packages/${archive_file}"
$staged_archive_path = "${drive}/temp/puppet_archive_test/source/${archive_file}"
dsc_xremotefile { "download ${archive_file}":
dsc_uri => "${::package_source}/${archive_file}",
dsc_destinationpath => $staged_archive_path
} ->
dsc_archive { "unpack ${archive_file}":
dsc_ensure => 'Present',
dsc_validate => "true",
dsc_checksum => "ModifiedDate",
dsc_force => "true",
dsc_path => $staged_archive_path,
dsc_destination => "${drive}/temp/puppet_archive_test/BookingsUI"
}
}
ПРИМЕЧАНИЕ. Это опубликовано на сайте: http://ask.puppetlabs.com/question/16423/is-the-file-currentmof-a-bottleneck-when-using-the-dsc-module/
Это похоже на ошибку. Вы можете указать здесь https://github.com/msutter/puppet-dsc
Обновить: Я подал заявку на https://github.com/msutter/puppet-dsc/issues/1