Chef-Zero + AWS +角色覆盖属性

时间:2016-01-04 23:11:25

标签: amazon-web-services amazon-ec2 chef chef-zero

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

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

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

是的,我在群集和run_list中都有自己的角色 "recipe[example::aws_setup]", "recipe[example::create_cluster]"

example::create_cluster食谱上,我使用machine_batch创建机器并调用以下食谱:

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

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

有人有导游或可以帮我解决这个问题吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

Chef属性具有" Precedence"订购。请参考answer相关的Chef属性Precedence,它将有助于理解在运行cookbook时将考虑哪个属性值。

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