Anisble 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?
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 on Windows. It’s one of the most popular 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.
There are also some paid products i.e 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 you might be interested in my free Ansible Training for Network Engineers
What is Ansible Playbook?
Ansible Playbooks are written in YAML. It is a text file that is used to tell Ansible what to automate. It is also a human readable file that contains a list of simple actions to perform when automation server or network tasks. An example of an Ansible Playbook to conifgure 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 18.104.22.168/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
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.
Check out this Ansible Tutorial to Backup a Cisco IOS Router Configuration