首页 > 解决方案 > 在 Windows 10 中使用 puppet 复制 zip 文件并解压缩

问题描述

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

代码如下: -

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

它给了我以下错误

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

我也想在复制后解压缩。谢谢。

标签: puppet

解决方案


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

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

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

  source => 'file://d:/temp/test.zip'

推荐阅读