2014-02-24 146 views
1

原來我不能爲您在廚師的節點(主機)的名字,所以我試圖找出最好的方式作出如下發生:廚師檢查主機名?

If hostname is X 
ldap_access_filter = memberOf=<%= node['sssd_ldap']['ldap_access_node_filter'] %> 
else 
ldap_access_filter = memberOf=<%= node['sssd_ldap']['ldap_access_filter'] %> 
end 

的想法是,當節點名稱(或某個匹配變量)爲true,則它使用ldap_access_node_filter,這是一個唯一值,否則它使用默認值。我基本上配置sssd配置,其中一個主機需要一個特殊的ldap訪問過濾器。

如果有更好的方法,請讓我知道。

請幫忙。

回答

1

Ohai應該讓你獲得主機名?

如果你想要一些特定的節點,看起來你可以插入廚師的屬性優先級。您可以在食譜級別設置屬性的默認值,然後在節點上設置顯式屬性。這也意味着,如果您需要這些服務器中的2個具有該值,那麼您不會僅僅在服務器上更改該配置。

2

使用

node.name 

node.name.split('.')[0] 
0

我只是碰到了這個嘗試將文件的一個特殊版本部署到一個主機名。我用not_if,only_if

cookbook_file 'file/to/replace' do 
    not_if {node.name == 'host.domain.name'} 
    source 'file_version.4' 
    action :create 
end 

cookbook_file '/file/to/replace' do 
    only_if {node.name == 'host.domain.name'} 
    source 'file_version.5' 
    action :create 
end