If you’ve got many hosts to manage, it’s time to automate configuration management by installing Ansible! Ansible is the most popular automation tool to manage configuration changes across your on-prem and cloud resources.
In this article, you’re going to learn from the ground up how to download and install an Ansible controller host on Ubuntu, RHEL, and macOS. You’ll also get a jump start on running your first commands!
This tutorial will use v2.9.20 of Ansible but the process to set up Ansible on a controller host should be near identical for later versions.
Let’s get started!
Table of Contents
Installing Ansible on Ubuntu
You can install Ansible on any *nix-based operating system. One of the most popular choices out there is Ubuntu. Let’s kick off this tutorial and go through a walkthrough on how to make it happen.
If you’d like to set up Ansible on Ubuntu, this section is going to assume you have an Ubuntu 18+ machine with Python2 or higher installed. This tutorial will be using Ubuntu 18.04.5 LTS with Python3.
1. Connect to your soon-to-be Ansible controller on an Ubuntu host with your favorite SSH client.
2. Ansible is stored as a package that can be downloaded and installed via the apt package manager. To ensure apt can find the proper source and download any dependent packages run
sudo apt update
The apt or apt-get command installs the packages from apt software repositories configured in Ubuntu.
3. Continue preparing apt to download and install Ansible by installing the
sudo apt install software-properties-common
sudo apt install software-properties-common
4. Next, add the
ansible/ansible personal package archive (PPA) as an apt repository. This repository is managed by Red Hat, not by Ubuntu sources, so you must add it manually.
sudo apt-add-repository --yes --update ppa:ansible/ansible
5. Now, install the ansible package by running the
apt install command
sudo apt install ansible
6. When complete, confirm Ansible is installed by running the
ansible --version command. If all is well
Installing Ansible on RHEL
If you plan to follow this section, ensure you have an RHEL release 8+ host (this tutorial will use RHEL 8.3 (Ootpa).
1. Connect to your RHEL host via SSH with your favorite SSH client.
2. Install the
python3 package with dnf. Ansible works with Python2, but this tutorial will be using Python3 because Python2 is soon to be considered legacy.
sudo dnf install python3 python3-pip -y
3. Install the Extra Packages for Enterprise Linux (EPEL) repository. The EPEL repository contains various system packages including the Ansible package which you will install in the next step.
sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
4. Once you’ve installed the repository, install the Ansible package by referencing the required EPEL repository and the package’s name (
ansible). The dnf utility will automatically download the latest version of Ansible.
sudo dnf install --enablerepo epel-playground ansible
5. Now, check to ensure Ansible has been installed successfully by running
Installing Ansible on CentOS
Rounding out the *nix hosts, let’s end with setting up Ansible on CentOS.
If you plan to follow this section, ensure you have a CentOS 7+ host with Python2 or higher installed (this tutorial will use CentOS 7.9.2009 Core).
1. Connect to your CentOS host via SSH with your favorite SSH client.
2. Install the Extra Packages for Enterprise Linux (EPEL) repository. The EPEL repository contains various system packages, including the Ansible package, which you will install in the next step.
# Installing the epel-release package using the yum command yum install epel-release yum install epel-release
The yum command installs and manages software by using the official Red Hat software repositories, as well as other third-party repositories.
3. Once the repository is complete, install the Ansible package.
sudo yum install ansible
4. Now, confirm Ansible is installed by running
Installing Ansible on macOS
So far, you have learned how to set up Ansible on various Linux distros. Let’s finish out this tutorial by learning how to install Ansible on a Mac.
This section of the tutorial will focus on the popular macOS package manager called Homebrew. Homebrew is the easiest way to install Ansible on macOS. This tutorial will be using Homebrew v3.0.7 on macOS Catalina.
If you’d like to learn how to install Ansible via the popular Python package manager pip, check out the Ansible pip package.
To install on macOS:
- Open up the Apple Terminal.
- Run the following command to invoke Homebrew to download and install Ansible on your Mac.
brew install ansible
- Once complete, verify Ansible is installed by running
$ ansible --version ansible 2.7.5 config file = None configured module search path = ['/Users/shanky/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/local/Cellar/ansible/2.7.5/libexec/lib/python3.7/site-packages/ansible executable location = /usr/local/bin/ansible python version = 3.7.2 (default, April 13 2021, 07:35:52) [Clang 10.0.0 (clang-1000.11.45.5)]
Testing Out Ansible by Running Ad-Hoc Commands
Now that Ansible is installed, it’s not doing much good unless you actually use it! One of the easiest ways to get started with Ansible is to learn about ad hoc commands. Ad hoc commands are one-off usually single-line commands that the Ansible invokes on remote computers (or on the Ansible host in this example).
Run an ad-hoc command on your operating system of choice by using the
-m switch. The
-m switch specifies an Ansible module that contains various functionality.
One of the simplest Ansible modules is the ping module. This module tests connectivity between the Ansible controller and a host. If you don’t have any remote hosts available, provide the name of the Ansible controller itself (
localhost) to run the ping module against.
ansible localhost -m ping
If successful, you should see green output indicating success!
In this tutorial, you learned how to set up the most widely used automation tool, Ansible, on Ubuntu, RHEL, CentOS, and macOS.
Now that you have a new Ansible controller host set up, what do you plan to manage with it?
More from Adam The Automator & Friends
Find out how many of your Active Directory users are using leaked passwords by running a free read-only scan with Specops Password Auditor.
Do more with PowerShell and transform your Code to Self Service with au2mator Self Service Portal
Why not write on a platform with an existing audience and share your knowledge with the world?