chef-command

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

npm install chef-command
1 downloads in the last day
17 downloads in the last week
43 downloads in the last month

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

Constructor

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

Instance variables

  • settings : a hash containing all settings

Instance methods

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

Getters

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
npm loves you