Ansible Documentation
About Ansible
Ansible is an IT automation tool. It can configure systems, deploy software, and orchestrate more advanced IT tasks such as continuous deployments or zero downtime rolling updates.
Ansible’s main goals are simplicity and ease-of-use. It also has a strong focus on security and reliability, featuring a minimum of moving parts, usage of OpenSSH for transport (with other transports and pull modes as alternatives), and a language that is designed around auditability by humans–even those not familiar with the program.
We believe simplicity is relevant to all sizes of environments, so we design for busy users of all types: developers, sysadmins, release engineers, IT managers, and everyone in between. Ansible is appropriate for managing all environments, from small setups with a handful of instances to enterprise environments with many thousands of instances.
You can learn more at AnsibleFest, the annual event for all Ansible contributors, users, and customers hosted by Red Hat. AnsibleFest is the place to connect with others, learn new skills, and find a new friend to automate with.
Ansible manages machines in an agent-less manner. There is never a question of how to upgrade remote daemons or the problem of not being able to manage systems because daemons are uninstalled. Also, security exposure is greatly reduced because Ansible uses OpenSSH — the open source connectivity tool for remote login with the SSH (Secure Shell) protocol.
Ansible is decentralized–it relies on your existing OS credentials to control access to remote machines. And if needed, Ansible can easily connect with Kerberos, LDAP, and other centralized authentication management systems.
This documentation covers the version of Ansible noted in the upper left corner of this page. We maintain multiple versions of Ansible and the Ansible documentation, so please be sure you are using the documentation version that covers the version of Ansible you are using. For recent features, we note the version of Ansible where the feature was added.
Ansible releases a new major release approximately twice a year. The core application evolves somewhat conservatively, valuing simplicity in language design and setup. Contributors develop and change modules and plugins hosted in collections since version 2.10 much more quickly.
- Installation Guide
- Ansible Porting Guides
- Ansible 6 Porting Guide
- Ansible 5 Porting Guide
- Ansible 4 Porting Guide
- Ansible 3 Porting Guide
- Ansible 2.10 Porting Guide
- Ansible 2.9 Porting Guide
- Ansible 2.8 Porting Guide
- Ansible 2.7 Porting Guide
- Ansible 2.6 Porting Guide
- Ansible 2.5 Porting Guide
- Ansible 2.4 Porting Guide
- Ansible 2.3 Porting Guide
- Ansible 2.0 Porting Guide
- Ansible Community Guide
- Ansible Collections Contributor Guide
- The Ansible Collections Development Cycle
- Requesting changes to a collection
- Creating your first collection pull request
- Testing Collection Contributions
- Review checklist for collection PRs
- Guidelines for collection maintainers
- Contributing to Ansible-maintained Collections
- Ansible Community Steering Committee
- Contributing to the Ansible Documentation
- Other Tools and Programs
- Popular editors
- Development tools
- Tools for validating playbooks
- Other tools
- Working with the Ansible collection repositories
- ansible-core Contributors Guide
- Advanced Contributor Guide
- Ansible documentation style guide
- Developer Guide
- Adding modules and plugins locally
- Should you develop a module?
- Developing modules
- Contributing your module to an existing Ansible collection
- Conventions, tips, and pitfalls
- Ansible and Python 3
- Debugging modules
- Module format and documentation
- Windows module development walkthrough
- Developing Cisco ACI modules
- Guidelines for Ansible Amazon AWS module development
- OpenStack Ansible Modules
- oVirt Ansible Modules
- Guidelines for VMware module development
- Guidelines for VMware REST module development
- Creating a new collection
- Testing Ansible
- The lifecycle of an Ansible module or plugin
- Developing plugins
- Developing dynamic inventory
- Developing
ansible-core
- Ansible module architecture
- Python API
- Rebasing a pull request
- Using and developing module utilities
- Developing collections
- Migrating Roles to Roles in Collections on Galaxy
- Collection Galaxy metadata structure
- Ansible architecture
- Collection Index
- Indexes of all modules and plugins
- Playbook Keywords
- Return Values
- Ansible Configuration Settings
- Controlling how Ansible behaves: precedence rules
- YAML Syntax
- Python 3 Support
- Interpreter Discovery
- Releases and maintenance
- Testing Strategies
- Sanity Tests
- Frequently Asked Questions
- Glossary
- Ansible Reference: Module Utilities
- Special Variables
- Red Hat Ansible Automation Platform
- Ansible Automation Hub
- Logging Ansible output