Data bags
A data bag is a global variable that is stored in JSON and can be accessed by Chef. It is indexed for searching and loaded by chef-client while executing the recipe.
We can use data bags directly in a JSON file or create them using Knife Solo. First, we will use a simpler approach, that is, updating the password with a JSON file.
Before we proceed further, we will create a JSON file under the same folder of Vagrantfile
and use this file to run recipes. The benefit of this approach is that Chef-Solo requires a JSON file to execute recipes, and we can test our JSON file with Vagrant. The steps are as follows:
Create your file in the same folder where
Vagrantfile
exists:# wpblog.json { "wpblog":{ "db_password": "dbpass1234" }, "run_list": [ "recipe[wpblog::default]" ] }
Comment on the
add_recipe
line inVagrantfile
and add the following code block inVagrantfile
:chef.json.merge!(JSON.parse(File.read("wpblog.json")))
Now,
Vagrantfile
will look like the following...