AnsiblePilot — Master Ansible Automation

AnsiblePilot is the leading resource for learning Ansible automation, DevOps, and infrastructure as code. Browse over 1,400 tutorials covering Ansible modules, playbooks, roles, collections, and real-world examples. Whether you are a beginner or an experienced engineer, our step-by-step guides help you automate Linux, Windows, cloud, containers, and network infrastructure.

Popular Topics

About Luca Berton

Luca Berton is an Ansible automation expert, author of 8 Ansible books published by Apress and Leanpub including "Ansible for VMware by Examples" and "Ansible for Kubernetes by Example", and creator of the Ansible Pilot YouTube channel. He shares practical automation knowledge through tutorials, books, and video courses to help IT professionals and DevOps engineers master infrastructure automation.

How to install Ansible in AlmaLinux 9 - Ansible install

By Luca Berton · Published 2024-01-01 · Category: installation

Updated 2026 guide to install Ansible on AlmaLinux 9. Complete instructions using EPEL, pip, or pipx.

How to install Ansible in AlmaLinux 9 - Ansible install

How to install Ansible in AlmaLinux version 9.

Today we’re going to talk about the easier way to install and maintain Ansible inside AlmaLinux 9 using the appstream system repository. I’m Luca Berton and welcome to today’s episode of Ansible Pilot.

See also: How to install Ansible in CentOS 8 Stream - Ansible install

How to install Ansible in AlmaLinux 9

ansible-core included in AppStream repository • ansible package not available

Today we’re talking about How to install Ansible in AlmaLinux 9.

The easier way to install and maintain up-to-date Ansible inside AlmaLinux version 9 is using the ansible-core package included in the AppStream distribution repository. Please notice that the package ansible isn’t available anymore. It’s not necessary to use the additional EPEL package repository.

See also: Ansible terminology - ansible vs ansible-core packages.

Links

AlmaLinux website

See also: How to install Ansible in CentOS 8 - Ansible install

Playbook

Let’s jump into a quick live Playbook of how to install the latest version of Ansible in AlmaLinux. I’m going to install the ansible-core package in an AlmaLinux 9 using the AppStream distribution repository.

code

• Install-Ansible-AlmaLinux9.sh
#!/bin/bash
sudo yum install ansible-core

execution

$ ssh devops@almalinux.example.com
[devops@almalinux ~]$ sudo su
[root@almalinux devops]# cat /etc/redhat-release 
AlmaLinux release 9.0 (Emerald Puma)
[root@almalinux devops]# cat /etc/os-release 
NAME="AlmaLinux"
VERSION="9.0 (Emerald Puma)"
ID="almalinux"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.0"
PLATFORM_ID="platform:el9"
PRETTY_NAME="AlmaLinux 9.0 (Emerald Puma)"
ANSI_COLOR="0;34"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:almalinux:almalinux:9::baseos"
HOME_URL="https://almalinux.org/"
DOCUMENTATION_URL="https://wiki.almalinux.org/"
BUG_REPORT_URL="https://bugs.almalinux.org/"
ALMALINUX_MANTISBT_PROJECT="AlmaLinux-9"
ALMALINUX_MANTISBT_PROJECT_VERSION="9.0"
REDHAT_SUPPORT_PRODUCT="AlmaLinux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.0"
[root@almalinux devops]# hostnamectl
 Static hostname: almalinux.example.com
       Icon name: computer-vm
         Chassis: vm 🖴
      Machine ID: 4a8ab0349b874d1b8294222deebd0f8e
         Boot ID: 3616b69bcbf8433d8d4e9eaa826dee67
  Virtualization: oracle
Operating System: AlmaLinux 9.0 (Emerald Puma)        
     CPE OS Name: cpe:/o:almalinux:almalinux:9::baseos
          Kernel: Linux 5.14.0-70.13.1.el9_0.x86_64
    Architecture: x86-64
 Hardware Vendor: innotek GmbH
  Hardware Model: VirtualBox
