我的Ubuntu上運行這個簡單的木偶代碼14.04機器,按照以逗號分隔的路徑列表創建文件夾:木偶Exec用命令的mkdir -p不會失敗,但不創建文件夾
define local_dirs ($comma_separated_dirs) {
$folders = split($comma_separated_dirs, ',')
exec { $folders:
command => "mkdir -p ${name} && chmod 0777 ${name}"
}
}
這個資源就是用來定義如下(在這種情況下 - 只是一個單一的文件夾,沒有逗號,其他模塊確實需要這種「分裂」的邏輯):
local_dirs { 'create-dir':
comma_separated_dirs => "/data/disk1"
}
當我運行它,我看到下面的日誌行,表明exec
命令實際執行:
Notice: /Stage[main]/My_module/Local_dirs[create-dir]/Exec[/data/disk1]/returns: executed successfully
但是,該文件夾從未創建,運行ls -la /data
顯示沒有這樣的文件夾。
一些更多的事實值得注意:
- 木偶以root身份運行,所以它不是有可能是權限問題
- 木偶版本3.7.2
請告知可能是什麼問題在這裏,或者 - 如果還有其他方法可以使用Puppet創建任意數量的任意深度的文件夾結構 - 我很樂意用任何等同的東西替換exec
命令。我使用的不是傀儡的file
資源,由於它是無法自動創建所需的父目錄(見here)
編輯:我在會饒了我的每個文件夾的任何編碼作爲一種方法特別感興趣從根目錄開始的層次結構文件夾數組(例如['/data', '/data/disk1', '/data/disk1/user1']
)。
爲什麼downvote? –