Installer RethinkDB sur Debian
RethinkDB est une base de données temps réel communiquant avec les applications en utilisant le format JSON.
Ce guide est testé sur:
- Debian 9.0 Stretch
Ce guide est testé avec ces versions de RethinkDB:
- 2.3.5
Paramètres
Déterminez le nom de l'instance:
instanceName='default'
Déterminez le port de base pour l'interface d'administration:
httpAdminPort=28080
Déterminez le chemin des données de l'instance:
varPath="/var/lib/rethinkdb/instances.d/${instanceName}/data"
Déterminez le chemin des journaux de l'instance:
logPath="/var/log/rethinkdb"
Déterminez le décalage des ports de l'instance (pour éviter les conflits de ports avec les instances existantes):
portOffset=0
if [[ -d '/etc/rethinkdb/instances.d/' ]]; then
portOffset=$(command ls -1 '/etc/rethinkdb/instances.d' | command wc -l)
fi
Installation
Détectez le proxy de commande (command ou sudo):
cmdProxy='command'
command type -f 'sudo' &>'/dev/null' && cmdProxy='sudo'
Mise en place des dépôts
Installez les prérequis d'installation:
${cmdProxy} apt-get install lsb-release
Récupérez le nom de la distribution:
debianVersion="$(${cmdProxy} lsb_release -cs)"
Ajoutez les dépôts Debian-Updates à la configuration Apt:
${cmdProxy} tee "/etc/apt/sources.list.d/rethinkdb.list" \
<<< "# RethinkDB for ${debianVersion}
deb http://download.rethinkdb.com/apt ${debianVersion} main"
Installez la clef de signature du dépôt:
command wget -qO- "https://download.rethinkdb.com/apt/pubkey.gpg" \
| ${cmdProxy} apt-key add -
Mettez à jour la liste des paquets disponibles:
${cmdProxy} apt-get update
Installation du logiciel
Installez le paquet libprotobuf9v5:
command wget "http://mirrors.kernel.org/ubuntu/pool/main/p/protobuf/libprotobuf9v5_2.6.1-1.3_amd64.deb" \
--output-document="/tmp/libprotobuf9v5_2.6.1-1.3_amd64.deb"
${cmdProxy} dpkg -i "/tmp/libprotobuf9v5_2.6.1-1.3_amd64.deb"
Installez le logiciel:
${cmdProxy} apt-get install rethinkdb sudo
Configurez logrotate pour gérer la rotation des journaux:
${cmdProxy} tee '/etc/logrotate.d/rethinkdb' <<< \
"# Logrotate configuration file for rethinkdb \"${logPath}/*.log\" { weekly missingok rotate 12 copytruncate compress
delaycompress create 644 rethinkdb rethinkdb
su rethinkdb rethinkdb
}"
Configuration du logiciel
Mettez en place une instance du serveur:
${cmdProxy} cp "/etc/rethinkdb/default.conf.sample" "/etc/rethinkdb/instances.d/${instanceName}.conf"
Créez la structure de données de l'instance:
sudo mkdir -p "$(dirname "${varPath}")"
sudo rethinkdb create -d "${varPath}"
sudo chown -R rethinkdb:rethinkdb "${varPath}"
Créez le chemin de stockage des fichiers pid de l'instance:
${cmdProxy} mkdir -p "/var/run/rethinkdb/${instanceName}"
${cmdProxy} chown rethinkdb:rethinkdb "/var/run/rethinkdb/${instanceName}"
Créez le chemin de stockage des fichiers journaux:
${cmdProxy} mkdir -p "${logPath}"
${cmdProxy} chown rethinkdb:adm "${logPath}"
Configurez l'instance:
${cmdProxy} sed -i \
-e "s|^[# \t]*runuser=.*$|runuser=rethinkdb|" \
-e "s|^[# \t]*rungroup=.*$|rungroup=rethinkdb|" \
-e "s|^[# \t]*pid-file=.*$|pid-file=/var/run/rethinkdb/${instanceName}/pid_file|" \
-e "s|^[# \t]*directory=.*$|directory=${varPath}|" \
-e "s|^[# \t]*log-file=.*$|log-file=${logPath}/${instanceName}.log|" \
-e "s|^[# \t]*port-offset=.*$|port-offset=${portOffset}|" \
-e "s|^[# \t]*http-port=.*$|http-port=${httpAdminPort}|" \
"/etc/rethinkdb/instances.d/${instanceName}.conf"
Si votre serveur est utilisé par des hôtes externes, ouvrez le serveur au réseau (dangereux):
${cmdProxy} sed -i \
-e 's/^[# \t]*bind=.*$/bind=all/' \
"/etc/rethinkdb/instances.d/${instanceName}.conf"
Configuration du service system.d
Configurez l'emplacement pour les fichiers temporaires du service:
${cmdProxy} tee '/usr/lib/tmpfiles.d/rethinkdb.conf' \
<<< '# systemd-tmpfiles definition for rethinkdb
d /run/rethinkdb 0755 rethinkdb rethinkdb -'
Créez le service system.d pour le logiciel:
${cmdProxy} tee '/etc/systemd/system/rethinkdb@.service' <<< '[Unit]
Description=RethinkDB database server for instance '%i'
[Service]
User=rethinkdb
Group=rethinkdb
ExecStart=/usr/bin/rethinkdb serve --config-file /etc/rethinkdb/instances.d/%i.conf
KillMode=process
PrivateTmp=true
[Install]
WantedBy=multi-user.target'
Activez le service:
${cmdProxy} systemctl daemon-reload
${cmdProxy} systemctl enable "rethinkdb@${instanceName}"
Remarque: default correspond au nom du fichier de configuration dans le dossier /etc/rethinkdb/instances.d
Démarrez le service du logiciel:
${cmdProxy} service "rethinkdb@${instanceName}" start
Sauvegardes
Sauvegardez l'installation avec Backup Manager (voir Installer et configurer Backup Manager sur Debian):
command backup-manager-tools add "/var/lib/rethinkdb"
Remerciements
- Merci aux développeurs de RethinkDB (en).