[root@almalinux devops]# uname -a
Linux almalinux.example.com 5.14.0-70.13.1.el9_0.x86_64 #1 SMP PREEMPT Tue May 17 15:53:11 EDT 2022 x86_64 x86_64 x86_64 GNU/Linux
[root@almalinux devops]# dnf search ansible
Last metadata expiration check: 16:31:06 ago on Mon Jul 11 14:56:03 2022.
============================================================================== Name & Summary Matched: ansible ==============================================================================
ansible-collection-microsoft-sql.noarch : The Ansible collection for Microsoft SQL Server management
ansible-collection-redhat-rhel_mgmt.noarch : Ansible Collection of general system management and utility modules and other plugins
ansible-freeipa-tests.noarch : ansible-freeipa tests
ansible-pcp.noarch : Ansible Metric collection for Performance Co-Pilot
ansible-test.x86_64 : Tool for testing ansible plugin and module code
=================================================================================== Name Matched: ansible ===================================================================================
ansible-core.x86_64 : SSH-based configuration management, deployment, and task execution system
ansible-freeipa.noarch : Roles and playbooks to deploy FreeIPA servers, replicas and clients
[root@almalinux devops]# dnf info ansible-core
Last metadata expiration check: 16:31:14 ago on Mon Jul 11 14:56:03 2022.
Available Packages
Name         : ansible-core
Version      : 2.12.2
Release      : 1.el9
Architecture : x86_64
Size         : 2.0 M
Source       : ansible-core-2.12.2-1.el9.src.rpm
Repository   : appstream
Summary      : SSH-based configuration management, deployment, and task execution system
URL          : http://ansible.com
License      : GPLv3+
Description  : Ansible is a radically simple model-driven configuration management,
             : multi-node deployment, and remote task execution system. Ansible works
             : over SSH and does not require any software or daemons to be installed
             : on remote nodes. Extension modules can be written in any language and
             : are transferred to managed machines automatically.
[root@almalinux devops]# dnf install ansible-core
Last metadata expiration check: 16:58:16 ago on Mon Jul 11 14:56:03 2022.
Dependencies resolved.
===================================================================================================
 Package                       Architecture    Version                    Repository          Size
===================================================================================================
Installing:
 ansible-core                  x86_64          2.12.2-1.el9               appstream          2.0 M
Installing dependencies:
 emacs-filesystem              noarch          1:27.2-6.el9               appstream          8.4 k
 git                           x86_64          2.31.1-2.el9.2             appstream          120 k
 git-core                      x86_64          2.31.1-2.el9.2             appstream          3.6 M
 git-core-doc                  noarch          2.31.1-2.el9.2             appstream          2.3 M
 perl-Error                    noarch          1:0.17029-7.el9            appstream           41 k
 perl-Git                      noarch          2.31.1-2.el9.2             appstream           42 k
 python3-babel                 noarch          2.9.1-2.el9                appstream          5.8 M
 python3-cffi                  x86_64          1.14.5-5.el9               appstream          241 k
 python3-cryptography          x86_64          36.0.1-1.el9_0             appstream          1.1 M
 python3-jinja2                noarch          2.11.3-4.el9               appstream          229 k
 python3-markupsafe            x86_64          1.1.1-12.el9               appstream           32 k
 python3-packaging             noarch          20.9-5.el9                 appstream           69 k
 python3-ply                   noarch          3.11-14.el9                appstream          103 k
 python3-pycparser             noarch          2.20-6.el9                 appstream          124 k
 python3-pytz                  noarch          2021.1-4.el9               appstream           48 k
 python3-resolvelib            noarch          0.5.4-5.el9                appstream           29 k
 python3-setuptools            noarch          53.0.0-10.el9              baseos             841 k
 sshpass                       x86_64          1.09-4.el9                 appstream           27 k
