CHEF Server Workflows

Version 9

    Have you ever wanted orchestrate nodes, roles, data bags, attributes, etc. on a Chef Server?  Give this plugin and package a try!  Try the official Chef Plugin for vRealize Orchestrator !


    See the attached pdf for a workflow listing and documentation of the workflows in this package:



    This solution interfaces directly with the Chef Server REST API.  Works with all three variations of Chef (Open Source, Private, Hosted).


    Workflows that interact with the guest OS for Chef-Client first run use either SSH or VMtools with workflows from: Guest script manager package


    The plugin helps with signing the authentication headers as required by the Chef API.  The rest of this solution is pure vCO JavaScript.


    Dependencies: HTTP-REST Plugin.


    To install:  The attached zip contains 2 files:

    • o11nplugin-chef.dar - Install as a plugin through the vCO configuration interface.  This plugin only has a single method to aid in signing requests
    • com.vmware.pso.chef.<date>.package - The package of vCO workflows and actions to import.


    To get running, simply run the Library/Chef/Add Chef Server workflow.  This workflow will create the REST Host and store your private key per chefHostname and userid.  Use the same chefHostname and userid in any other workflow.  The orgName input is optional but required if you are using private or hosted chef.


    The chefHostname input is the name of the REST host the workflows will use.



    • 07/07/2015
      • Improved vRO 6 compatibility
        • Incorporated Cody Hill's "Add Chef Server" workflow with some minor tweaks.
        • REST Host is no longer automatically created on workflow execution.  If a REST host is not found by the name supplied to chefHostname input, an exception will ask you to run "Add Chef Server" workflow.
      • Added client private key input (pem) to all API related workflows.
      • Added Global workflows for managing Private Chef orgs and users.  Requires the pem of the pivotal user of the Chef server.
      • Fixed workflows that update a runlist for a node or a role.
      • Fixed required inputs of most workflows. chefHostname, userid are required when present.
      • Improved open source Chef compatibility with workflows in the Linux/SSH, Linux/VMtools and Windows/VMtools folders.
        • The name of the validator key for open source chef is defined in the configuration element: Library/Chef/Chef Globals
      • Knife bootstrap hostname and credentials is now defined in the configuration element: Library/Chef/Chef Globals
    • 1/11/2015:
      • Reduced verbosity of logging by default.  Debug logging can be enabled per Chef Server using Toggle Debug Logging workflow.
      • Removed RESTHostManager.reloadConfiguration() call from every Chef Server API Execution improving performance.
      • The orgName input is automatically hidden from the presentation if target Chef Server is an open source variant.
      • The client private key can be provided as an input to any Chef Server workflow.  This is useful if you are storing your private keys elsewhere (besides the Chef Private Keys Configuration Element) or reading it from a guest OS as in: Linux VMTools Delete Instance with own key workflow which deletes a Node and Client with it's own key.
      • Tag Node and Untag Node workflows add or remove Knife tags on nodes.
      • Chef-Client first run workflows for Linux via SSH and VMtools.
      • Chef-Client first run workflows for Windows via VMtools.
    • 11/16/2013:
      • Refactored hashing and encryption actions to reuse actions from CryptoJS Hashers and Ciphers
      • Much more granular data bag support.  Workflows to retrieve, add/update, delete individual data bag item attributes.
      • More complete encrypted data bag support.  Workflows to add encrypted data bag item attributes, convert data bag items from cleartext to/from encrypted.