.. _introduction_to_ansible:

***********************
Introduction to Ansible
***********************

Ansible provides open-source automation that reduces complexity and runs everywhere.
Using Ansible lets you automate virtually any task.
Here are some common use cases for Ansible:

* Eliminate repetition and simplify workflows
* Manage and maintain system configuration
* Continuously deploy complex software
* Perform zero-downtime rolling updates

Ansible uses simple, human-readable scripts called playbooks to automate your tasks.
You declare the desired state of a local or remote system in your playbook.
Ansible ensures that the system remains in that state.

As automation technology, Ansible is designed around the following principles:

Agent-less architecture
    Low maintenance overhead by avoiding the installation of additional software across IT infrastructure.

Simplicity
    Automation playbooks use straightforward YAML syntax for code that reads like documentation. Ansible is also decentralized, using SSH with existing OS credentials to access to remote machines.

Scalability and flexibility
    Easily and quickly scale the systems you automate through a modular design that supports a large range of operating systems, cloud platforms, and network devices.

Idempotence and predictability
    When the system is in the state your playbook describes, Ansible does not change anything, even if the playbook runs multiple times.

Ready to start using Ansible?
:ref:`Get up and running in a few easy steps<get_started_ansible>`.
