【发布时间】:2015-04-02 23:07:58
【问题描述】:
我的食谱中有两个资源。第一个是user 资源,用于设置用户uid/gid/home 目录等。它使用supports :manage_home => true。
我的第二个资源是bash 资源。目前该脚本在每次运行 chef-client 时都会运行,这有点不必要。我希望脚本仅在运行用户资源时调用 manage_home 时运行(例如,如果用户的主目录已更改且文件已移动,则运行脚本,否则不执行任何操作)。
我只能找到在某些纯 Ruby 条件下使用 only_if 的示例(例如,如果某个文件存在,如果一个节点在其运行列表中有某个元素等),但我想要do 要求将条件链接到另一个厨师资源的结果。我知道用户资源只是运行usermod(或useradd),这似乎没有表明主目录是否被移动。那么这有可能吗?
【问题讨论】:
-
你能在运行前后检查主目录的差异吗?您可以将命令的值分配给像
node[:blah] = `ls -la /home/blah`这样的节点,请参阅stackoverflow.com/questions/16309808/… -
感谢您的帮助!
标签: ruby chef-infra cookbook recipe