将变量传递给厨师食谱和同步

时间:2015-03-03 11:11:33

标签: chef

因为我是厨师的新手,所以需要帮助。方案是将变量传递给厨师食谱,以便我们可以在厨师服务器中上传这些食谱,并且它将自动与厨师客户同步。 如何将变量传递给厨师食谱以及它如何与厨师客户同步

1 个答案:

答案 0 :(得分:-1)

Chef使用变量属性。您可以在cookbook中设置默认属性。这是

的一个例子

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[cookbook1@2.0.9]',
    'recipe[cookbook1::recipe1@2.0.9]',
    'recipe[cookbook2::recipe2]'
)`

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

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

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