Ansible is an open source automation platform which was purchased by Red Hat in October 2015. It is used heavily by the server admin community for application deployment and to administer and deploy updates and patches to Linux servers.
In the last few years it has gained a great following from the network community who are now using it to administer and automate network operations across a wide variety of platforms.
Where did Ansible get it’s name from?
From Wikipedia – https://en.wikipedia.org/wiki/Ansible
An Ansible is a category of fictional device or technology capable of instantaneous or faster-than-light communication. It can send and receive messages to and from a corresponding device over any distance or obstacle whatsoever with no delay. The term Ansible is broadly shared across works of several science fiction authors, settings and continuities.
Is Ansible Free?
YES! Ansible is an open source software and thus free to use and can be downloaded and installed from a number of sources, it will currently only run on a Linux or Mac that has Python installed.
It will not run directly on Windows.
However you could install WSL2 (Windows Subsystem for Linux) and run Ansible on that.
It’s one of the most popula Devops tools in use today, saving you time performing repeatable tasks. Originally used for Linux servers and web services, but now gaining a massive following in the network automation community.
If you want to move into a supported model you need to look at Red Hat Ansible Automation Platform. You can license your nodes and get support and certified collections from Red Hat.
Ansible Engine a version of Ansible with full support from Red Hat and also Ansible Tower a GUI front end to drive Ansible core Ansible Tower is licensed on a per node basis.
But if you just want to download Ansible and use it for your home or production use - it is free to use.
Ansible Architecture Diagram
The architecture of Ansible is very simple, it consists of an Automation Engine, which is typically an install on a Linux host i.e Ubuntu, then then input into that Engine via a user in the form of a Playbook. You can also optionally have input from an external source i.e Github. Then the output is an SSH connection to the hosts you want to configure. Ansible is written in Python but you do not need to know Python to use it.
If you are a network engineer check out my Ansible Training for Network Engineers Course
What is an Ansible Playbook used for?
Ansible Playbooks are written in YAML. The playbook tells Ansible what to automate. It is also a human readable file that contains a list of simple actions to perform when automating server or network tasks.
An example of an Ansible Playbook to configure a Nexus Switch is shown below
--- - hosts: NEX-9K-Leaf-1 gather_facts: false connection: local tasks: - name: Configure RID Loopback Lo0 nxos_config: lines: - description "Configured by Ansible" - ip address 184.108.40.206/32 parents: interface loopback0 - name: Configure VTEP Loopback Lo1 nxos_config: lines: - description "Configured by Ansible" - ip address 100.100.100.2/32 parents: interface loopback1
What is Ansible Tower used for?
Ansible Tower is basically a GUI front end for Ansible, but it is much more than that.
- Role based access to allow certain users to run only specific tasks
- It hides credentials from certain users running playbooks
- Full logging of all playbook runs and output
- Scheduling of tasks
- Rest API functionality
- Tower dashboard giving you visibility of job runs / success/ failures
Is Ansible Tower Free?
Ansible Tower is free to use for up to 10 devices, however Ansible Tower is really a paid tool if you want to manage a network of any size.
If you are looking for free, keep reading.
What is Ansible AWX?
Ansible AWX is the open source upstream project for Tower. It is free to use and contains all the latest code and updates. However it is not supported by RedHat. If you want try out Tower for free then look at AWX.
If you want a fully supported enterprise automation platform then you should be looking at Tower.
There are many other open source network automation tools available that do similar jobs and to which Ansible is often compared to but they are all different and are suitable for different jobs. The list below shows some of the common comparisons
Ansible vs Jenkins
Ansible is not really a replacement for Jenkins it is actually a product you would use alongside Jenkins.
Jenkins is more of a continous pipeline engine
Ansible vs Docker
Ansible and Docker are two completely different things, I am not sure why the are often compared, but Docker is a container platform used to run multiple hosts (containers) on a single platform.
Ansible vs Puppet vs Chef
The closest comparison to Ansible are other two main automation tools, Puppet & Chef. Whilst they do a lot of things the same the main advantage that Ansible has over both these tools is that it is Agentless, so only requires an SSH connection to the target device.
Puppet & Chef require an agent to be installed on the target device. Whilst this is fine for server administration it does not work for most network hardware, which is why Ansible is fast becoming the network automation tool of choice for network engineers.
Ansible for Network Engineers
Ansible is a great tool for configuration management for network devices which makes it a great tool for network engineers.
Other Ansible posts:
- Ansible vs Python
- Ansible Tutorial to Backup a Cisco IOS Router Configuration
- Ansible Hosts File
- Ansible Network Automation Course
Can Ansible run on Windows?
The short answer is no. Ansible will only run on a linux based system, however if you want to run Ansible on Windows you can look to install the Windows subsystem for Linux or run a Virtual machine on your Windows device.