redis as utility

This commit is contained in:
marito 2025-06-16 17:03:50 +08:00
parent ecd2f7aa61
commit cd3aafe684
4 changed files with 41 additions and 10 deletions

View File

@ -5,9 +5,11 @@
# Optional developer utilities # Optional developer utilities
utilities: utilities:
phpmyadmin: phpmyadmin:
enabled: true enabled: false
domain: "pma.lenvi.local" # Or whatever you prefer domain: "pma.lenvi.local" # Or whatever you prefer
php_version: "8.2" php_version: "8.2" # This must be one of the php version/s you set on your sites/projects
redis:
enabled: false
# 1. Set the global database engine. # 1. Set the global database engine.
db_engine: "mariadb" # mariadb, mysql or postgresql db_engine: "mariadb" # mariadb, mysql or postgresql
@ -20,23 +22,25 @@ db_credentials:
# 3. Define all your web sites below. # 3. Define all your web sites below.
# WSL users: Ensure these paths are correct for your WSL environment. # WSL users: Ensure these paths are correct for your WSL environment.
# If your project directory is on windows filesystem use /mnt/c i.e., /mnt/c/Users/YourUser/projects/laravel # If your project directory is on windows filesystem use /mnt/c i.e., /mnt/c/Users/YourUser/projects/laravel
# project_root -> root directory of your project
# document_root -> directory where your index.php lives
sites: sites:
# Example for a standard Laravel project # Example for a standard Laravel project
- domain: mylaravelapp.local - domain: mylaravelapp.local
project_root: /home/lenvi/projects/laravel # For Composer project_root: /home/lenvi/projects/laravel
document_root: /home/lenvi/projects/laravel/public # For Nginx document_root: /home/lenvi/projects/laravel/public
php_version: "8.2" php_version: "8.2"
database: "laravel_db" database: "laravel_db"
# Example for a legacy project or a non-Laravel PHP project # Example for a legacy project or a non-Laravel PHP project
- domain: local-api.domain.com - domain: mylegacyapp.local
project_root: /home/lenvi/projects/legacy-site # For Composer project_root: /home/lenvi/projects/legacy-site
document_root: /home/lenvi/projects/legacy-site # Nginx serves from the root document_root: /home/lenvi/projects/legacy-site
php_version: "8.0" php_version: "8.0"
database: "legacy_db" database: "legacy_db"
# Example for a simple site (no DB) # Example for a simple site (no DB)
- domain: phpmyadmin.local - domain: simple.local
project_root: /home/lenvi/projects/phpmyadmin # Directory for management project_root: /home/lenvi/projects/simple
document_root: /home/lenvi/projects/phpmyadmin # Nginx serves from the root document_root: /home/lenvi/projects/simple
php_version: "8.3" php_version: "8.3"

View File

@ -19,4 +19,6 @@
- role: nginx - role: nginx
- role: phpmyadmin - role: phpmyadmin
when: utilities.phpmyadmin.enabled is defined and utilities.phpmyadmin.enabled when: utilities.phpmyadmin.enabled is defined and utilities.phpmyadmin.enabled
- role: redis
when: utilities.redis.enabled is defined and utilities.redis.enabled
- role: projects - role: projects

View File

@ -0,0 +1,6 @@
---
- name: "Restart PHP-FPM Services for Redis"
ansible.builtin.service:
name: "php{{ item }}-fpm"
state: restarted
loop: "{{ php_versions_to_install }}"

View File

@ -0,0 +1,19 @@
---
- name: "Install Redis Server from APT"
ansible.builtin.apt:
name: redis-server
state: present
update_cache: yes
- name: "Ensure Redis service is running and enabled"
ansible.builtin.service:
name: redis-server
state: started
enabled: yes
- name: "Install Redis PHP extension for all managed PHP versions"
ansible.builtin.apt:
name: "php{{ item }}-redis"
state: present
loop: "{{ php_versions_to_install }}"
notify: Restart PHP-FPM Services for Redis