Comment installer et configurer OrientDB sur Ubuntu 16.04

introduction

OrientDB est une base de données NoSQL multimodèle prenant en charge les bases de données de graphiques et de documents. C'est une application Java et peut être exécuté sur n'importe quel système d'exploitation. C’est également une solution complètement conforme à ACID, avec prise en charge de la réplication multi-maîtres, permettant une mise à l’échelle horizontale aisée.

Dans cet article, vous allez installer et configurer la dernière édition communautaire d’OrientDB sur un serveur Ubuntu 16.04.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de:

[[step-1 -—- téléchargement-et-installation-orientdb]] == Étape 1 - Téléchargement et installation d'OrientDB

Dans cette étape, nous allons télécharger la dernière édition communautaire d'OrientDB et l'installer dans le répertoire/opt, l'emplacement traditionnel pour l'installation d'applications tierces sous Linux.

Avant de commencer, assurez-vous que les packages sur votre système sont à jour.

sudo apt-get update

Net, téléchargez la dernière version de la communauté OrientDB. Au moment de la publication, c'est 2.2.20, mais vous pouvez vérifierthe project’s download page pour la dernière version et modifier le numéro de version dans la commande ci-dessous pour qu'il corresponde.

wget -O orientdb-community-2.2.20.tar.gz http://orientdb.com/download.php?file=orientdb-community-2.2.20.tar.gz&os=linux

L'archive tar téléchargée contient des fichiers binaires précompilés dont vous avez besoin pour exécuter OrientDB sur votre système. Il vous suffit donc de les désarchiver.

tar -zxvf orientdb-community-2.2.20.tar.gz

Les fichiers sont extraits dans un répertoire nomméorientdb-community-2.2.20. Vous devez maintenant le déplacer dans les/opt+`directory, renaming it to `+orientdb dans le processus.

sudo mv ~/orientdb-community-2.2.20 /opt/orientdb

OrientDB est maintenant installé. Si vous utilisez un serveur soumis à des contraintes de mémoire, vous pouvez configurer OrientDB pour qu’il utilise moins de RAM à l’étape suivante. Sinon, vous pouvez passer à l'étape 3 pour démarrer le serveur lui-même.

[[step-2 -—- configuring-orientdb-to-use-less-ram-optional]] == Étape 2 - Configuration d'OrientDB pour utiliser moins de RAM (optionnel)

Par défaut, le démon OrientDB s'attend à disposer d'au moins 2 Go de RAM et ne pourra pas démarrer s'il en trouve moins. Vous verrez une erreur comme celle-ci si vous essayez quand même de la démarrer:

Outputubuntu-orientdb server.sh[1670]: Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000aaaa0000, 1431699456, 0) failed; error='Cannot allocate memory' (errno=12)
ubuntu-orientdb server.sh[1670]: # There is insufficient memory for the Java Runtime Environment to continue.

Vous pouvez effectuer un changement de configuration qui vous permettra d’utiliser un serveur disposant d’à peine 512 Mo de RAM. C'est une fonction d'un paramètre dans le fichierserver.sh, qui peut être modifié pour que le démon puisse démarrer avec beaucoup moins de RAM.

Ouvrez le fichier avecnano ou votre éditeur de texte préféré.

sudo nano /opt/orientdb/bin/server.sh

Faites ensuite défiler jusqu'à la section contenant le bloc de code affiché dans ce bloc de code:

/opt/orientdb/bin/server.sh

. . .
# ORIENTDB memory options, default to 2GB of heap.

if [ -z "$ORIENTDB_OPTS_MEMORY" ] ; then
    ORIENTDB_OPTS_MEMORY="-Xms2G -Xmx2G"
fi
. . .

Les valeurs à modifier sontXms etXmx, qui spécifient le pool d'allocation de mémoire initial et maximal pour la machine virtuelle Java. Par défaut, ils sont réglés sur 2 Go.

