如果我没有使用角色,如何使用根据角色定义的厨师食谱?

时间:2014-04-23 20:23:29

标签: chef

我试图使用Opscode ntp cookbook,但使用它的说明对我没有任何意义。它说:

  

在角色中设置ntp属性。例如,应用于所有节点的base.rb角色:

name 'base'
description 'Role applied to all systems'
default_attributes(
  'ntp' => {
    'servers' => ['time0.int.example.org', 'time1.int.example.org']
  }
)
     

然后在应用于NTP服务器的ntpserver.rb角色中(例如,time.int.example.org):

name 'ntp_server'
description 'Role applied to the system that should be an NTP server.'
default_attributes(
  'ntp' => {
    'is_server'    => 'true',
    'servers'      => ['0.pool.ntp.org', '1.pool.ntp.org'],
    'peers'        => ['time0.int.example.org', 'time1.int.example.org'],
    'restrictions' => ['10.0.0.0 mask 255.0.0.0 nomodify notrap']
  }
)
     

这些角色中使用的timeX.int.example.org应该是内部NTP服务器的名称或IP地址。然后只需将ntp或ntp :: default添加到run_list即可应用ntp守护程序的配置。

我们在配置中没有使用角色。我们正在编写包含其他食谱的食谱,然后在我们尝试配置的主机上运行相应的食谱。

如何在不使用角色的情况下使用食谱?

1 个答案:

答案 0 :(得分:2)

您可以开发一个包装器食谱,用于设置节点属性,然后包含配方。这种包装食谱的示例配方可能如下所示:

# Set the node attributes for ntp
node.default['ntp']['servers'] = ['time0.int.example.org', 'time1.int.example.org']

# include the recipe
include_recipe 'ntp'