Chef infra 将变量传递给chef recipes并同步
因为我是厨师新手,所以需要帮助。第二步是将变量传递给厨师食谱,这样我们就可以在厨师服务器上上传食谱,并自动与厨师客户端同步。Chef infra 将变量传递给chef recipes并同步,chef-infra,Chef Infra,因为我是厨师新手,所以需要帮助。第二步是将变量传递给厨师食谱,这样我们就可以在厨师服务器上上传食谱,并自动与厨师客户端同步。 如何将变量传递给chef recipes,以及如何与chef client同步,chef使用变量的属性。您可以在cookbook中设置默认属性。这里有一个例子 我通常在角色中设置运行列表,然后在环境文件中设置覆盖属性 示例环境ruby文件: `name "example_environment" description "example_environmentfile"
如何将变量传递给chef recipes,以及如何与chef client同步,chef使用变量的属性。您可以在cookbook中设置默认属性。这里有一个例子 我通常在角色中设置运行列表,然后在环境文件中设置覆盖属性 示例环境ruby文件:
`name "example_environment"
description "example_environmentfile"
override_attributes({
'cookbook1' => {
'database_password' => "password1",
'server_password' => "password2"
}
})`
下面是一个ruby角色的示例:
`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。Chef使用属性存储食谱使用的值,有关这些属性的更多信息,请参见此处。如果您有更窄的问题,请更新您的问题,以便我们可以帮助您。我们使用了docs.chef.io/attributes.html…attribute表示带值的变量…这里的问题是我们必须传递不带值的变量,并且值将在运行时传递。实际上,chef不采用这种方式,值应该由菜谱提供,角色或环境,在实际运行之前。当您需要从节点上的文件内容中读取值时,会出现一些边缘情况,但在这种情况下,必须在前面定义值,这样您就可以实现Chef的所有功能,如自动化和幂等性。这种情况就像我们必须通过脚本传递变量,并将其上载到服务器,然后它将根据客户端的需要运行。