在users_manage资源上配置自定义cookbook失败:
users_manage" www-data"做 行动:创造 端
原因是该用户当前正在运行nginx工作进程。
一个简单的修复应该是在users_manage运行时停止服务。在Chef中这样做的最佳方法是什么?
答案 0 :(得分:0)
一种解决方案可能是:
service 'nginx' do
action :stop
only_if ... # (add your condition check here, like a `ps` call to get the user of the nginx process)
end
users_manage 'www-data' do
action :create
end
service 'nginx' do
action :start
end
更好的方法可能是回填users
食谱的数据包,使其与当前系统保持同步,以便在您第一次调用users
时不会改变任何内容cookbook和稍后安装nginx(在run_list中)。
更好的方法是将自定义用户添加到www-group并单独留下nginx。 Nginx的用户/组成员资格由包/发行版定义,并且各种事物都假定特定设置,例如logrotate cronjobs。如果你改变了,你可能会有一个糟糕的时间......