Transaction Summary
===================================================================================================
Install  19 Packages
Total download size: 17 M
Installed size: 80 M
Is this ok [y/N]: y
Downloading Packages:
(1/19): emacs-filesystem-27.2-6.el9.noarch.rpm                     428  B/s | 8.4 kB     00:20    
(2/19): git-2.31.1-2.el9.2.x86_64.rpm                              6.0 kB/s | 120 kB     00:20    
[MIRROR] git-core-2.31.1-2.el9.2.x86_64.rpm: Curl error (28): Timeout was reached for http://it2.mirror.vhosting-it.com/almalinux/9/AppStream/x86_64/os/Packages/git-core-2.31.1-2.el9.2.x86_64.rpm [Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds]
[MIRROR] git-core-doc-2.31.1-2.el9.2.noarch.rpm: Curl error (28): Timeout was reached for http://it2.mirror.vhosting-it.com/almalinux/9/AppStream/x86_64/os/Packages/git-core-doc-2.31.1-2.el9.2.noarch.rpm [Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds]
[MIRROR] ansible-core-2.12.2-1.el9.x86_64.rpm: Curl error (28): Timeout was reached for http://it2.mirror.vhosting-it.com/almalinux/9/AppStream/x86_64/os/Packages/ansible-core-2.12.2-1.el9.x86_64.rpm [Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds]
(3/19): ansible-core-2.12.2-1.el9.x86_64.rpm                        35 kB/s | 2.0 MB     00:58    
(4/19): perl-Error-0.17029-7.el9.noarch.rpm                        234 kB/s |  41 kB     00:00    
(5/19): git-core-doc-2.31.1-2.el9.2.noarch.rpm                      58 kB/s | 2.3 MB     00:40    
(6/19): perl-Git-2.31.1-2.el9.2.noarch.rpm                          23 kB/s |  42 kB     00:01    
(7/19): git-core-2.31.1-2.el9.2.x86_64.rpm                          91 kB/s | 3.6 MB     00:40    
(8/19): python3-cffi-1.14.5-5.el9.x86_64.rpm                       408 kB/s | 241 kB     00:00    
(9/19): python3-cryptography-36.0.1-1.el9_0.x86_64.rpm             1.8 MB/s | 1.1 MB     00:00    
(10/19): python3-markupsafe-1.1.1-12.el9.x86_64.rpm                225 kB/s |  32 kB     00:00    
(11/19): python3-jinja2-2.11.3-4.el9.noarch.rpm                    775 kB/s | 229 kB     00:00    
(12/19): python3-packaging-20.9-5.el9.noarch.rpm                   595 kB/s |  69 kB     00:00    
(13/19): python3-ply-3.11-14.el9.noarch.rpm                        598 kB/s | 103 kB     00:00    
(14/19): python3-pycparser-2.20-6.el9.noarch.rpm                   706 kB/s | 124 kB     00:00    
(15/19): python3-pytz-2021.1-4.el9.noarch.rpm                      270 kB/s |  48 kB     00:00    
(16/19): python3-resolvelib-0.5.4-5.el9.noarch.rpm                 207 kB/s |  29 kB     00:00    
(17/19): sshpass-1.09-4.el9.x86_64.rpm                             154 kB/s |  27 kB     00:00    
(18/19): python3-babel-2.9.1-2.el9.noarch.rpm                      2.1 MB/s | 5.8 MB     00:02    
(19/19): python3-setuptools-53.0.0-10.el9.noarch.rpm               161 kB/s | 841 kB     00:05    
---------------------------------------------------------------------------------------------------
Total                                                              249 kB/s |  17 MB     01:08     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                           1/1 
  Installing       : python3-setuptools-53.0.0-10.el9.noarch                                  1/19 
  Installing       : git-core-2.31.1-2.el9.2.x86_64                                           2/19 
  Installing       : git-core-doc-2.31.1-2.el9.2.noarch                                       3/19 
  Installing       : sshpass-1.09-4.el9.x86_64                                                4/19 
  Installing       : python3-resolvelib-0.5.4-5.el9.noarch                                    5/19 
  Installing       : python3-pytz-2021.1-4.el9.noarch                                         6/19 
  Installing       : python3-babel-2.9.1-2.el9.noarch                                         7/19 
  Installing       : python3-ply-3.11-14.el9.noarch                                           8/19 
  Installing       : python3-pycparser-2.20-6.el9.noarch                                      9/19 
  Installing       : python3-cffi-1.14.5-5.el9.x86_64                                        10/19 
  Installing       : python3-cryptography-36.0.1-1.el9_0.x86_64                              11/19 
  Installing       : python3-packaging-20.9-5.el9.noarch                                     12/19 
  Installing       : python3-markupsafe-1.1.1-12.el9.x86_64                                  13/19 
  Installing       : python3-jinja2-2.11.3-4.el9.noarch                                      14/19 
  Installing       : perl-Error-1:0.17029-7.el9.noarch                                       15/19 
  Installing       : emacs-filesystem-1:27.2-6.el9.noarch                                    16/19 
  Installing       : perl-Git-2.31.1-2.el9.2.noarch                                          17/19 
  Installing       : git-2.31.1-2.el9.2.x86_64                                               18/19 
  Installing       : ansible-core-2.12.2-1.el9.x86_64                                        19/19 
  Running scriptlet: ansible-core-2.12.2-1.el9.x86_64                                        19/19 
  Verifying        : ansible-core-2.12.2-1.el9.x86_64                                         1/19 
  Verifying        : emacs-filesystem-1:27.2-6.el9.noarch                                     2/19 
  Verifying        : git-2.31.1-2.el9.2.x86_64                                                3/19 
  Verifying        : git-core-2.31.1-2.el9.2.x86_64                                           4/19 
  Verifying        : git-core-doc-2.31.1-2.el9.2.noarch                                       5/19 
  Verifying        : perl-Error-1:0.17029-7.el9.noarch                                        6/19 
  Verifying        : perl-Git-2.31.1-2.el9.2.noarch                                           7/19 
  Verifying        : python3-babel-2.9.1-2.el9.noarch                                         8/19 
  Verifying        : python3-cffi-1.14.5-5.el9.x86_64                                         9/19 
  Verifying        : python3-cryptography-36.0.1-1.el9_0.x86_64                              10/19 
  Verifying        : python3-jinja2-2.11.3-4.el9.noarch                                      11/19 
  Verifying        : python3-markupsafe-1.1.1-12.el9.x86_64                                  12/19 
  Verifying        : python3-packaging-20.9-5.el9.noarch                                     13/19 
  Verifying        : python3-ply-3.11-14.el9.noarch                                          14/19 
  Verifying        : python3-pycparser-2.20-6.el9.noarch                                     15/19 
  Verifying        : python3-pytz-2021.1-4.el9.noarch                                        16/19 
  Verifying        : python3-resolvelib-0.5.4-5.el9.noarch                                   17/19 
  Verifying        : sshpass-1.09-4.el9.x86_64                                               18/19 
  Verifying        : python3-setuptools-53.0.0-10.el9.noarch                                 19/19