Vous pouvez définir de nouvelles valeurs inférieures à la quantité de RAM allouée au serveur, mais assurez-vous queXms est au moins de 128 Mo ou OrientDB ne démarrera pas. Par exemple, les valeurs ci-dessous définissent la quantité initiale et maximale de mémoire RAM sur 128 Mo et 256 Mo, respectivement.

/opt/orientdb/bin/server.sh

# ORIENTDB memory options, default to 2GB of heap.

if [ -z "$ORIENTDB_OPTS_MEMORY" ] ; then
    ORIENTDB_OPTS_MEMORY="-Xms128m -Xmx256m"
fi

Enregistrez et fermez le fichier. Dans l'étape suivante, vous lancerez OrientDB.

[[step-3 -—- starting-the-server]] == Étape 3 - Démarrage du serveur

Maintenant que le fichier binaire est en place et que vous avez éventuellement configuré le serveur pour utiliser moins de RAM, vous pouvez maintenant démarrer le serveur et vous connecter à la console.

Accédez au répertoire d'installation.

cd /opt/orientdb

Puis démarrez le serveur.

sudo bin/server.sh

Lors du premier démarrage du serveur, vous serez invité à spécifier un mot de passe pour le compte utilisateurroot. Il s’agit d’un compte interne OrientDB qui sera utilisé pour accéder au serveur, par exemple OrientDB Studio, l’interface Web de gestion d’OrientDB. Si vous ne spécifiez pas de mot de passe, celui-ci sera généré automatiquement. Cependant, il vaut mieux en spécifier un vous-même, donc faites-le lorsque vous y êtes invité.

Une partie de la sortie générée à partir du démarrage du serveur vous indique les ports sur lesquels le serveur et OrientDB Studio écoutent.

Output2017-02-04 19:13:21:306 INFO  Listening binary connections on 0.0.0.0:2424 (protocol v.36, socket=default) [OServerNetworkListener]
2017-02-04 19:13:21:310 INFO  Listening http connections on 0.0.0.0:2480 (protocol v.10, socket=default) [OServerNetworkListener]
. . .
2017-02-04 19:13:21:372 INFO  OrientDB Studio available at http://192.168.0.30:2480/studio/index.html [OServer]
2017-02-04 19:13:21:374 INFO  OrientDB Server is active v2.2.20 (build UNKNOWN@r98dbf8a2b8d43e4af09f1b12fa7ae9dfdbd23f26; 2017-02-02 07:01:26+0000).
[OServer]

Lorsque vous voyez cela, OrientDB est maintenant en cours d'exécution dans votre terminal actuel. Confirmons que le serveur écoute sur les ports appropriés.

Ouvrez un deuxième terminal et connectez-vous au même serveur via SSH.

ssh sammy@your_server_ip

Ensuite, dans ce deuxième terminal, confirmez que le serveur écoute sur les ports2424 (pour les connexions binaires) et2480 (pour les connexions HTTP) avec la commande suivante.

sudo netstat -plunt | grep -i listen

La sortie doit contenir des références aux deux numéros de port, comme ceci:

Outputtcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1160/sshd
tcp6       0      0 :::2480                 :::*                    LISTEN      2758/java
tcp6       0      0 :::22                   :::*                    LISTEN      1160/sshd
tcp6       0      0 :::2424                 :::*                    LISTEN      2758/java

Maintenant que le serveur est démarré et que vous avez vérifié qu’il fonctionne, vous vous connecterez à la console OrientDB dans le deuxième terminal ensuite.

[[step-4 -—- connection-to-the-console]] == Étape 4 - Connexion à la console

La console OrientDB est l’interface de ligne de commande permettant de travailler avec l’application. Pour le lancer, tapez:

sudo /opt/orientdb/bin/console.sh

Vous verrez ce qui suit:

OutputOrientDB console v.2.2.20 (build UNKNOWN@r98dbf8a2b8d43e4af09f1b12fa7ae9dfdbd23f26; 2017-02-02 07:01:26+0000) www.orientdb.com
Type 'help' to display all the supported commands.
Installing extensions for GREMLIN language v.2.6.0


