在 windows 10 中使用 puppet 复制 zip 文件并解压缩

Copy zip file and unzip using puppet in windows 10

我正在尝试使用 windows 中的 puppet 复制一个文件。

代码如下:-

file { 'D:\mycopy\folder\filename':
          ensure => present,
          mode => '0660',
          source => "d:\temp\test.zip",
}

给我以下错误

不能使用不透明的 url 文件:\d: est\test.zip

复制后我也想解压。谢谢

Puppet 将反斜杠 (\) 和正斜杠 (/) 识别为 Windows 文件名中的路径分隔符。尽管 Windows shell 需要前者,但后者在 Puppet 清单中使用起来更安全。

在这种情况下,双引号路径字符串中 \t 的两次出现将被解释为代表制表符的 escape sequences。在这种情况下,您可以通过将反斜杠加倍、切换到单引号字符串或切换到正斜杠来解决该问题。作为风格问题,我会 both 切换到单引号(因为字符串内容中没有变量插值或单引号)并切换到正斜杠:

然而,关于不透明 URLs 的实际诊断是另一个问题的线索:Puppet 接受 URLs 作为 Filesource 参数的值,并且它将您的绝对文件名解释为带有方案 'd' 的 URL。要解决此问题,您应该通过 file: URL:

表达来源
  source => 'file://d:/temp/test.zip'