msutter DSC 模块(PowerShell 定义状态配置)似乎存在瓶颈。每个使用 DSC 资源的类都会生成中间 Powershell/DSC 代码,该代码会在同一目录中创建一个名为 current.mof 的文件。当我运行Puppet 代理--测试事情变得很怪异。似乎一个傀儡类正在获取与另一个傀儡类相关的信息,就好像它生成了自己的 MOF,然后意外地执行了另一个类的 MOF。我想我可以找到一种方法将所有这些资源与依赖箭头链接在一起,以便它们按顺序执行,但这意味着我无法为我正在解压的每个 ZIP 存档设置真正独立的配置文件类。我希望一台服务器获取类 A、B 和 C,另一台服务器获取类 B、C 等。如果我加入链接,那么我必须复制大量代码。
我这样说对吗?我对 PowerShell 还很陌生。下面是一个从 Web 服务中提取 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"
}
}
答案1
这听起来像是一个错误。您可能想在此处提交问题https://github.com/msutter/puppet-dsc