orientdb>

Maintenant, connectez-vous à l'instance du serveur. Le mot de passe requis est celui que vous avez spécifié lors du premier démarrage du serveur à l'étape précédente.

connect remote:127.0.0.1 root root-password

Vous verrez cette sortie si vous vous connectez avec succès.

OutputConnecting to remote Server instance [remote:127.0.0.1] with user 'root'...OK
orientdb {server=remote:127.0.0.1/}>

Si ce n’est pas le cas, vérifiez que vous avez entré le mot de passe root correctement et que OrientDB est toujours en cours d’exécution sur votre premier terminal.

Lorsque vous êtes prêt, tapezexit dans votre deuxième terminal pour quitter l’invite OrientDB.

exit

Vous venez d'installer OrientDB, de le démarrer manuellement et de vous y connecter. Cela signifie que OrientDB fonctionne, mais cela signifie également que vous devrez le démarrer manuellement à chaque redémarrage du serveur. Dans les prochaines étapes, nous allons configurer OrientDB pour qu’il s’exécute comme tout autre démon sur le serveur.

[[step-5 -—- configuring-orientdb-as-a-daemon]] == Étape 5 - Configuration d'OrientDB en tant que démon

À ce stade, OrientDB est installé, mais il ne s’agit que de plusieurs scripts sur le serveur. Dans cette étape, nous allons le configurer pour s’exécuter en tant que démon sur le système. Cela implique de modifier le script/opt/orientdb/bin/orientdb.sh et le fichier de configuration,/opt/orientdb/config/orientdb-server-config.xml.

Tout d'abord, tapezCTRL+C dans votre première fenêtre de terminal avec OrientDB toujours en cours d'exécution pour l'arrêter. Vous pouvez également fermer la deuxième connexion de terminal maintenant.

Commençons par modifier le script/opt/orientdb/bin/orientdb.sh pour indiquer à OrientDB l'utilisateur sous lequel il doit être exécuté et le pointer vers le répertoire d'installation.

Créez donc l’utilisateur système sous lequel vous voulez que OrientDB soit exécuté. Dans cet exemple, nous créons l'utilisateurorientdb. La commande créera également le groupeorientdb:

sudo useradd -r orientdb -s /sbin/nologin

Attribuez la propriété du répertoire OrientDB et des fichiers à l'utilisateur et au groupe OrientDB nouvellement créés.

sudo chown -R orientdb:orientdb /opt/orientdb

Apportons maintenant quelques modifications au scriptorientdb.sh.

sudo nano /opt/orientdb/bin/orientdb.sh

Tout d’abord, nous devons le diriger vers le répertoire d’installation approprié, puis lui indiquer sous quel utilisateur il doit être exécuté. Recherchez donc les deux lignes suivantes vers le haut du fichier:

/opt/orientdb/bin/orientdb.sh

. . .
# You have to SET the OrientDB installation directory here
ORIENTDB_DIR="YOUR_ORIENTDB_INSTALLATION_PATH"
ORIENTDB_USER="USER_YOU_WANT_ORIENTDB_RUN_WITH"
. . .

Et changez-les respectivement en/opt/orientdb etorientdb.

/opt/orientdb/bin/orientdb.sh

# You have to SET the OrientDB installation directory here
ORIENTDB_DIR="/opt/orientdb"
ORIENTDB_USER="orientdb"

Enregistrez et fermez le fichier.

Modifiez ensuite les autorisations du fichier de configuration du serveur pour empêcher les utilisateurs non autorisés de le lire.

sudo chmod 640 /opt/orientdb/config/orientdb-server-config.xml

Vous pouvez en savoir plus sur les autorisations de fichiers dansthis Linux permissions tutorial.

À l'étape suivante, nous allons configurer le démon pour qu'il soit contrôlé parSystemd, the service manager.

