files_copy_to_guest
을 어떻게 Ruby 해시로 변환 할 수 있습니까?YAML에서 속성을 해시로 변환
.kitchen.yml
'my_cookbook':
'files_copy_to_guest':
-
'home/kevin/bin/script.sh' : '/vagrant/unix_scripts/script.sh'
'home/kevin/script2.sh' : '/vagrant/unix_scripts/script2.sh'
요리 책/my_cookbook/속성/default.rb
default['kevin']['files_copy_to_guest'] = []
요리 책/my_cookbook/조리법/default.rb
files = node['kevin']['files_copy_to_guest'] # how to read attribute as Hash?
if files.nil? | files.empty? then
Chef::Log.warn("node['kevin']['files_copy_to_guest'] is nil or empty!")
end
files.each do |_, value|
value.each do |vm_dest, host_src|
file vm_dest do
owner user
group user
mode 0755
content ::File.open(host_src).read # <<< error on 'value'
end
end
end
내가 시도 :
files = YAML.load(node['kevin']['files_copy_to_guest']
,
하지만, 작동하지 않았다. 나 또한 read 그 files.to_hash
도 작동하지 않습니다.
그러면 'value'는 nil입니다. 거기서 일해라. – user2864740
그러나 내 'YAML'에서는 '해시'입니다. Ruby에서'{ 'files_copy_to_guest'=> { 'A'=> 'B', 'C'=> 'D'}}'(이해할 수 있음) –
초 동안 YAML을 무시합니다. 오류에서 시작하여 뒤로 이동하십시오. 그런 다음 질문이 나오는데,'파일'은 실제로 * 무엇입니까? – user2864740