Vous êtes ici : Accueil / Debian GNU/Linux / Serveurs / Bases de données / Installer RethinkDB sur Debian

Installer RethinkDB sur Debian

Par Pierre-Yves Landuré Dernière modification 28/03/2018 10:41

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