How to Install Software Using Puppet Package Provider
When managing software installations across your infrastructure, automation tools like Puppet can simplify the process. Puppet package provider allows you to install software efficiently. In this guide, we will walk through the steps of installing software, using Git as an example. You’ll also learn how to specify a local or network file source and understand how to handle versioning.

Step 1: Preparing Your Software Package
Before starting, ensure that you have an .exe or .msi file for the software you want to install. For this example, we’ll use Git, but this method works for any software that provides a Windows-compatible installer. You can store the installer on the local node, or use a network file share to point to the software.
Step 2: Defining the Puppet Package Resource
To begin, define the software package in your Puppet manifest. The basic syntax to install software using the Puppet package provider looks like this:
package {'Git': ensure => installed, source => 'C:\temp\Git-2.16.2-64-bit.exe', install_options => ['/VERYSILENT'] }
In this example, the Git installer is located in the C:\temp directory. The install_options parameter is used to pass additional arguments to the installer—in this case, making the installation silent (/VERYSILENT).
Step 3: Installing a Specific Version
If you need to install a specific version of the software, you can specify the version number in the ensure parameter. This ensures that the correct version is installed every time. It’s important to note that the built-in package provider doesn’t support the latest keyword with .exe or .msi files on Windows. Instead, you must explicitly define the version.
Here’s an example for installing Git version 2.16.2:
package { 'Git': ensure => '2.16.2', source => 'C:\temp\Git-2.16.2-64-bit.exe', install_options => ['/VERYSILENT'], }
In this case, Puppet will install Git version 2.16.2 from the specified file path.
Step 4: Handling Network Installations
If you prefer to install from a network file share, simply replace the local file path with the network path. This is useful in larger environments where software is centrally stored for deployment.
For example:
package { 'Git': ensure => installed, source => '\\network-share\Git-2.16.2-64-bit.exe', install_options => ['/VERYSILENT'], }
This method allows you to manage installations across multiple nodes without having to manually distribute the software.
Managing Your Infrastructure with ZippyOPS
Managing installations and automating tasks like this can be a part of a larger DevOps strategy. ZippyOPS offers consulting and managed services for automating IT workflows, including DevOps, DevSecOps, and DataOps practices. Whether you need help with software automation or require custom infrastructure management, ZippyOPS provides solutions tailored to your needs.
In addition to installation management, ZippyOPS supports services like AIOps, MLOps, and Cloud integration, helping businesses scale their operations effectively. Learn more about their solutions and products.
Step 5: Ensuring Smooth Operations
Once the installation is complete, Puppet ensures that the software stays at the desired state across your nodes. Puppet will automatically verify that the package remains installed with the correct version. If the package is removed or altered, Puppet will reinstall it based on the configuration defined in your manifest.
Conclusion: Simplifying Software Deployment with Puppet
By leveraging Puppet’s built-in package provider, you can automate the installation of software like Git across your infrastructure. Whether using local files or network shares, Puppet provides an efficient solution to manage software installations consistently. Moreover, by integrating Puppet into your broader DevOps practices with tools like ZippyOPS, you can further streamline your operations. If you need help with your automation processes or infrastructure management, reach out to ZippyOPS for expert consulting and managed services at sales@zippyops.com.



