Ansible: Popular Alternatives

Ansible enables automation at scale and is a vendor-agnostic open-source software. Additionally, it allows you to work with a wide variety of operating systems, devices, and platforms. But, there is usually more than one way. This post will look at some of the popular Ansible alternatives.

Click here to see our Ansible Infographic for a quick summary.

Infrastructure as code

Firstly, let’s begin with the concept of “Infrastructure as Code”. Infrastructure as Code is an approach to manage your entire IT infrastructure. You do this using a single set of instructions in the form of code. Infrastructure as Code is also referred to as a declarative state of infrastructure. In other words, you declare how your infrastructure is supposed to be by design.

Infrastructure as code tools takes care of configuring your infrastructure regardless of brand. For example, you can define that you would like to have a front-end and database server. Additionally, you can define the specific requirements for each server. Thus we can say that Infrastructure as Code will abstract the complicated bits making it easier for you.

Chef

Chef is a configuration automation tool that is built on Ruby DSL. It allows you to customize your automation scripts based on your specific needs. You call Chef’s scripts “cookbooks,” which is like Ansible’s playbooks. This tool is great for automating a complex configuration of your server infrastructure.

There are also many mechanisms to retrieve your servers’ current state and configuration. This is beneficial for configuration state comparison and audit. But, Chef could be challenging for those who are not familiar with Ruby. Also, Chef requires you to install an agent on the server to perform the tasks. In contrast, Ansible is agentless, and it is using SSH to connect to the node and execute tasks.

Puppet

Puppet is another configuration tool. It is superb in doing a complex configuration at scale. One of Puppet’s advantages over Ansible is the error detection mechanism. YAML seems like an easy language for writing automation tasks. But, every human is prone to making mistakes. Puppet is not going to compile the catalog if it detects a syntax error. Ansible will only detect it once it hits a specific task that holds an error. This could be particularly annoying. Thus, Ansible could execute all receding tasks and leave the job half done. Both Ansible and Puppet tools have GUI. Ansible’s GUI version (Ansible Tower) is a paid software version. Puppet’s GUI version is free.

There is one critical differentiator that gives a considerable advantage to Ansible. Chef, Puppet requires an agent to be installed on the managed machine. Ansible is agentless using the SSH management protocol. This is better to automate your network infrastructure.

Terraform

Terraform is often considered an alternative to Ansible. But, these two tools solve different automation problems. Terraform is a provisioning tool. Ansible can also provision servers. Terraform is better because it has a robust mechanism to manage configuration inconsistencies. If you are familiar with the AWS CloudFormation service, Terraform is like it in many ways.

Another key differentiator is that Terraform creates immutable infrastructure. Ansible, Puppet, and Chef deal with mutable infrastructures.

Let’s have a look at the following example to understand what it means. Let’s say you have an application v2.0 installed on your servers. Your task is to deploy v2.2 on all your nodes.

In mutable infrastructure, the change will be applied in-place. So, the tool will uninstall v2.0 and install v2.2. Conversely, immutable infrastructure will remove the server with version 2.0. And will deploy a new server with v2.2.

That is another point to show that Terraform is a provisioning tool by design. This feature allows you to put in place a declarative state of your infrastructure. (Thus, Infrastructure as Code). In contrast, Ansible’s playbooks are procedural. That is to say that the tasks are sequential. In comparison, Terraform describes how the entire infrastructure should be. Terraform is usually used to provision virtual servers in real-world automation deployments. And, you use Ansible for configuration within the servers. Thus, these two tools co-exist and complement one another.

Frequently asked questions

What other alternatives are there for Ansible?

There are many alternatives to Ansible. These include but are not limited to Bamboo, CircleCI, Jenkins, Gitlab CI, and Puppet. Others include CFEngine, Codenvy, GoCD, PowerShell DSC. As well as Rudder, SaltStack, Semaphore, Shippable, Travis CI, Wrecker, and much more.

What are Ansible Alternatives for Windows?

Ansible has many alternatives for Windows. Your popular open-source alternatives are Chef, Puppet Terraform, and SaltStack.

Can Ansible manage Windows?

Ansible can manage and execute core functions in Windows environments. These include security updates to remote management.

Will Ansible work on Windows?

Ansible must run on Linux. But, this will not prevent Windows administrators from using it. Read more about this in Matt Davis’s blog.

Wrapping up

You can Ansible fits into a wide variety of environments. Furthermore, you can use Ansible in the Cloud or on-premise. Additionally, Ansible enables automation at scale and is a vendor-agnostic open-source software. It allows you to work with a wide variety of operating systems, devices, and platforms. But, it is not the only automation tool. It has several alternatives that might be more suitable for some specific use cases.

  • Agent or Agentless,
  • Mutable or Immutable infrastructure,
  • Procedural or declarative
  • Language and syntax,
  • Price,
  • Usability,
  • Community and contributors,
  • Configuration management or provisioning tool.

Learn more about ansible

Do you want to learn more about Ansible? If so, then follow one of these topics:

You may also be interested in



About the Authors

Anto's editorial team loves the cloud as much as you! Each member of Anto's editorial team is a Cloud expert in their own right. Anto Online takes great pride in helping fellow Cloud enthusiasts. Let us know if you have an excellent idea for the next topic! Contact Anto Online if you want to contribute.

Support the Cause

Support Anto Online and buy us a coffee. Anything is possible with coffee and code.

Buy me a coffee



About Anto Online

Having started his career in 1999 as a Desktop Support Engineer, Anto soon changed paths and became a developer. After several years of development experience, he transitioned into a consultant. As an enterprise application consultant for a leading SaaS software provider, Anto specializes in AWS's serverless technologies. By day, Anto focuses on helping customers leverage the power of serverless technologies. By night, he indulges his passion for cloud computing by playing with Python and trying out things that are currently beyond the scope of his work. Sometimes Anto needs help as there are not enough hours at night. So Anto relies on a team of fellow Cloud enthusiasts to help him out. Each one is a Cloud expert in their own right, and Anto takes great pride in helping them learn and grow.

View all posts by Anto Online →

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.