Redis es un almacén de estructura de datos en memoria, que se utiliza como una base de datos de clave-valor distribuida en memoria, caché y agente de mensajes, con durabilidad opcional. Redis admite diferentes tipos de estructuras de datos abstractos, como cadenas, listas, mapas, conjuntos, conjuntos ordenados, HyperLogLogs, mapas de bits, flujos e índices espaciales.
Ansible es una herramienta de implementación de aplicaciones, administración de configuración y aprovisionamiento de software de código abierto que habilita la infraestructura como código. Se ejecuta en muchos sistemas similares a Unix y puede configurar tanto sistemas similares a Unix como Microsoft Windows.
Contenido relacionado
- Uso de Ansible para instalar y configurar Redis 6 en Debian 11
- Cómo instalar y configurar Redis 6 en Ubuntu 20.04
- Cómo instalar y configurar Redis 6 en FreeBSD 13
- Cómo instalar y configurar Redis 6 en OpenSUSE Leap 15.3
- Cómo instalar y configurar Redis 6 en Fedora 34
Requisitos
Para seguir, asegúrese de tener:
- Un servidor Ubuntu 20.04 actualizado
- Acceso a Internet
- Acceso raíz al servidor o usuario con acceso sudo
Tabla de contenido
- Tareas de Ansible para garantizar que el servidor esté actualizado
- Instalando algunos paquetes comunes
- Configuración del repositorio de Redis 6
- Instalación del servidor Redis 6
- Configuración del servidor Redis 6
- Configuración de los controladores
- El manual completo para instalar y configurar Redis 6 en Ubuntu 20.04
1. Tareas de Ansible para garantizar que el servidor esté actualizado
Antes de continuar, asegurémonos de que el servidor esté actualizado usando estas tareas:
- name: Update apt repo and cache on all Debian/Ubuntu boxes
apt:
update_cache: yes
force_apt_get: yes
cache_valid_time: 3600
donde:
- update_cache:sí – Ejecute el equivalente del comando apt-get update en todos los servidores
- force_apt_get:sí – No use el comando aptitude, en su lugar use el comando apt-get en las cajas de Debian/Ubuntu
- cache_valid_time:3600 – Actualice el caché apt si es más antiguo que cache_valid_time. Esta opción se establece en segundos. En estos ejemplos, se establece en 3600 segundos.
Haciendo la actualización
- name: Upgrade all packages on servers
apt:
upgrade: dist
force_apt_get: yes
donde:
- actualizar:dist – Ejecute el equivalente del comando "apt-get upgrade" en todos los servidores Ubuntu o Debian Linux. En otras palabras, actualice todos los paquetes a la última versión.
- force_apt_get:sí – Utilice apt-get en lugar de aptitude.
2. Instalando algunos paquetes comunes
Use esto para instalar paquetes comunes. Se requiere el paquete gnugpg para configurar los repositorios en Ubuntu.
- name: Install required packages
apt:
name:
- gnupg
- vim
state: latest
3. Configuración de Redis 6 Repo
Puede instalar la última versión estable (versión 6) de Redis desde el packages.redis.io
oficial. repositorio APT. Agregue el repositorio a apt
index, actualícelo e instale:
- name: Set up Redis 6 repo
shell: |
curl https://packages.redis.io/gpg | sudo apt-key add -
echo "deb https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
4. Instale el servidor Redis 6
Ahora actualice el repositorio de caché e instale el servidor redis
- name: Install redis apt: name: redis-server update_cache: yes notify: - Enable Redis
Aquí estamos usando apt para actualizar primero el caché con update_cache:yes luego instalar redis-server y finalmente configurar un controlador para habilitar el redis-server
en el arranque.
5. Configuración del servidor Redis 6
A continuación, debemos configurar el servidor para que esté listo para la producción.
Agregue una línea para permitir que el servidor escriba en un archivo pid
- name: Set redis server pid file
lineinfile:
path: /etc/redis/redis.conf
regexp: "^pidfile"
line: "pidfile /var/run/redis/redis-server.pid"
notify:
- Restart Redis
En lo anterior, estamos actualizando el archivo de configuración de redis para agregar la línea pidfile /var/run/redis/redis-server.pid para que pueda escribir un archivo pid. También estamos configurando un controlador para reiniciar el servicio cuando el libro de jugadas termine de ejecutarse.
A continuación, configuremos una contraseña para nuestro servidor redis para aumentar la seguridad.
- name: Secure redis with a password
lineinfile:
dest: /etc/redis/redis.conf
regexp: '^(# )?requirepass \w*$'
line: 'requirepass {{ redis_password }}'
state: present
notify:
- Restart Redis
En lo anterior, estamos actualizando el archivo de configuración de redis para agregar la línea requirepass {{ redis_password }} por lo que puede configurar la contraseña para que sea el valor establecido. También estamos configurando un controlador para reiniciar el servicio cuando el libro de jugadas termine de ejecutarse.
Finalmente, vinculemos el servicio a 0.0.0.0 por lo que es accesible externamente usando bind 0.0.0.0
- name: Bind redis to 0.0.0.0
lineinfile:
dest: /etc/redis/redis.conf
regexp: '^bind \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b$'
line: 'bind 0.0.0.0'
state: present
notify:
- Restart Redis
6. Configuración de los controladores
Configuremos los controladores enumerados anteriormente. Los controladores son como tareas normales en un libro de jugadas de Ansible, pero se ejecutan solo si la tarea contiene una directiva de "notificación" . También indica que cambió algo.
handlers:
- name: Restart Redis
systemd:
name: redis-server
state: restarted
- name: Start Redis
systemd:
name: redis-server
state: started
- name: Stop Redis
systemd:
name: redis-server
state: stopped
- name: Enable Redis
systemd:
name: redis-server
enabled: yes
Esos controladores se ejecutarán después de las tareas para reiniciar y habilitar el servicio.
7. Todo el libro de jugadas para instalar y configurar Redis 6 en Ubuntu 20.04
Este es el último libro de jugadas. Tengo el archivo guardado como setup-redis-ubuntu.yaml
---
- name: Install and set up Redis 6 in Ubuntu 20.04
hosts: ubuntusrv
become: yes
gather_facts: False
vars:
redis_password: j2GfJuLFR8
tasks:
- name: Update apt repo and cache on all Debian/Ubuntu boxes
apt:
update_cache: yes
force_apt_get: yes
cache_valid_time: 3600
- name: Upgrade all packages on servers
apt:
upgrade: dist
force_apt_get: yes
- name: Set up Redis 6 repo
shell: |
curl https://packages.redis.io/gpg | sudo apt-key add -
echo "deb https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
- name: Install redis
apt:
name: redis
update_cache: yes
notify:
- Enable Redis
- name: Set redis server pid file
lineinfile:
path: /etc/redis/redis.conf
regexp: "^pidfile"
line: "pidfile /var/run/redis/redis-server.pid"
notify:
- Restart Redis
- name: Secure redis with a password
lineinfile:
dest: /etc/redis/redis.conf
regexp: '^(# )?requirepass \w*$'
line: 'requirepass {{ redis_password }}'
state: present
notify:
- Restart Redis
- name: Bind redis to 0.0.0.0
lineinfile:
dest: /etc/redis/redis.conf
regexp: '^bind \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b$'
line: 'bind 0.0.0.0'
state: present
notify:
- Restart Redis
handlers:
- name: Restart Redis
systemd:
name: redis-server
state: restarted
- name: Start Redis
systemd:
name: redis-server
state: started
- name: Stop Redis
systemd:
name: redis-server
state: stopped
- name: Enable Redis
systemd:
name: redis-server
enabled: yes
8. Creando el archivo de hosts
Crea un hosts.yaml
archivo con este contenido. Asegúrese de que puede conectarse al servidor agregado aquí.
all:
hosts:
ubuntusrv:
ansible_ssh_host: 10.2.11.10
ansible_ssh_user: ubuntu
8. Ejecutando el libro de jugadas
Necesita Ansible instalado localmente. Para instalar Ansible, puede usar el administrador de paquetes del sistema operativo o usar pip. Use este comando pip para instalar ansible:
pip install ansible
Para ejecutar el libro de jugadas, use este comando:
ansible-playbook -i hosts.yaml setup-redis-ubuntu.yaml -vv
Conclusión
En esta guía, aprendimos a usar ansible para instalar y configurar Redis 6 en Ubuntu 20.04.