2015-03-03 55 views
0

由于我是新来的厨师所以要主动帮助secenario是传递变量的厨师长的食谱,以便我们可以上传,在厨师服务器的食谱,它西港岛线与自动厨师客户端同步。 如何将变量传递给厨师食谱以及它如何与厨师客户端同步传递变量厨师的食谱和同步

+0

厨师使用属性来存储食谱使用的值,更多关于它们的信息可以在这里找到https://docs.chef.io/attributes.html。如果您遇到更窄的问题,请更新您的问题,以便我们为您提供帮助。 – rastasheep 2015-03-04 08:20:19

+0

我们已经用这种docs.chef.io/attributes.html.....attribute意味着值变量...这里的问题是我们要传递变量没有的值和西港岛线在运行时通过。 – 2015-03-04 08:58:06

+0

其实厨师不会那样工作,在实际的厨师跑之前,食谱,角色或环境应该提供价值观。还有就是当你需要从节点的文件内容读取数值一些边缘情况,但它必须在前面定义,这样就可以实现像自动化和幂等厨师的所有功能。 – rastasheep 2015-03-04 09:02:17

回答

-1

厨师使用变量的属性。您可以在食谱内设置默认属性。这里是一个

http://www.thegeekstuff.com/2016/06/chef-cookbook-directory-structure/

我一般设置在我的角色我运行列表的例子,然后将我的环境文件中的覆盖属性。

例如环境ruby文件:

`name "example_environment" 
description "example_environmentfile" 
override_attributes({ 
    'cookbook1' => { 
     'database_password' => "password1", 
     'server_password' => "password2" 
    } 
})` 

这里是一个什么样的红宝石角色看起来像一个例子:

`name 'example_role' 
description 'example role with run list' 
run_list(
    'recipe[[email protected]]', 
    'recipe[cookbook1::[email protected]]', 
    'recipe[cookbook2::recipe2]' 
)` 

运行列表的第一行,你可以看到我不指定一个配方,这将调用cookbook1的默认配方。我也在这里指定2.0.9版本的食谱。

在运行列表的第二行,我指定它运行recipe1。

运行列表中的第3行指定从最新版本的cookbook2运行recipe2。