[[step-6 -—- Installing-the-systemd-startup-script]] == Étape 6 - Installation du script de démarrage Systemd

OrientDB est fourni avec un fichier descripteur de service Systemd qui sera chargé de démarrer et d’arrêter le service. Ce fichier doit être copié dans le répertoire/etc/systemd/system.

sudo cp /opt/orientdb/bin/orientdb.service /etc/systemd/system

Il y a quelques paramètres dans ce fichier que nous devons modifier, alors ouvrez-le pour le modifier.

sudo nano /etc/systemd/system/orientdb.service

Modifiez les variablesUser,Group etExecStart sousService pour qu'elles correspondent à votre installation. Vous définissez l'utilisateur et le groupe à l'étape 5 (qui sont tous les deuxorientdb si vous avez suivi l'étape textuellement). ExecStart spécifie le chemin d'accès au script, qui doit commencer par/opt/orientdb si vous avez suivi ce tutoriel tel qu'il est écrit.

/etc/systemd/system/orientdb.service

. . .

[Service]
User=orientdb
Group=orientdb
ExecStart=/opt/orientdb/bin/server.sh

Enregistrez et fermez le fichier.

Ensuite, exécutez la commande suivante pour recharger toutes les unités.

sudo systemctl daemon-reload

Avec tout en place, vous pouvez maintenant démarrer le service OrientDB.

sudo systemctl start orientdb

Et assurez-vous qu'il démarre au démarrage.

sudo systemctl enable orientdb

Vérifiez qu'il a bien commencé en vérifiant l'état du processus.

sudo systemctl status orientdb
Output● orientdb.service - OrientDB Server
   Loaded: loaded (/etc/systemd/system/orientdb.service; disabled; vendor preset: enabled)
   Active: active (running) since Sat 2017-02-04 20:54:27 CST; 11s ago
 Main PID: 22803 (java)
    Tasks: 14
   Memory: 126.4M
. . .

Si le serveur ne démarre pas, recherchez des indices dans la sortie. Dans l’étape suivante, vous apprendrez à vous connecter à OrientDB Studio, l’interface utilisateur Web de l’application.

[[step-7 -—- connection-to-orientdb-studio]] == Étape 7 - Connexion à OrientDB Studio

OrientDB Studio est l'interface Web permettant de gérer OrientDB. Ceci est utile à des fins de test, même si c'est unbetter security practice de restreindre entièrement l'accès à celui-ci.

Si vous souhaitez l'activer pour les tests, vous devez ajouter une règle à votre pare-feu. Par défaut, le studio OrientDB écoute sur le port2480, donc si vous avez configuré le pare-feu sur le serveur, vous devrez autoriser l'accès au port2480.

sudo ufw allow 2480

Ensuite, redémarrez UFW.

sudo systemctl restart ufw

Pour vous connecter à OrientDB Studio, visitezhttp://your_server_ip:2480 dans votre navigateur. Une fois la page chargée, vous verrez l'écran de connexion.

Vous pouvez vous connecter en tant queroot avec le mot de passe que vous avez défini précédemment. Vous pouvez également sélectionner la base de donnéesGratefulDeadConcerts et vous connecter en utilisant l'un des comptes d'utilisateurs par défaut inclus avec OrientDB (admin,reader ouwriter).

Conclusion

Vous venez d’installer l’édition Community de OrientDB sur votre serveur Ubuntu 16.04, d’en personnaliser la configuration et de la configurer en tant que démon géré par systemd.

Ensuite, vous devez protéger l'application des utilisateurs non autorisés en appliquant quelques conseils de sécurité à l'aide dethis OrientDB security tutorial. Si vous avez une installation OrientDB existante que vous devez importer dans une nouvelle installation, utilisezthis migration guide, qui a été écrit pour Ubuntu 14.04 mais fonctionnera également pour Ubuntu 16.04.

Pour plus d'informations sur OrientDB, visitezthe project’s official documentation.