0

我是 Chef 和 A​​WS 的新手,我正在学习如何将集群部署到 AWS Ec2。为此,我正在使用 chef-provisioning-aws。

chef-client从我的工作站直接执行到 AWS,我没有chef-server(使用 chef-zero)。这就是我执行的方式:

chef-client -z -r "role[example_cluster]"

是的,我有集群的角色,并且在run_list我有 "recipe[example::aws_setup]", "recipe[example::create_cluster]"

example::create_clustermachine_batch用来创建机器的配方上,并调用以下配方:

recipe 'example::recipe_1' recipe 'example::recipe_2'

我还定义了一些属性,并在 Role 文件中覆盖了其中一些属性,但是当我执行 时,和上chef-client的属性是我在 Role 文件上覆盖的属性,但在和中使用的属性是默认属性。example::aws_setupexample::create_clusterexample::recipe_1example::recipe_2

有人有指导或可以帮助我吗?

提前致谢。

4

2 回答 2

1

Chef 属性具有“优先级”顺序。请参考有关 Chef 属性 Precedence 的答案,这将有助于理解,当我们运行食谱时会考虑哪个属性值。

您需要调用正确的属性方法,同时覆盖属性值。

于 2016-01-06T13:29:54.107 回答
1

我想我昨晚在 IRC 上回答了你,但以防万一:

运行供应过程的服务器(或在本例中为工作站)的节点数据与 EC2 中新创建的节点之间没有关系。如果您想对它们应用角色或其他东西,则需要在创建机器时在您的配置配方中执行此操作。

于 2016-01-05T22:02:33.140 回答