|
|
---
- name: Add APT key for Redis repository
apt_key:
url: https://packages.redis.io/gpg
- name: Add Redis APT repository
apt_repository:
repo: deb https://packages.redis.io/deb bookworm main
- name: Install Redis
apt:
name:
- redis={{ redis_version }}
- redis-server={{ redis_version }}
- redis-tools={{ redis_version }}
- name: Remove redis-server from init.d (may conflict with systemd service)
file:
path: /etc/init.d/redis-server
state: absent
when: is_docker
- name: Update rc.d to reflect init.d removal
command:
cmd: update-rc.d redis-server remove
when: is_docker
- name: Stop redis-server service installed through APT (if any)
systemd_service:
name: redis-server
state: stopped
enabled: false
ignore_errors: true
- name: Create group for redis user
group:
name: redis
- name: Create redis user
user:
name: redis
group: redis
create_home: false
- name: Create /run/redis
file:
path: /run/redis
state: directory
owner: redis
group: redis
mode: 0755
- name: Create /var/lib/redis
file:
path: /var/lib/redis
state: directory
owner: redis
group: redis
mode: 0700
- name: Create /var/log/redis
file:
path: /var/log/redis
state: directory
owner: redis
group: redis
mode: 0744
- name: Create Redis configuration file
template:
src: redis.conf.jinja2
dest: /etc/redis.conf
owner: redis
group: redis
mode: 0600
- name: Create Redis service file
copy:
src: redis.service
dest: /etc/systemd/system/redis.service
owner: root
group: root
mode: 0644
- name: Add service file for disabling transparent hugepage
copy:
src: transparent_hugepage.service
dest: /etc/systemd/system/transparent_hugepage.service
owner: root
group: root
mode: 0644
- name: Check if transparent hugepage is currently enabled
command:
cmd: cat /sys/kernel/mm/transparent_hugepage/enabled
register: transparent_hugepage
changed_when: false
- name: Start and enable "disable transparent hugepage" service
systemd_service:
name: transparent_hugepage.service
state: started
enabled: true
when: "'[never]' not in transparent_hugepage.stdout"
ignore_errors: "{{ is_docker }}"
- name: Check if kernel overcommit mode is already set
command:
cmd: sysctl -n vm.overcommit_memory
register: overcommit_memory
changed_when: false
- name: Set kernel overcommit mode temporarily (recommended by Redis)
command:
cmd: sysctl vm.overcommit_memory=1
when: overcommit_memory.stdout == "0"
ignore_errors: "{{ is_docker }}"
- name: Make kernel overcommit mode permanent (recommended by Redis, requires restart)
lineinfile:
path: /etc/sysctl.conf
line: vm.overcommit_memory = 1
ignore_errors: "{{ is_docker }}"
- name: Start and enable redis service
systemd_service:
name: redis
state: started
enabled: true
|