Installed:
  ansible-core-2.12.2-1.el9.x86_64              emacs-filesystem-1:27.2-6.el9.noarch              
  git-2.31.1-2.el9.2.x86_64                     git-core-2.31.1-2.el9.2.x86_64                    
  git-core-doc-2.31.1-2.el9.2.noarch            perl-Error-1:0.17029-7.el9.noarch                 
  perl-Git-2.31.1-2.el9.2.noarch                python3-babel-2.9.1-2.el9.noarch                  
  python3-cffi-1.14.5-5.el9.x86_64              python3-cryptography-36.0.1-1.el9_0.x86_64        
  python3-jinja2-2.11.3-4.el9.noarch            python3-markupsafe-1.1.1-12.el9.x86_64            
  python3-packaging-20.9-5.el9.noarch           python3-ply-3.11-14.el9.noarch                    
  python3-pycparser-2.20-6.el9.noarch           python3-pytz-2021.1-4.el9.noarch                  
  python3-resolvelib-0.5.4-5.el9.noarch         python3-setuptools-53.0.0-10.el9.noarch           
  sshpass-1.09-4.el9.x86_64
Complete!
[root@almalinux devops]# ansible --version
ansible [core 2.12.2]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.9/site-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /bin/ansible
  python version = 3.9.10 (main, Feb  9 2022, 00:00:00) [GCC 11.2.1 20220127 (Red Hat 11.2.1-9)]
  jinja version = 2.11.3
  libyaml = True

before execution

# dnf info ansible-core
Last metadata expiration check: 16:31:14 ago on Mon Jul 11 14:56:03 2022.
Available Packages
Name         : ansible-core
Version      : 2.12.2
Release      : 1.el9
Architecture : x86_64
Size         : 2.0 M
Source       : ansible-core-2.12.2-1.el9.src.rpm
Repository   : appstream
Summary      : SSH-based configuration management, deployment, and task execution system
URL          : http://ansible.com
License      : GPLv3+
Description  : Ansible is a radically simple model-driven configuration management,
             : multi-node deployment, and remote task execution system. Ansible works
             : over SSH and does not require any software or daemons to be installed
             : on remote nodes. Extension modules can be written in any language and
             : are transferred to managed machines automatically.

after execution

# dnf info ansible-core
Last metadata expiration check: 17:00:09 ago on Mon Jul 11 14:56:03 2022.
Installed Packages
Name         : ansible-core
Version      : 2.12.2
Release      : 1.el9
Architecture : x86_64
Size         : 9.3 M
Source       : ansible-core-2.12.2-1.el9.src.rpm
Repository   : @System
From repo    : appstream
Summary      : SSH-based configuration management, deployment, and task execution system
URL          : http://ansible.com
License      : GPLv3+
Description  : Ansible is a radically simple model-driven configuration management,
             : multi-node deployment, and remote task execution system. Ansible works
             : over SSH and does not require any software or daemons to be installed
             : on remote nodes. Extension modules can be written in any language and
             : are transferred to managed machines automatically.

code with ❤️ in GitHub

Conclusion

Now you know how to install the latest version of Ansible in AlmaLinux using the AppStream repository.

See also: How to install Ansible in Oracle Linux 9 - Ansible install

Related Articles

dynamic config with Ansible templatestructuring playbooks with Ansible roles

Category: installation

Watch the video: How to install Ansible in AlmaLinux 9 - Ansible install — Video Tutorial

Browse all Ansible tutorials · AnsiblePilot Home