Webinar Q&A: Continuous Delivery with Jenkins and Puppet - Debug Bad Bits in Production

Thank you to everyone who joined us on our webinar.

We presented:
  • How to build a modern continuous delivery pipeline with Jenkins
  • Connect Jenkins and Puppet such that Dev and Ops team can determine what happens on the other side of the house and closely interact to debug issues in production environments.
Webinar recording is here.
Following are answers to questions we received during the webinar:




Q: Is Puppet serving as the orchestrator for Jenkins?
A: Not quite - the tools run independently but communicate with each other. The demo will make it clear.

Q: Can JMeter be plugged in with Jenkins for Continuous testing?
A: Yes it can. 

Q: When we say continuous testing do we mean automated testing here?
A: Continuous Testing = automated testing for each commits made in the source repository.

Q: What drivers or plugins are required? Can I get a website where I can get this info?
A: https://wiki.jenkins-ci.org/display/JENKINS/JMeter+Plugin

Q: With JMeter can we run a load test using the build in Jenkins, or how can we do continuous testing with this combination?
A: JMeter is going to used for load testing stage. It depends how you setup your workflow/pipeline. If you run perf test on every commit (you shouldn’t) but you have continuous testing. You will have more testing stages ideally.

Q: Can Puppet work with VM’s
A: Yes, Puppet can work with VMs. Puppet agents live at the OS level, and can be deployed to virtual machines or bare hardware. Puppet is agnostic to where or how it has been deployed. We do have some hooks and integrations around provisioning new VMs as well.

Q: I’m curious that I don’t see AWS/EC2 under “Virtual & Cloud” for Puppet along with VMware, Xen, Azure … is there a reason? Any concerns I should have about compatibility with EC2 infrastructure?
A:  No, there are no concerns around EC2. Puppet runs great in EC2 and we have many customers running their infrastructure with Puppet in Amazon’s cloud.

Q: Are you going to share these scripts somewhere?
A: Demo write up available on CloudBees developer wiki. The jenkinsci infrastructure is available at https://github.com/jenkinsci/infra-puppet

Q: I understand that Puppet helps create an MD5 hash file of the war file -  build deployments. Could you provide a basic definition of what is Puppet and what is Docker?
A: Puppet (stealing from the Puppet page)

Puppet Enterprise (PE) uses Puppet as the core of its configuration management features. Puppet models desired system states, enforces those states, and reports any variances so you can track what Puppet is doing.
To model system states, Puppet uses a declarative resource-based language — this means a user describes adesired final state (e.g. “this package must be installed” or “this service must be running”) rather than describing a series of steps to execute
Docker (stealing from Docker.io)
Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.
Q: Will this work with SVN too?
A: There is an equivalent version of Validated Merge for Jenkins that our team has pushed out in OSS.
Q: Will Validated merge with SVN repo too?
A: See above.
Q: Is an equivalent to the gated repo available with subversion?  It’s a great idea; a while back I’d worked with a similar homegrown solution for Perforce.
A: See above.
Q: What’s the difference between open source Jenkins & CloudBees’s version?
A: See this link.
Q: Where I could get the quotation if I want to buy?
A: Email sales@cloudbees.com
Q: Does Puppet require root access for Unix host? What privileges would it require as a user?
A: The Puppet agent typically runs as root in order to be able to fully configure the system, but it does not require those privileges. When running as a non-privileged user, it will only be able to manage aspects of the system the user has permissions for.
Q: When Harpreet was doing the Traceability demo, the Jenkins screen that showed the artifact deployment state had a field for ‘Previous version’ that was blank. Why was that empty? What value would normally be in there, the MD5 hash of the previous artifact?
A: Those would change if I had checked in new code thus altering the MD5 hash. Since I was just rebuilding the same image in the demo, the hashes are same and hence no previous version.
Q: Is Puppet capable to work with IBM Solutions? like Websphere?
A: Yes. In general, if it’s possible to manage or modify an application from the command line of a system, it is possible to build a Puppet model for it. Check out forge.puppetlabs.com for 2500+ examples of pre-built community and supported modules.
Q: I read that about the agent, but what about the master? If not, can you run Puppet without a master?
A: The master is effectively a web service, which does not require root privileges, so it too can be run without root. For testing and development, you can run Puppet in a stand-alone mode using the `puppet apply` family of commands.

Q: Does Puppet need vagrant to run or can we run it directly on the VM?
A: Puppet can be run directly on a VM. It does not have dependencies on Vagrant or any other specific virtualization/cloud management software.

Q: How does the facility match with the preccommit checkin provided by Visual Studio Env?
A: I am not familiar with Visual Studio Env but documentation indicates that those are just environment variables that are in injected into builds, if so then Jenkins can understand environment variables.
— Harpreet Singh
Harpreet is vice president of product management at CloudBees. 
Follow Harpreet on Twitter

— Reid Vandewiele


Reid is a technical solutions engineer at Puppet Labs, Inc.





Add new comment