You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

129 lines
2.9 KiB

  1. ---
  2. - name: Add APT key for Redis repository
  3. apt_key:
  4. url: https://packages.redis.io/gpg
  5. - name: Add Redis APT repository
  6. apt_repository:
  7. repo: deb https://packages.redis.io/deb bookworm main
  8. - name: Install Redis
  9. apt:
  10. name:
  11. - redis={{ redis_version }}
  12. - redis-server={{ redis_version }}
  13. - redis-tools={{ redis_version }}
  14. - name: Remove redis-server from init.d (may conflict with systemd service)
  15. file:
  16. path: /etc/init.d/redis-server
  17. state: absent
  18. when: is_docker
  19. - name: Update rc.d to reflect init.d removal
  20. command:
  21. cmd: update-rc.d redis-server remove
  22. when: is_docker
  23. - name: Stop redis-server service installed through APT (if any)
  24. systemd_service:
  25. name: redis-server
  26. state: stopped
  27. enabled: false
  28. ignore_errors: true
  29. - name: Create group for redis user
  30. group:
  31. name: redis
  32. - name: Create redis user
  33. user:
  34. name: redis
  35. group: redis
  36. create_home: false
  37. - name: Create /run/redis
  38. file:
  39. path: /run/redis
  40. state: directory
  41. owner: redis
  42. group: redis
  43. mode: 0755
  44. - name: Create /var/lib/redis
  45. file:
  46. path: /var/lib/redis
  47. state: directory
  48. owner: redis
  49. group: redis
  50. mode: 0700
  51. - name: Create /var/log/redis
  52. file:
  53. path: /var/log/redis
  54. state: directory
  55. owner: redis
  56. group: redis
  57. mode: 0744
  58. - name: Create Redis configuration file
  59. template:
  60. src: redis.conf.jinja2
  61. dest: /etc/redis.conf
  62. owner: redis
  63. group: redis
  64. mode: 0600
  65. - name: Create Redis service file
  66. copy:
  67. src: redis.service
  68. dest: /etc/systemd/system/redis.service
  69. owner: root
  70. group: root
  71. mode: 0644
  72. - name: Add service file for disabling transparent hugepage
  73. copy:
  74. src: transparent_hugepage.service
  75. dest: /etc/systemd/system/transparent_hugepage.service
  76. owner: root
  77. group: root
  78. mode: 0644
  79. - name: Check if transparent hugepage is currently enabled
  80. command:
  81. cmd: cat /sys/kernel/mm/transparent_hugepage/enabled
  82. register: transparent_hugepage
  83. changed_when: false
  84. - name: Start and enable "disable transparent hugepage" service
  85. systemd_service:
  86. name: transparent_hugepage.service
  87. state: started
  88. enabled: true
  89. when: "'[never]' not in transparent_hugepage.stdout"
  90. ignore_errors: "{{ is_docker }}"
  91. - name: Check if kernel overcommit mode is already set
  92. command:
  93. cmd: sysctl -n vm.overcommit_memory
  94. register: overcommit_memory
  95. changed_when: false
  96. - name: Set kernel overcommit mode temporarily (recommended by Redis)
  97. command:
  98. cmd: sysctl vm.overcommit_memory=1
  99. when: overcommit_memory.stdout == "0"
  100. ignore_errors: "{{ is_docker }}"
  101. - name: Make kernel overcommit mode permanent (recommended by Redis, requires restart)
  102. lineinfile:
  103. path: /etc/sysctl.conf
  104. line: vm.overcommit_memory = 1
  105. ignore_errors: "{{ is_docker }}"
  106. - name: Start and enable redis service
  107. systemd_service:
  108. name: redis
  109. state: started
  110. enabled: true