CHEF의 data bag 기능을 이용합니다.
1. 기본 사용법
1) data bag 생성
knife data bag create [data bag 이름]
# knife data bag create test Created data_bag[test]
2) data bag 삭제
knife data bag delete [data bag 이름]
# knife data bag delete test Do you really want to delete test? (Y/N) y Deleted data_bag[test]
만일 존재하지 않는 data bag 을 삭제하려고 하면 다음과 같은 오류가 날 것입니다.
# knife data bag delete test1 Do you really want to delete test1? (Y/N) y ERROR: The object you are looking for could not be found Response: Cannot load data bag test1
3) data bag 올리기
json 파일 형태의 data bag 을 올립니다.
# knife data bag from file test dev.json Updated data_bag_item[test::dev]
2. data bag을 이용한 cookbook 공통 속성 제어하기
여러 cookbook에서 공통적으로 사용되는 repository 정보를 data bag으로 관리하려고 합니다. 그리고 아래 예는 recipe 에 들어갑니다. data bag은 attribute에서는 사용할 수 없기 때문이지요.
dev = data_bag_item('test','dev') node.default['REPO_SERVER'] = dev['repo_server'] puts "repository server for this recipe ==> #{node['REPO_SERVER']}"