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']}"