This guide provides a full Ansible playbook to install Gearman with distro-aware package handling and baseline service configuration for Debian 10+, Ubuntu LTS, and RHEL 9+ compatible systems.
- name: Install Gearman Job Server
hosts: gearman
become: true
vars:
gearman_config_dir: /etc/gearman
gearman_port: 4730
gearman_listen_addr: "0.0.0.0"
tasks:
- name: Install Gearman (Debian/Ubuntu)
apt:
name:
- gearman-job-server
state: present
update_cache: true
when: ansible_os_family == "Debian"
- name: Install Gearman (RHEL family)
dnf:
name:
- gearmand
state: present
enablerepo: epel
when: ansible_os_family == "RedHat"
- name: Create configuration directory
file:
path: "{{ gearman_config_dir }}"
state: directory
mode: "0755"
owner: root
group: root
- name: Configure Gearman (Debian/Ubuntu)
lineinfile:
path: /etc/default/gearman-job-server
regexp: "^{{ item.key }}="
line: "{{ item.key }}={{ item.value }}"
loop:
- { key: 'START', value: 'yes' }
- { key: 'GEARMAN_OPTS', value: '-L {{ gearman_listen_addr }} -p {{ gearman_port }}' }
when: ansible_os_family == "Debian"
- name: Enable and start Gearman
service:
name: gearman-job-server
state: started
enabled: true
when: ansible_os_family == "Debian"
- name: Enable and start Gearman (RHEL)
service:
name: gearmand
state: started
enabled: true
when: ansible_os_family == "RedHat"
- name: Verify Gearman is running
command: "gearmand --version"
register: gearman_version
changed_when: false
failed_when: false
- name: Show Gearman version
debug:
var: gearman_version.stdout
gearman-job-server on Debian/Ubuntu, gearmand on RHEL| Variable | Default | Description |
|---|---|---|
gearman_config_dir |
/etc/gearman |
Configuration directory |
gearman_port |
4730 |
Listening port |
gearman_listen_addr |
0.0.0.0 |
Listen address |
Any questions?
Feel free to contact us. Find all contact information on our contact page.