Skip to main content
DevOps icon showing cogs

This post is from the XebiaLabs blog and has not been updated since the original publish date.

Last Updated Dec 10, 2014 — DevOps Expert

Running Puppet From XL-Deploy

DevOps

Recently I was with a customer who had done a lot of work with Puppet to provision their servers and they were interested in leveraging that Puppet work when they migrated to XL-Deploy and XL-Release.  They had discovered that Puppet did a great job provisioning their servers, but was not so good at releasing their code.  I was quickly able to show them how to integrate Puppet with XL-Deploy. XL-Deploy has a plugin for puppet so we can use that to implement our puppet manifests.  You also need to have puppet installed on your target server.  Once you have done that you can create XL-Deploy packages that include puppet manifests.  XL-Deploy will copy the puppet manifest files over to your server and run puppet to do your installs. Lets look at how this is done.  First create a simple puppet manifest based on one from the puppet site.

file {'testfile':
   path    => '/tmp/testfile',
   ensure  => present,
   mode    => 0640,
   content => "hello, {{petName}}.  How are you?",
}
I have done a couple of interesting things here.  First we made a manifest file that will create a file on our remote system.  We could use any puppet manifest commands in this file.  The second thing is that I have included some special characters.  We have an embedded tag {{petName}} that will be replaced before the puppet command is run.  XL-Deploy has dictionaries that are a set of key / value pairs that the XL-Deploy engine will use to replace the key with the value every time it finds that key in files it is copying over to the target server.  In our example manifest file the {{petName}} will be replaced with what ever is in the dictionary for this environment. Now lets create a puppet application in XL-Deploy with our new puppet manifest.  In XL-Deploy we will create an application named MyPuppet and create a version 1.0 of the application.  Then we will add our manifest file.  Puppet manifest files are of type puppet.Manifest.  So we will end up with something like the following:MyPuppet ApplicationOnce we have our application added in the repository we can install it like any other application in XL-Deploy.  If we wanted to we could add other XL-Deploy types to our application.  XL-Deploy's model based approach to defining packages will allow XL-Deploy to determine the right place to deploy this package in each environment and at what point during the installation process the package should be installed. Now that we have an Application based on our puppet manifest lets install it.  Our puppet manifest file needs to be installed directly on an overthere host.  I have one of those in my XL-Deploy server and the deployment looks like the following:MyPuppet DeployWe can see from the deployment plan that XL-Deploy only has the one step to copy the manifest over to the host and install it.  In XL-Deploy we can look at what it is actually going to do to install this file.  By double clicking on the eyeball above we can see the script that will be executed to run puppet on the host as follows:Puppet CommandThat's all there is to running puppet manifests from XL-Deploy.  Your application packages can include puppet manifests and other XL-Deploy types.  This gives you a lot of flexibility in managing you applications the the environments they run in.

More from the Blog

View more
Ascension Launch Banner
Apr 26, 2022

Get ready for peak performance with Digital.ai’s newest AI-Powered DevOps Platform Ascension Release

DevOps
Today, Digital.ai is excited to announce our latest AI-Powered DevOps ...
Read More
Jan 24, 2022

Digital.ai Value Stream Delivery for SAFe®: The key to amazing business outcomes

DevOps
The Scaled Agile Framework (SAFe) is the world’s leading framework for ...
Read More
Dec 09, 2021

How SaaS and cloud-based solutions helped the U.S. Department of Veterans Affairs achieve digital transformation

DevOps
Modernizing legacy systems was an ongoing goal for the U.S. Department ...
Read More
Nov 29, 2021

Increase velocity and reduce risk with AI and machine learning

DevOps
Artificial Intelligence (AI) and machine learning (ML) have proven use ...
Read More
Contact Us