GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo usar Ansible para instalar y configurar Redis 6 en Debian 11

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

  • Cómo instalar y configurar Redis 6 en Debian 11
  • Cómo usar Ansible para instalar y configurar Redis 6 en Ubuntu 20.04
  • 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 Debian actualizado
  • Acceso a Internet
  • Acceso raíz al servidor o usuario con acceso sudo

Tabla de contenido

  1. Tareas de Ansible para garantizar que el servidor esté actualizado
  2. Instalando algunos paquetes comunes
  3. Configuración del repositorio de Redis 6
  4. Instalación del servidor Redis 6
  5. Configuración del servidor Redis 6
  6. Configuración de los controladores
  7. El manual completo para instalar y configurar Redis 6 en Debian 11

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:

  1. update_cache:sí – Ejecute el equivalente del comando apt-get update en todos los servidores
  2. force_apt_get:sí – No use el comando aptitude, en su lugar use el comando apt-get en las cajas de Debian/Ubuntu
  3. 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:

  1. 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.
  2. 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 Debian.

- 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 instalando 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 requerir contraseña {{ 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 Debian 11

Este es el último libro de jugadas. Tengo el archivo guardado como setup-redis-debian.yaml

---
- name: Install and set up Redis 6 in Debian 11
  hosts: debiansrv
  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: Install required packages
      apt:
        name:
          - gnupg
          - vim
        state: latest

    - 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-server
        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:
    debiansrv:
      ansible_ssh_host: 10.2.11.10
      ansible_ssh_user: admin

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-debian.yaml -vv

Conclusión

En esta guía, aprendimos a usar ansible para instalar y configurar Redis 6 en Debian 11.


Debian
  1. Cómo instalar y configurar Redis 6.0 en Debian 11

  2. Cómo instalar y configurar Mariadb 10 en Debian 11

  3. Cómo instalar y configurar MongoDB 5 en Debian 11

  4. Cómo instalar y configurar Redis 6 en Debian 11

  5. Cómo instalar y configurar Redis en Debian

Cómo instalar y configurar Monit en Debian 9

Cómo configurar y usar Git en Debian

Cómo instalar y usar FFmpeg en Debian 11

Cómo instalar y usar Ansible en Debian 10

Cómo instalar y configurar Git en Debian 11

¿Cómo instalar y configurar Apache en Debian 11?