What is Ansible?
Ansible is an open source platform for automating configuration management, service orchestration, cloud provisioning, and application deployment in multi-tiered IT environments. Ansible is "agentless", using SSH to push changes from a single source to multiple remote resources. Commands can be invoked either ad hoc on the command line or via "playbooks" written in YAML (YAML Ain't Markup Language), a Unicode-based, human-readable, and computationally powerful data serialization language (for more on YAML, see the YAML website).
Each Ansible playbook contains a series of "plays" that describe an automated process. Each play consists of a sequence of "tasks" that launch small programs called "modules" on a specified set of resources in your environment. Ansible has a core library of more than 200 modules for handling most common system administration processes, but users can write their own custom modules using any programming language that supports file I/O and output to standard out (e.g., C++, Python, and Ruby, among others). For more about Ansible modules, see the Module Index and Developing Modules pages on the Ansible Documentation website.
The Extreme Science and Engineering Environment (XSEDE) Cyberinfrastructure Resource Integration (XCRI) team provides an Ansible installation script and several Ansible playbooks designed to help deploy full-featured science clusters built with the XSEDE Compatible Basic Cluster (XCBC) suite or the XSEDE National Integration Toolkit (XNIT) repository. Currently, Ansible playbooks are available for installing a Globus Connect server, configuring the TORQUE resource manager, installing and updating XNIT packages, and building an OpenHPC-based cluster. To get the XCRI team's Ansible installation script and playbooks, see the XSEDE XCBC_Ansible software page. For installation instructions, see the Installation page on the Ansible Documentation website.