Do you configure multiple servers with similar software configuration stacks? Imagine the time you’d save if you automated those redundant tasks. Ansible can help you find out. With Ansible automation software you can define to-do task lists to deploy and manage remote servers from a central workstation or web server.
What is Ansible?
Ansible, by Red Hat, is designed to provide an easy-to-use framework for managing deployments with a minimal learning curve. You don’t need to learn a programming language. Files are human-readable with documentation and examples within configuration files. Users at all experience levels can quickly get started with our Ansible installation guide.
Ansible is scalable with new integrations and modules being developed regularly. This, along with its ability to connect with Kerberos and other authentication protocols, enables you to automate more tasks and focus on your goals.
There are only three requirements for the control (management) node:
- A workstation or server with Secure Shell (SSH) access, available with our Cloud VPS and Dedicated Hosting plans
- Python version 2.7 or 3.5+
- CentOS, Debian, Arch, BSD, or other Unix-based Operating System (OS), or macOS
Other IT automation solutions require database management and/or a dedicated server for module management. Ansible is agentless and decentralized as your local machine credentials handle remote server management.
Save computer resources and manage Ansible automation with our CentOS, Ubuntu, or Debian Cloud VPS Hosting plans.
How Does Ansible Work?
A basic Ansible installation works with these basic components in YAML syntax:
An Ansible playbook details a deployable configuration for remote hosts. Within each set of plays, each task runs a module, with variables if needed, on a target node in sequential order.
Ansible Modules are small programs with commands which add functions to your deployment. Ansible runs modules on the target node and removes them afterwards. If a module runs more than once, only new changes are made to conserve network resources.
For example, a WordPress playbook might include tasks with separate modules to install WordPress, specific plugins, and themes with variables specifying the domain, username credentials, and plugin settings.
There are three ways to execute Ansible modules:
- Stand-alone Ansible commands
- Within playbook tasks
- Within a playbook inside a role.
Playbook tasks can use Ansible roles with modules, variables, files, and handlers to complete a complex task on a target machine within your inventory. Roles merge modules into custom packages for easier management, debugging, and reuse among multiple playbooks. Using a role means you only need to make changes in that package instead of every playbook using the module manually. This is especially helpful if you use roles from the Ansible Galaxy community.
For example, one Ansible role may include modules to install WordPress and WP-CLI. A second plugins role might install two security plugins (e.g. WP Cerber Security and Black Bad Queries). If you update WP Cerber settings in the plugins role, you don’t need to edit any playbooks using the role.
The Ansible inventory file lists all external hosts you’ll deploy to and their assigned groups. Hosts can be a fully qualified domain name (FQDN), server hostname, or public server IP address. It also defines the default user to manage connections (e.g. root admin users). The Ansible inventory file can be defined in YAML or plaintext (INI format).
By default, each Ansible playbook uses secure shell (SSH) to connect with nodes in your inventory. There are other options available.
An Ansible container is a quick installation with the required files to run Ansible on a control machine. It’s not the only way to install Ansible but a container for your web server OS allows you to quickly start managing deployments on any online server. We recommend using a virtual private network (VPN) on public networks.
Galaxy is the Ansible community where users share roles they’ve created for others’ free use. You can use these roles in playbooks to enhance security, monitoring, database performance, and more. Get started with community-developed Ansible roles at Galaxy.Ansible.com.
Follow our Ansible Education Channel to learn more about IT automation.