我的厨师食谱中有一个文件,在某个节点上配有厨师。我希望如果文件将被修改,那么这将使用chef自动更改已配置的节点。
我的方法是, 我制作一个食谱并将我的文件放在模板文件夹中,并将此配方放入节点的运行列表中。我也是cron在节点上安排的厨师 - 客户端。 所以现在当这些文件更新并且配方上传到服务器上时,所有节点上的文件都会更新。 什么是更有效地做到这一点的另一种方法。
没有cron可以做到这一点。
EG。如果文件将在食谱中修改,厨师服务器将执行此操作。
答案 0 :(得分:0)
这取决于 - 一如既往。
您可以使用remote_file资源从远程位置下载文件(例如通过HTTP)。这样,如果您在源服务器上替换更新的文件,厨师可以自动部署更新的文件。
但无论如何,厨师 - 客户只会在厨师运行期间进行更改。你可以通过cron或run chef作为服务来触发它们。为了触发厨师 - 客户端自动运行,您可以通过SSH启动厨师 - 客户端(例如,由Jenkins服务器自动启动),或者您可以尝试Chef's push jobs。
答案 1 :(得分:0)
你已经按照正确的方式做了。按照设计,Chef Server不会对节点执行或启动任何更改。它只是存储食谱,节点属性等的存储库。
定期运行厨师 - 客户是正确的方法。您可以使用cron或以守护进程模式(chef-client -d
)运行chef-client作为服务来执行此操作。