Redis è un archivio di strutture dati in memoria, utilizzato come database chiave-valore in memoria distribuito, cache e broker di messaggi, con durabilità opzionale. Redis supporta diversi tipi di strutture dati astratte, come stringhe, elenchi, mappe, insiemi, insiemi ordinati, HyperLogLog, bitmap, flussi e indici spaziali.
Ansible è uno strumento open source di fornitura di software, gestione della configurazione e distribuzione di applicazioni che abilita l'infrastruttura come codice. Funziona su molti sistemi simili a Unix e può configurare sia sistemi simili a Unix che Microsoft Windows.
Contenuti correlati
- Utilizzare Ansible per installare e configurare Redis 6 su Debian 11
- Come installare e configurare Redis 6 su Ubuntu 20.04
- Come installare e configurare Redis 6 su FreeBSD 13
- Come installare e configurare Redis 6 su OpenSUSE Leap 15.3
- Come installare e configurare Redis 6 su Fedora 34
Prerequisiti
Per seguire, assicurati di avere:
- Un server Ubuntu 20.04 aggiornato
- Accesso a Internet
- Accesso root al server o utente con accesso sudo
Indice dei contenuti
- Attività ansible per garantire che il server sia aggiornato
- Installazione di alcuni pacchetti comuni
- Configurazione del repository Redis 6
- Installazione del server Redis 6
- Configurazione del server Redis 6
- Impostazione dei gestori
- L'intero playbook per installare e configurare Redis 6 in Ubuntu 20.04
1. Attività ansible per garantire che il server sia aggiornato
Prima di procedere, assicuriamoci che il server sia aggiornato utilizzando queste attività:
- name: Update apt repo and cache on all Debian/Ubuntu boxes
apt:
update_cache: yes
force_apt_get: yes
cache_valid_time: 3600
Dove:
- update_cache:sì – Esegui l'equivalente del comando apt-get update su tutti i server
- force_apt_get:sì – Non utilizzare il comando aptitude, utilizza invece il comando apt-get su Debian/Ubuntu box
- cache_valid_time:3600 – Aggiorna la cache apt se è più vecchia di cache_valid_time. Questa opzione è impostata in secondi. In questi esempi, è impostato su 3600 secondi.
Fare l'aggiornamento
- name: Upgrade all packages on servers
apt:
upgrade: dist
force_apt_get: yes
Dove:
- aggiornamento:dist – Esegui l'equivalente del comando "apt-get upgrade" su tutti i server Ubuntu o Debian Linux. In altre parole, aggiorna tutti i pacchetti all'ultima versione.
- force_apt_get:sì – Usa apt-get invece di aptitude.
2. Installazione di alcuni pacchetti comuni
Usalo per installare i pacchetti comuni. Il pacchetto gnugpg è necessario per configurare i repository in Ubuntu.
- name: Install required packages
apt:
name:
- gnupg
- vim
state: latest
3. Configurazione di Redis 6 Repo
Puoi installare l'ultima versione stabile (versione 6) di Redis dal packages.redis.io
ufficiale Archivio APT. Aggiungi il repository a apt
indicizzalo, aggiornalo e installa:
- 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. Installa il server Redis 6
Ora aggiorna il repository della cache e installa il server redis
- name: Install redis apt: name: redis-server update_cache: yes notify: - Enable Redis
Qui stiamo usando apt per aggiornare prima la cache con update_cache:yes quindi installare redis-server e infine configurare un gestore per abilitare il redis-server
all'avvio.
5. Configurazione del server Redis 6
Successivamente dobbiamo configurare il server in modo che sia pronto per la produzione.
Aggiungi una riga per consentire al server di scrivere su un file 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
In quanto sopra, stiamo aggiornando il file di configurazione redis per aggiungere la riga pidfile /var/run/redis/redis-server.pid quindi può scrivere un file pid. Stiamo anche configurando un gestore per riavviare il servizio al termine dell'esecuzione del playbook.
Quindi, impostiamo una password per il nostro server redis per aumentare la sicurezza.
- name: Secure redis with a password
lineinfile:
dest: /etc/redis/redis.conf
regexp: '^(# )?requirepass \w*$'
line: 'requirepass {{ redis_password }}'
state: present
notify:
- Restart Redis
In quanto sopra, stiamo aggiornando il file di configurazione redis per aggiungere la riga requirepass {{ redis_password }} quindi può impostare la password come valore impostato. Stiamo anche configurando un gestore per riavviare il servizio al termine dell'esecuzione del playbook.
Infine, associamo il servizio a 0.0.0.0 quindi è accessibile esternamente utilizzando 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. Configurazione dei gestori
Impostiamo i gestori sopra elencati. I gestori sono come le normali attività in un playbook Ansible, ma vengono eseguiti solo se l'attività contiene una direttiva "notifica" . Indica anche che ha cambiato qualcosa.
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
Tali gestori verranno eseguiti dopo le attività per riavviare e abilitare il servizio.
7. L'intero playbook per installare e configurare Redis 6 in Ubuntu 20.04
Questo è il playbook finale. Ho salvato il file come 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. Creazione del file hosts
Crea un hosts.yaml
file con questo contenuto. Assicurati di poterti connettere al server aggiunto qui.
all:
hosts:
ubuntusrv:
ansible_ssh_host: 10.2.11.10
ansible_ssh_user: ubuntu
8. Esecuzione del playbook
Hai bisogno di Ansible installato localmente. Per installare Ansible, puoi utilizzare il gestore pacchetti del sistema operativo o usare pip. Usa questo comando pip per installare ansible:
pip install ansible
Per eseguire il playbook usa questo comando:
ansible-playbook -i hosts.yaml setup-redis-ubuntu.yaml -vv
Conclusione
In questa guida, abbiamo imparato come utilizzare ansible per installare e configurare Redis 6 in Ubuntu 20.04.