首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >chef-solo --daemonize是如何工作的,重点是什么?

chef-solo --daemonize是如何工作的,重点是什么?
EN

Stack Overflow用户
提问于 2014-03-22 14:22:35
回答 1查看 395关注 0票数 3

我理解chef-client --daemonize的用途,因为它是Chef Server可以连接和交互的服务。

但是chef-solo是一个命令,它只是简单地将当前系统与规范结合起来,然后就完成了。

那么chef-solo --daemonize的意义是什么,它具体做了什么?例如,当系统与规格不符时,它会自动检测吗?它是通过轮询还是利用文件系统事件来实现的?当它已经在运行时,如果您更新它所依赖的食谱和节点文件,它会有什么行为?

EN

回答 1

Stack Overflow用户

发布于 2014-03-23 06:52:02

您可能还会问为什么chef-solo支持--splay--interval参数。

不要忘记chef-server不是唯一的数据源。配置值可以依赖于一堆其他来源(API、OHAI、DNS……)。最经典的是OHAI --想想一本配置memcached的食谱。您可能希望为操作系统保留X大小的RAM,其余的将分配给memcached。

在VM内部运行时,即使不重新启动,也可以更改可用RAM。这可能是将chef-solo作为具有频繁chef- run的守护进程运行的一个好理由,就像您在将chef-client与chef-server一起使用时所习惯的那样。

至于你的其他问题:

问:当系统与规格不符时,它会自动检测吗?它是通过轮询还是利用文件系统事件来实现的?

答: Chef不会对变化做出反应。相反,它会频繁运行,并确保当前状态与所需状态同步-这可以基于chef-server清单、API调用、OHAI属性等。每次运行Chef时,都会在编译阶段生成所有资源时从头开始构建所需状态。阅读关于它的here

问:当它已经在运行时,如果你更新它所依赖的食谱和节点文件,它会有什么行为?

答:通常在运行chef-solo时,会使用--json标志来指定一个带有节点属性和运行列表的JSON文件。使用chef-solo在--daemonize模式下运行时,节点属性在第一次运行时是只读的。对于其余的运行,就好像您在没有--json标志的情况下运行它。我想不出一种方法来让它工作起来,就好像你是在用--json重新运行它一样,但是,你可以使用--override-runlist选项,至少让runlist保持稳定。请注意,您在JSON中指定的属性不会通过第一次运行。这可能是一个bug。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22574217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档