chef-client 运行 是否启动?

Does chef-client run on startup?

chef-client 运行 是作为服务器启动的一部分,还是仅在 chef-client 食谱的下一个内部集上?

是否有 chef-client cookbook 设置可以让服务器在启动时立即执行 chef-client 运行,而无需手动编辑启动脚本?

我问是因为我正在禁用透明页面(根据 this mongo doc)。

我可以轻松地让配方将正确的参数回显到正确的文件中,但在重新启动时设置会切换回来。如果我知道 chef-client 会 运行 重启第一件事,我就不用担心启动脚本搞乱了。

默认情况下,chef-client 未配置为 运行 作为初始化任务。虽然,厨师客户端可以 运行 作为守护进程。 chef-client cookbook 可用于将 chef-client 配置为守护进程。将默认食谱添加到节点的 运行-list,然后使用该食谱中的属性来配置 chef-client 的行为。

https://docs.chef.io/ctl_chef_client.html#run-as-a-service

如果您愿意,可以使用 chef-client::init_service 配方将其配置为初始化服务。

https://github.com/chef-cookbooks/chef-client/blob/master/recipes/init_service.rb

  1. 你可以 运行 厨师使用 cron,有特殊的 'macro' @reboot,你应该在你的 crontab 中添加类似的行:

    @reboot /path/to/my/chef-client
    
  2. 一些Linux发行版支持/etc/rc.local文件(肯定是Debian/Ubuntu)或执行的类似文件。