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.

Features

  • Provisioning
  • Configuration management
  • Application deployment
  • Security and compliance
  • Orchestration

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:

  • Simple — simple syntax written in YAML called playbooks. YAML is a human-readable data serialization language, is very simple, and does not need coding skills.
  • Agentless — completely agentless. There are no agents/software or additional firewall ports that you need to install on the client systems or hosts which you want to automate. You do not have to separately setup a management infrastructure which includes managing your entire systems, network, and storage.
  • Powerful and flexible — powerful features that can enable you to model even the most complex IT workflows including end-to-end configuration automation from bare metal switches
  • Efficient — no extra software on your server means more resources for your applications

Ansible Terms

  • Control machine — machine where Ansible is installed (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)

See Ansible playbooks to learn how to OpenSwitch OPX uses playbooks.

Clone this wiki locally