This guide provides a full Ansible playbook to install CMake on Debian 10+, Ubuntu LTS, and RHEL 9+ compatible systems.
- name: Install CMake
hosts: cmake
become: true
vars:
cmake_min_version: "3.20" # Optional: minimum version requirement
tasks:
- name: Install CMake on Debian/Ubuntu
apt:
name:
- cmake
- build-essential
state: present
update_cache: true
when: ansible_os_family == "Debian"
- name: Install CMake on RHEL family
dnf:
name:
- cmake
- gcc
- gcc-c++
- make
state: present
when: ansible_os_family == "RedHat"
- name: Verify CMake is available
command: "cmake --version"
register: cmake_version
changed_when: false
failed_when: false
- name: Show detected CMake version
debug:
var: cmake_version.stdout_lines
- name: Check minimum CMake version
assert:
that:
- cmake_version.stdout is version(cmake_min_version, '>=')
fail_msg: "CMake version {{ cmake_version.stdout }} is less than required {{ cmake_min_version }}"
success_msg: "CMake version {{ cmake_version.stdout }} meets minimum requirement"
when: cmake_min_version is defined
For newer CMake versions than distro packages provide:
- name: Install latest CMake from Kitware repository
hosts: cmake
become: true
tasks:
- name: Install prerequisites (Debian/Ubuntu)
apt:
name:
- apt-transport-https
- ca-certificates
- gnupg
- curl
state: present
when: ansible_os_family == "Debian"
- name: Add Kitware APT key
apt_key:
url: https://apt.kitware.com/keys/kitware-archive-latest.asc
state: present
when: ansible_os_family == "Debian"
- name: Add Kitware APT repository
apt_repository:
repo: "deb https://apt.kitware.com/ubuntu/ {{ ansible_distribution_release }} main"
state: present
update_cache: true
when: ansible_os_family == "Debian"
- name: Install CMake from Kitware repo
apt:
name: cmake
state: present
update_cache: true
when: ansible_os_family == "Debian"
Beyond this playbook, we offer:
Contact our automation team: office@linux-server-admin.com
References: