List Of Free IT Automation Tools

About IT Automation Tools

A specific tools are required when we talk about continuous deployment or IT automation. Currently, we need to be able to build reproducible artifacts and a reproducible infrastructure which we can rapidly manage. Puppet, Jenkins and CFEngine ones from the most important free deployment tools will be outlined in this article.


Puppet is a free and open source configuration management system in computing field. You can use it either with many Unix-like systems or Microsoft Windows. To add, it has its own declarative language for the description of your system configuration.

Open source Puppet enables users to check the state of their IT infrastructure and also to correct the state automatically if there are some problems. With just few servers or even with thousands of physical and virtual machines, Puppet does the manual sysadmins tasks automatically.


In 2005, the first version of Puppet was created by Puppet Labs and CEO Luke Kanies in order to help administrators to do their tasks automatically and then reduce human errors. The basic idea was to make an easy to use configuration system. In fact, Puppet language is declarative rather to be procedural one. You can define which operating systems should be running rather to defining the steps to follow them while making their configurations. This tool is simple and easy to use. So even others can use it not only sysadmins or developers. Puppet is written in Ruby, and comprises a configuration language to write manifests and modules.

With the major of the current distros, Puppet packages must be available if it isn’t the case just search and install the missing one. While you are working with Puppet, you are using different resources such as: users, packages, files, services … and each resource is used for a specific goal. Some of them could be found on the language resource guide on the Puppet Labs site.

If you are working with a just one system, so Puppet will be used to execute a manifest which has different instructions describing how each resource could be configured or manipulated. For local system, you will find also with Puppet a shell that helps to configure such system.

To summarize: Puppet is an open source system used to centralize and standardize the configuration and the administration of your systems. This can be desktop systems, workstations, servers, or others. You can also use Puppet with different OS. It’s licensed under the GNU General Public License.


Jenkins also is an open source tool but written in Java. It provides a continuous integration services for software development. It is a server based system which supports SCM tools including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, Clearcase and RTC.  Jenkins was originally developed as the Hudson project. It enables users to monitor executions of repeated tasks, especially: building/testing software projects continuously and monitoring executions of externally run jobs.


Among its features, we can list the following:

  • It is characterized by its easy installation, no additional install and no database. You just need Java.
  • It is also characterized by its easy configuration. Indeed, it could be entirely configured from the web GUI so no need to adjust XML manually.
  • This tool can generate a several of changes made into the build from Subversion/CVS
  • You will have a clean and readable URLs
  • You will receive notifications and e-mails while there are some problems
  • You can also write plugins to make it supports your tools using by your group

Concerning its plugins they could be found written in other languages than Java. They are used to integrate Jenkins with several version of control systems and big databases.

As part of its installation as a package, there is no special configuration required. As part of its installation as a War file deployed in Tomcat, it is necessary to do as follow:

  • First, create the directory / usr / share / tomcat6 / jenkins-work and assign the rights and groups from tomcat6
  • Then edit the file /etc/init.d/tomcat6 and check that the TOMCAT6_SECURITY parameter has the value “no”.
  • Next, edit the / etc / default / tomcat6 and within the JAVA_OPTS variable, add the option -DJENKINS_HOME = / usr / share / tomcat6 / jenkins-work
  • Restart finally Tomcat


It is our third open source system listed in this article. It is written by Mark Burgess and it is basically used to provide automated configuration and maintenance of computer systems: such as the desktops, consumer and industrial devices, mobile smartphones and tablet computers.

It is used in both large and small companies, as well as in many universities and governmental institutions. It deploys a model-based configuration which changes across 50,000 servers in 5 minutes.


It is actually significantly older than Puppet, dating back to 1993, like Puppet, started out as an open-source configuration management tool, not an enterprise Configuration Management product. It wasn’t commercialized in 2008. CFEngine has been described as the grandfather of configuration management tools. It runs on C, as opposed to Puppet’s use of Ruby.


With those tools mentioned above, nowadays, people are able to maintain and configure their systems rapidly and remotely. Depending on the users need, one of those tool may be the suitable solution for them