厨师 - 客户端是否在启动时运行?

时间:2016-09-05 23:46:21

标签: linux mongodb chef chef-recipe cookbook

厨师 - 客户端是作为服务器启动的一部分运行还是仅由Chef-client cookbook的下一个内部设置运行?

是否有一个厨师 - 客户端菜谱设置,让服务器在启动后立即运行厨师 - 客户端(没有看到),而无需手动编辑启动脚本?

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

我可以很容易地将一个配方回显正确的参数到正确的文件,但在重新启动时,设置会切换回来。如果我知道chef-client将在重新启动时运行,我将不必担心弄乱启动脚本。

2 个答案:

答案 0 :(得分:2)

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

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

如果您愿意,可以使用chef-client :: init_service recipe将其配置为init服务。

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

答案 1 :(得分:2)

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

        Intent intent = new Intent(this,Notifier.class);
        PendingIntent pendingIntent = PendingIntent.getActivitythis.getApplicationContext(),
                     12345, intent, FLAG_CANCEL_CURRENT );
        AlarmManager am =(AlarmManager)getSystemService(Activity.ALARM_SERVICE);
        am.setRepeating(AlarmManager.RTC_WAKEUP, AT_from , interval, pendingIntent);
    
  2. 某些Linux发行版支持@reboot /path/to/my/chef-client 文件(肯定是Debian / Ubuntu)或执行的类似文件。