2015-11-03 65 views
1

我試圖從屬性的子集中編寫一個.yml文件。下面是我使用的資源定義:ruby​​/hash:將Chef屬性轉換爲yaml時,Chef :: Node :: ImmutableMash包含在文件中

file '/home/user/file.yml' do 
    owner 'user' 
    group 'user' 
    mode '0755' 
    content node['default']['properties'].to_yaml 
end 

當我運行這一點,file.yml結束這樣看,雖然:

--- !ruby/hash:Chef::Node::ImmutableMash 
config: !ruby/hash:Chef::Node::ImmutableMash 
    example: value 
    another: value 

我怎麼弄乾淨YAML輸出,無需所有!ruby/hash:Chef::Node::ImmutableMash輸出?

回答

2

原來你需要做的就是在轉換爲yaml之前將屬性轉換爲散列值。這裏是工作代碼:

file '/home/user/file.yml' do 
    owner 'user' 
    group 'user' 
    mode '0755' 
    content node['default']['properties'].to_hash.to_yaml 
end 

注意:你需要用廚師的客戶端11.10.0或更高版本,因爲 曾經有與to_hash方法的缺陷是。更多的信息在這裏: https://stackoverflow.com/a/14782389/1688034

相關問題