2013-11-29 58 views
0

我嘗試創建一個文件夾,然後試圖將一些文件複製到它像下面一樣。與傀儡重複的聲明錯誤

init.pp 

$tempfolder = "D:/TempFolder/" 


file { [ $tempfolder ]: 
    ensure => "directory", 
} 

file { [ $tempfolder ]: 

    ensure => present, 
    recurse => true, 
    source => "E:/TestFiules", 
} 

當我嘗試運行它,它給下面的錯誤

Error: Duplicate declaration: File [ D:/TempFolder/ ] is already declared.

什麼是錯的使用情況如何?

回答

0

一個節點只能有一個聲明同名的資源,在這個例子中是$tempfolder$tempfolder被創建爲空(您的第一個聲明)或創建並填充您的E:/TestFiule內容(第二個聲明)。

請注意,您可以刪除數組語法它經常被用來一次創建多個目錄或保證的訂單像創建一個tree

+0

我的目的是先創建一個文件夾,並嘗試從不同位置複製文件。有沒有辦法將所有這些進程與單個命令結合起來?或過程? – jestges

+0

我沒有測試:但通常只保留第二個聲明它將創建和複製一步 – mestachs

0

我碰到這個消息的時候,但這個錯誤是:

Error: Duplicate declaration: File[] is already declared in file init.pp:40; cannot redeclare at init.pp:46 on node (redacted)

它查找文件沒有定義的,因爲我的Hiera配置是不正確的。結果它宣佈了兩個名爲「」的文件。

驗證Hiera是否正確傳遞值。