【发布时间】:2014-12-11 04:07:18
【问题描述】:
(我认为这是该问题的正确 StackExchange,因为它是开发用例,而不是系统管理员用例。如果不是,请随时将其重新定位到正确的 StackExchange。)
我的应用使用 Vagrant + Chef 单独配置器来设置本地开发环境。我随意选择了一个 CentOS 6.5 机器来托管 MySQL 数据库和 RabbitMQ 总线,因为对于开发来说,VM 机器并不重要——重要的是应用程序有一些实例可以连接。所以我正在使用mysql 社区食谱和rabbitmqcommunity 食谱等。我还使用database 食谱来创建数据库和用户。
问题是 Chef 似乎希望我引入一堆不相关的外部依赖项,即使我的 Vagrant 环境受到严格控制。例如,rabbitmq 想要 erlang(很明显),但 erlang 想要 apt,这与 CentOS 无关。
同样,database 食谱需要 aws 和 postgresql,这又与我当地的 Vagrant 环境无关。
我可以排除这些依赖项而不必自己修改说明书吗?怎么样?
【问题讨论】:
-
Chef 是一种跨平台技术。在 CentOS 上要求 APT 食谱并不重要,因为它永远不会被执行。需要下载它的原因是因为在厨师食谱实际执行之前它不会知道它所在的平台。此外,您的 Chef 服务器可能需要同时支持 Redhat 和 Debian 系统。
-
好吧,我正在运行 Chef Solo,在这种情况下纯粹是为了 Vagrant 配置。确实,额外的食谱不会破坏任何东西。但是出于同样的原因,我不会只是在我的项目中添加 npm、digitalocean、neo4j 等的随机食谱,如果能够剔除 apt、aws、postgresql 等,那就太好了。但我明白这一点Chef 的目标是更广泛的用例,并且跨平台考虑开始发挥作用。
标签: dependencies vagrant chef-infra chef-solo