Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where is my Chef data bag item?

I was trying to create a Chef data bag from within the chef-repo directory using the command:

knife data bag create users deployer

And i get the response:

Created data_bag[users]
Created data_bag_item[deployer]

But I am not able to locate the data bag users nor its data bag item. It is not in the data_bags folder or anywhere else that I could see. If I do a

knife data bag show users

It will show me the data bag item name. So it must be saved somewhere. The documentations tell me that the data bag should be in the folder chef-repo -> data_bags -> users. But my data_bags folder appears to be empty. So where is the data bag I have just created?

like image 351
Steve Loo Avatar asked Jan 19 '14 04:01

Steve Loo


2 Answers

With Chef, there's a disparity between your local computer (called the "workstation") and the remote Chef Server. In your case, the knife command created the data bag on the remote Chef Server.

I understand how that can be misleading. A data bag is nothing more than a folder containing one or more .json files. Usually you generate this structure manually on your workstation (either using the GUI or terminal).

So in your example, just make the folder you've described (chef-repo -> data_bags -> users) and then create a chef-repo/data_bags/users/deployer.json file using the schema described by the cookbook.

like image 82
sethvargo Avatar answered Sep 30 '22 19:09

sethvargo


When you use

knife data bag create users deployer

knife creates that data bag on chef-server. It is not available on your local chef workstation. But you can download this data bag on local workstation. Just use the following command

knife download data_bags

This command will download you data bag in chef-repo/data_bags/users/deployer.json You can go there and directly update this JSON file. When you are done, do remember to upload this data bag again with "knife upload ."

like image 37
Suyash Mohan Avatar answered Sep 30 '22 19:09

Suyash Mohan