2016-01-13 83 views
0

我想知道在廚師角色中指定node['ipaddress'] OHAI屬性的正確方法是什麼。我的廚師角色在JSON format中定義。如何在JSON格式定義的廚師角色中使用OHAI屬性?

{ 
    "name": "temp_role", 
    "description": "This is temp role", 
    "json_class": "Chef::Role", 
    "default_attributes": { 
"client_addr": #{node['ipaddress']} 
    }, 
    "override_attributes": { 
    },  
    "chef_type": "role", 
    "run_list": [ 
    "recipe[test::prereq]" 
    ], 
    "env_run_lists": { 
    } 
} 

回答

1

您不能在角色,JSON格式或其他方式中使用ohai數據。角色是純粹的靜態數據,在上傳過程中轉換爲JSON,即使他們正在使用DSL也不例外。任何動態必須生活在食譜中,在這種情況下可能是一個角色模式的食譜。

+0

如何使用角色模式食譜來解決我的問題? – meallhour

+0

你會寫一個。描述整個過程不在SO的範圍內。 – coderanger

+0

@meallhour可能值得鏈接到[此處](http://bytearrays.com/chef-cookbook-patterns/)以獲得對此模式的更廣泛描述。 – Tensibai