我尝试创建一个文件夹,然后尝试将一些文件复制到其中,如下所示。
init.pp
$tempfolder = "D:/TempFolder/"
file { [ $tempfolder ]:
ensure => "directory",
}
file { [ $tempfolder ]:
ensure => present,
recurse => true,
source => "E:/TestFiules",
}
当我尝试运行时,它会给出以下错误
错误:重复声明:已声明文件[D:/ TempFolder /]。
使用方法有什么问题?
答案 0 :(得分:1)
因此你可以做到
file { "$tempfolder":
ensure => directory,
recurse => true,
source => "E:/TestFiules",
}
ensure => directory
也确保它存在,因此您不必再声明它。
答案 1 :(得分:0)
一个节点只能声明一个具有相同名称的资源,在本例中为$tempfolder
。
$tempfolder
创建为空(您的第一个声明)或创建并填充您的E:/TestFiule
内容(第二个声明)。
请注意,您可以删除通常用于一次创建多个目录的数组语法,或确保创建tree
之类的顺序答案 2 :(得分:0)
我遇到此消息时,但错误是:
Error: Duplicate declaration: File[] is already declared in file init.pp:40; cannot redeclare at init.pp:46 on node (redacted)
它正在查找的文件未定义,因为我的Hiera配置不正确。结果,它声明了两个名为""。
的文件验证Hiera是否正确传递值。