Jenkins CI Integrates With Chef and Puppet to Provide Full Traceability of Deployments
Using the Deployment Notification plugin for Jenkins developed by CloudBees and either the additional Chef Software plugin or Puppet Labs plugin, engineers can now trace every file installed by Chef or Puppet within Jenkins CI. Jenkins will map each file installed by Chef or Puppet using its fingerprinting mechanism and show exactly to which environments that file has been deployed to. The plugin doesn't require Jenkins to run the external software but it offers a way for Chef or Puppet to deliver deployment reports via its API.
The Deployment Notification plugin, the Chef Software plugin and the Puppet Labs plugin are the product of a cooperation between CloudBees, Chef Software and Puppet Labs. Kohsuke Kawaguchi, chief technology officer, CloudBees, and founder of the Jenkins CI community explained that "a need for automation has been driving our industry and traceability is a key enabler of automation." Adam Jacobs, chief technology officer (CTO), Chef Software said: "Giving users of both Jenkins and Chef Software this added capability will help them do a better job developing applications and making updates to them quickly, efficiently and error-free," and Mitch Sonies, vice president, corporate and business development, Puppet Labs said that the integration of Puppet and Jenkins gives developers greater visibility so they can deliver on the promise of continuous delivery.
Without the Deployment Notification plugin Jenkins was not able to trace binaries through code to deployment. If binaries were picked up by Chef or Puppet and deployed by them to an environment, Jenkins missed that critical piece of information. Engineers where not able to find out where exactly the binary had been used. The Deployment Notification plugin changes that. It can receive MD5 checksums of deployed files from Chef and Puppet and map them to its internal fingerprints of known binaries. Jenkins can use this mechanism to show the environments, hosts, and paths where the binaries have been deployed to by Chef or Puppet giving engineers full visibility into the complete deployment pipeline.
The Chef and Puppet plugins trace the use of the File resource and report each usage back to Jenkins. Engineers need to install the Deployment Notification plugin and either the Chef Software plugin or the Puppet Labs plugin according to their environment. The Deployment Notification plugin only provides the generic functionality to track deployments in Jenkins - the tool specific implementation resides in the vendor specific plugins.