

Ansible is an open-source automation tool that allows you to automate tasks across multiple servers. Ansible System Roles are pre-written Ansible playbooks that are designed to automate the installation, configuration, and management of specific services and applications on Linux systems.
By using Ansible System Roles, you can automate the deployment of various applications and services like Apache, MySQL, Nginx, PostgreSQL, and many more. In this guide, we will walk you through the steps to automate Linux systems with Ansible System Roles.
Prerequisites#
Before we start, you need to have Ansible installed on your system. You can install Ansible by running the following command:
sudo apt-get install ansiblebashStep 1: Create a Playbook#
The first step in automating Linux systems with Ansible System Roles is to create a playbook. A playbook is a file that contains a set of instructions that Ansible will execute on your servers.
To create a playbook, create a file with a .yml extension and add the following code:
---
- name: Install Apache
hosts: webservers
become: true
roles:
- geerlingguy.apacheyamlIn the above code, we have specified the name of the playbook, the hosts on which the playbook will be executed, and the Ansible System Role that we want to use for installing Apache. In this case, we are using the geerlingguy.apache System Role.
Step 2: Define Hosts#
The next step is to define the hosts on which you want to execute the playbook. You can define hosts in the /etc/ansible/hosts file. Open the file with your favorite text editor and add the following code:
[webservers]
server1.example.com
server2.example.comjsonIn the above code, we have defined a group of hosts with the name webservers and added two servers to the group.
Step 3: Execute the Playbook#
Now that we have created the playbook and defined the hosts, we can execute the playbook by running the following command:
ansible-playbook playbook.ymlbashIn the above command, playbook.yml is the name of the playbook that we created in Step 1.
Example 1: Install Nginx#
To install Nginx using Ansible System Roles, create a playbook with the following code:
---
- name: Install Nginx
hosts: webservers
become: true
roles:
- geerlingguy.nginxyamlIn the above code, we are using the geerlingguy.nginx System Role to install Nginx.
Example 2: Install MySQL#
To install MySQL using Ansible System Roles, create a playbook with the following code:
---
- name: Install MySQL
hosts: databases
become: true
roles:
- geerlingguy.mysqlyamlIn the above code, we are using the geerlingguy.mysql System Role to install MySQL.
Example 3: Install PostgreSQL#
To install PostgreSQL using Ansible System Roles, create a playbook with the following code:
---
- name: Install PostgreSQL
hosts: databases
become: true
roles:
- geerlingguy.postgresqlyamlIn the above code, we are using the geerlingguy.postgresql System Role to install PostgreSQL.
Example 4: Install Redis#
To install Redis using Ansible System Roles, create a playbook with the following code:
---
- name: Install Redis
hosts: cacheservers
become: true
roles:
- geerlingguy.redisyamlIn the above code, we are using the geerlingguy.redis System Role to install Redis.
Example 5: Install Docker#
To install Docker using Ansible System Roles, create a playbook with the following code:
---
- name: Install Docker
hosts: dockerservers
become: true
roles:
- geerlingguy.dockeryamlIn the above code, we are using the geerlingguy.docker System Role to install Docker.
Conclusion#
In this guide, we have shown you how to automate Linux systems with Ansible System Roles. By using Ansible System Roles, you can easily automate the deployment of various applications and services on your Linux servers. With the examples provided in this guide, you can now start automating your Linux systems with Ansible System Roles.