How to install Ansible on a different Linux distribution

AnsibleAnsibleBeginner
Practice Now

Introduction

Ansible is a powerful open-source IT automation tool that allows you to manage your infrastructure, deploy applications, and automate various tasks across multiple systems. In this tutorial, we will guide you through the process of installing Ansible on different Linux distributions, helping you get started with this versatile tool.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ansible(("`Ansible`")) -.-> ansible/AnsibleSetupandConfigurationGroup(["`Ansible Setup and Configuration`"]) ansible(("`Ansible`")) -.-> ansible/InventoryManagementGroup(["`Inventory Management`"]) ansible(("`Ansible`")) -.-> ansible/PlaybookEssentialsGroup(["`Playbook Essentials`"]) ansible/AnsibleSetupandConfigurationGroup -.-> ansible/install("`Ansible Setup`") ansible/InventoryManagementGroup -.-> ansible/groups_inventory("`Define Inventory Groups`") ansible/InventoryManagementGroup -.-> ansible/host_variables("`Set Host Variables`") ansible/PlaybookEssentialsGroup -.-> ansible/playbook("`Execute Playbook`") ansible/PlaybookEssentialsGroup -.-> ansible/roles("`Assign Roles`") subgraph Lab Skills ansible/install -.-> lab-414853{{"`How to install Ansible on a different Linux distribution`"}} ansible/groups_inventory -.-> lab-414853{{"`How to install Ansible on a different Linux distribution`"}} ansible/host_variables -.-> lab-414853{{"`How to install Ansible on a different Linux distribution`"}} ansible/playbook -.-> lab-414853{{"`How to install Ansible on a different Linux distribution`"}} ansible/roles -.-> lab-414853{{"`How to install Ansible on a different Linux distribution`"}} end

Introduction to Ansible

Ansible is a powerful open-source automation tool that simplifies the process of managing and configuring multiple systems. It is designed to be easy to use, agentless, and highly scalable, making it an excellent choice for IT professionals and DevOps teams.

What is Ansible?

Ansible is a configuration management and deployment tool that allows you to automate various tasks, such as software installation, system configuration, and application deployment, across multiple servers or hosts. It uses a simple, human-readable language called YAML to define and execute tasks, making it easy to understand and maintain.

Key Features of Ansible

  • Agentless Architecture: Ansible does not require any additional software or agents to be installed on the managed hosts, making it lightweight and easy to set up.
  • Declarative Approach: Ansible uses a declarative approach, where you define the desired state of your infrastructure, and Ansible takes care of the necessary steps to achieve that state.
  • Idempotency: Ansible's tasks are idempotent, meaning that they can be executed multiple times without changing the final outcome, ensuring consistent and predictable results.
  • Modular Design: Ansible is built on a modular design, allowing you to extend its functionality by using pre-built modules or creating your own custom modules.
  • Scalability: Ansible can manage a large number of hosts simultaneously, making it suitable for both small and large-scale environments.

Use Cases for Ansible

Ansible can be used in a wide range of scenarios, including:

  • Configuration Management: Ansible can be used to manage the configuration of servers, applications, and services, ensuring consistency across your infrastructure.
  • Application Deployment: Ansible can automate the deployment of applications and their dependencies, streamlining the delivery process.
  • Orchestration: Ansible can be used to orchestrate complex workflows, such as rolling updates or blue-green deployments, across multiple systems.
  • Provisioning: Ansible can be used to provision new infrastructure, such as virtual machines or cloud resources, in a consistent and repeatable manner.

Getting Started with Ansible

To get started with Ansible, you'll need to install it on a control node, which is the machine from which you'll run your Ansible commands. Here's an example of how to install Ansible on an Ubuntu 22.04 system:

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install ansible

Once Ansible is installed, you can start creating and running your first playbooks to automate tasks across your infrastructure.

Installing Ansible on Different Linux Distributions

Ansible can be installed on various Linux distributions, including Ubuntu, CentOS, RHEL, Debian, and Fedora. In this section, we will cover the installation process for some of the most popular Linux distributions.

Installing Ansible on Ubuntu

To install Ansible on an Ubuntu 22.04 system, you can use the following steps:

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install ansible

Installing Ansible on CentOS/RHEL

To install Ansible on a CentOS or RHEL system, you can use the following steps:

sudo yum install epel-release
sudo yum install ansible

Installing Ansible on Debian

To install Ansible on a Debian system, you can use the following steps:

sudo apt update
sudo apt install software-properties-common
sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo apt install ansible

Installing Ansible on Fedora

To install Ansible on a Fedora system, you can use the following steps:

sudo dnf install ansible

After installing Ansible, you can verify the installation by running the following command:

ansible --version

This should display the version of Ansible installed on your system.

Getting Started with Ansible Playbooks

Ansible Playbooks are the core of Ansible's functionality, allowing you to define and execute tasks across your infrastructure. In this section, we'll explore the basics of creating and running Ansible Playbooks.

What are Ansible Playbooks?

Ansible Playbooks are YAML-based files that define the desired state of your infrastructure. They consist of one or more "plays," which are collections of "tasks" that Ansible will execute on the target hosts.

Creating an Ansible Playbook

Here's an example of a simple Ansible Playbook that installs the Apache web server on an Ubuntu 22.04 system:

- hosts: webservers
  tasks:
    - name: Install Apache
      apt:
        name: apache2
        state: present
    - name: Start Apache
      service:
        name: apache2
        state: started
        enabled: yes

In this Playbook:

  • hosts: webservers specifies the target hosts for the play.
  • tasks: defines the list of tasks to be executed.
  • The first task installs the Apache web server using the apt module.
  • The second task starts the Apache service and ensures it is enabled to start automatically on system boot.

Running an Ansible Playbook

To run the Ansible Playbook, you can use the following command:

ansible-playbook webserver.yml

This will execute the Playbook and apply the specified tasks to the target hosts.

Ansible Modules

Ansible provides a wide range of built-in modules that you can use to perform various tasks, such as managing packages, files, services, and more. You can find the complete list of available modules in the Ansible Module Index.

Ansible Roles

As your infrastructure grows, you can organize your Playbooks into reusable "roles" to promote modularity and maintainability. Roles allow you to encapsulate related tasks, variables, and files into a self-contained unit that can be easily shared and applied across multiple Playbooks.

By mastering the creation and execution of Ansible Playbooks, you can automate a wide range of tasks and streamline the management of your infrastructure.

Summary

By the end of this tutorial, you will have a solid understanding of how to install Ansible on various Linux distributions, from Ubuntu to CentOS, and be ready to start automating your infrastructure using Ansible playbooks. Mastering Ansible will empower you to streamline your IT operations, improve efficiency, and reduce the risk of manual errors.

Other Ansible Tutorials you may like