Chef infra 使用chef更新节点上文件的最佳方法是什么?

Chef infra 使用chef更新节点上文件的最佳方法是什么?,chef-infra,chef-recipe,Chef Infra,Chef Recipe,我的厨师食谱中有一个文件,在某个节点上配置厨师。我希望,若文件将被修改,那个么它将使用chef在配置的节点中自动更改 我的做法是,, 我制作了一个菜谱,将我的文件放在模板文件夹中,并将这个菜谱放在节点的运行列表中。我还在节点上cron调度的chef客户端。 所以现在,当这些文件更新并上传到服务器上时,所有节点上的文件都将更新。 另一种更有效的方法是什么 没有cron是否可以做到这一点 如果文件将在菜谱中修改,厨师长服务器将执行此操作。视情况而定-一如既往 您可以使用该资源从远程位置下载文件(例

我的厨师食谱中有一个文件,在某个节点上配置厨师。我希望,若文件将被修改,那个么它将使用chef在配置的节点中自动更改

我的做法是,, 我制作了一个菜谱,将我的文件放在模板文件夹中,并将这个菜谱放在节点的运行列表中。我还在节点上cron调度的chef客户端。 所以现在,当这些文件更新并上传到服务器上时,所有节点上的文件都将更新。 另一种更有效的方法是什么

没有cron是否可以做到这一点


如果文件将在菜谱中修改,厨师长服务器将执行此操作。

视情况而定-一如既往

  • 您可以使用该资源从远程位置下载文件(例如,通过HTTP)。通过这种方式,如果在源服务器上替换文件,chef可以自动部署更新的文件

  • 您可以使用或资源部署git存储库中的文件。这样,您只需更新git repo,chef就会用新内容更新节点


但无论如何,chef客户端只在chef运行期间进行更改。您可以通过cron或运行chef-as-service来触发它们。要触发chef客户端自动运行,您可以通过SSH启动chef客户端(例如,由Jenkins服务器自动启动),也可以尝试一下。

您已经用正确的方式运行了。按照设计,Chef服务器不会在节点上执行或启动任何更改。它只是一个存储烹饪书、节点属性等的存储库

定期运行chef客户端是正确的方法。您可以使用cron或通过在守护程序模式下运行chef-client(
chef-client-d
)作为一项服务来实现这一点


看看。

如果我们想用AWS Opswork来做,我们这里没有chef服务器和chef客户端,怎么用AWS Opswork来做?我的解决方案是创建一个层,该层有一个配方,其中有一个我们希望在节点上更改的文件,现在将该层添加到所需的实例中。这是正确的方法吗?如果我们想用AWS Opswork来做,在这里我们没有chef服务器和chef客户端,如何用AWS Opswork来做呢?我的解决方案是创建一个层,该层有一个配方,其中有一个我们希望在节点上更改的文件,现在将该层添加到所需的实例中。这是正确的方法吗?