Skip to content

Ansible

Amy Buck edited this page Oct 30, 2017 · 37 revisions

Ansible

Ansible is a helpful tool that allows you to create groups of machines, describe how these machines should be configured, or what actions should be taken on them. Ansible issues all commands from a central location to perform these task.

No other client software is installed on the node machines. Ansible uses SSH to connect to the nodes, and only needs to be installed a a control machine (the machine from which you run commands). It is a simple solution to a complicated problem.

Terminology

  • Control machine — machine where Ansible is installed. This control machine is responsible for running provisioning on servers you are managing.
  • Inventory — an initialization file that contains information about the servers you are managing
  • Playbook — entry point for Ansible provisioning where the automation is defined through tasks using YAML format
  • Task — a block that defines a single procedure to be run (such as installing a package)
  • Module — typically abstracts a system task (such as dealing with packages or creating and changing files)
  • Role — a pre-defined way of organizing playbooks and other files to facilitate sharing and reusing ports of provisioning
  • Facts — global variables containing information about the system (such as network interfaces or operating systems)
  • Handlers — triggers service status changes (such as restarting or stopping a service)

Benefits

Ansible modules allow organizations to use open source tools to minimize costly engineering overhead, and help reduce the time and effort required to design, provision, and manage networks:

  • Agentless — no new software to install on your switches
  • Powerful — end-to-end configuration automation from bare metal switches
  • Flexible — full support of Ansible model for networking commands, configuration, and facts
Clone this wiki locally