chef-command

constructs the correct chef-client/chef-solo command and json file

Description

This generates both the correct Opscode chef command the corresponding json file to use.

Documentation on Chef-Solo options:

Documentation on Chef-Client options:

API

var ChefCommand = require('chef-command');
var chefCmd = new ChefCommand();

options:

  • executable: defaults to chef-solo
  • file_cache_path:
  • dna_json_path:
  • role_path:
  • environment_path:
  • data_bag_path:
  • config_rb_path:
  • log_level:
  • cookbook_path:
  • run_list:
  • extra_json: // extra json to merge in the dna.json
  • settings : a hash containing all settings
var ChefCommand = require('chef-command');
var chefCmd = new ChefCommand();
chefCmd.addCookbookPath('/tmp/cookbooks'); // add a cookbook
chefCmd.addCookbookPath('/tmp/site-cookbooks').logLevel('debug'); // example of chainable
  • addCookbookPath(path) : adds a CookbookPath + returns chainable self
  • removeCookbookPath(path) : removes a CookbookPath + returns chainable self
  • addRolePath(path) : adds a RolePath + returns chainable self
  • removeRolePath(path) : removes a RolePath + returns chainable self
  • addDataBagPath(path) : adds a DataBagPath + returns chainable self
  • removeDataBagPath(path) : removes a DataBagPath + returns chainable self
  • setExecutable(command) : sets the executable command to command
  • setLogLevel(level) : sets the LogLevel + returns chainable self
  • addRecipe(recipe) : adds recipe to the runlist
  • addRole(role) : adds role to the run runlist
  • setRunList(array of runlist) : sets the runlist
  • setExtraJson(json) : json to merge with dna.json
  • removeRole(role): removes the role from the runlist
  • removeRecipe(recipe): removes the recipe to the runlist
var ChefCommand = require('chef-command');
var chefCmd = new ChefCommand();
chefCmd.addCookbookPath('/tmp/cookbooks'); // add a cookbook
chefCmd.generate();
  • generate() : return hash containing

  • dna_json: string containing the dna.json to use

  • config_rb: string containing the config.rb

  • command: string containing the actual CLI invocation