我正在使用我希望不改变的第三部分木偶模块(Tomcat)。它创建一个mode = 644的目录,我希望将其更改为664(递归)。
当我尝试这个时,木偶很不高兴,因为这个资源已经在另一个模块中定义了。
file { '/var/lib/tomcat' :
ensure => directory,
mode => 0664,
recurse => true,
}
任何想法我该如何解决这个问题?
答案 0 :(得分:2)
您可以使用收集器语法覆盖已声明的资源的某些属性。
File<| title == '/var/lib/tomcat' |> {
mode => '0664'
}
谨慎使用。不兼容的覆盖仍然会发生冲突,并且您的清单变得难以调试。
最安全的方法是使属性成为模块参数(通过向上游发送适当的补丁)。
答案 1 :(得分:1)
您应该使用'exec'资源类型。
exec {"chmod -R 664 /var/lib/tomcat":
path => "/bin",
command => "chmod -R 664 .",
cwd => "/var/lib/tomcat"
}
这是我发现避免重复资源名称的唯一解决方法
答案 2 :(得分:0)
在bash中你可以使用
cd /var/lib
chmod -R 664 Tomcat