来自puppet的其他模块的chmod目录

时间:2016-01-08 22:52:07

标签: puppet chmod

我正在使用我希望不改变的第三部分木偶模块(Tomcat)。它创建一个mode = 644的目录,我希望将其更改为664(递归)。

当我尝试这个时,木偶很不高兴,因为这个资源已经在另一个模块中定义了。

file { '/var/lib/tomcat' :
    ensure    => directory,
    mode => 0664,
    recurse    => true,
}

任何想法我该如何解决这个问题?

3 个答案:

答案 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