For network automation, I believe the best tool out there right now is Ansible. Ansible is open-source, agentless, has a large community, and is easy to get started quickly. For the major networking vendors, there are already pre-built modules making it simple to interface with their equipment. This post will focus on getting Ansible up and running on a Ubuntu 16.04 server (in three steps), and following posts will show how to use Ansible to automate network configuration.
Assuming this is a fresh install, first install 'software-properties-common':
sudo apt-get install software-properties-common
Then add Ansible's PPA (Personal Project Archive) to Ubuntu:
sudo apt-add-repository ppa:ansible/ansible
Update the package lists and install Ansible:
sudo apt-get update && sudo apt-get install ansible
And that's it, your Ansible installation is complete!
The Ansible installation should have included python, verify it is installed:
You can also verify the version of Ansible installed:
Ansible Getting Started: https://www.ansible.com/get-started
Network Modules: http://docs.ansible.com/ansible/latest/list_of_network_modules.html