RavenDB NoSQL database te installeren op Ubuntu 20.04

RavenDB is een gratis en open-source documentgeoriënteerde NoSQL database ontworpen voor het .NET/Windows platform. RavenDB ondersteunt meerdere databases, sharding, of het verdelen van de gegevens over meerdere servers. Het kan honderden of duizenden databases op dezelfde instantie aan. RavenDB gebruikt JSON om documenten op te slaan en vereist niet dat een schema wordt gedeclareerd, zodat ontwikkelaars op een meer natuurlijke manier met gegevens kunnen werken.

In deze tutorial leren we hoe je RavenDB installeert op Ubuntu 20.04 server.

Voorwaarden

  • Een server waarop Ubuntu 20.04 draait.
  • Een root-wachtwoord is op de server geconfigureerd.

Benodigde afhankelijkheden installeren

Voordat je begint, moet je de NET Core runtime in je systeem installeren. Download en installeer eerst de pakketrepository met het volgende commando:

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb

Je zou de volgende uitvoer moeten krijgen:

Selecting previously unselected package packages-microsoft-prod.
(Reading database ... 91134 files and directories currently installed.)
Preparing to unpack packages-microsoft-prod.deb ...
Unpacking packages-microsoft-prod (1.0-ubuntu20.04.1) ...
Setting up packages-microsoft-prod (1.0-ubuntu20.04.1) ...

Werk vervolgens de repository bij met het volgende commando:

apt-get install apt-transport-https -y
apt-get update -y

Zodra de repository is bijgewerkt, installeer je de .Net Core runtime met het volgende commando:

apt-get install aspnetcore-runtime-3.1 -y

Als de installatie is voltooid, kun je doorgaan naar de volgende stap.

RavenDB installeren

Download eerst de nieuwste versie van RavenDB door het volgende commando uit te voeren:

wget -O ravendb.tar.bz2 https://hibernatingrhinos.com/downloads/RavenDB%20for%20Linux%20x64/latest

Zodra het downloaden is voltooid, pak je het gedownloade bestand uit met het volgende commando:

tar xvjf ravendb.tar.bz2

Eigen toestemming voor de RavenDB met het volgende commando:

chmod -R 755 ~/RavenDB

Verander vervolgens de map naar RavenDB en voer het installatiescript uit zoals hieronder getoond:

cd ~/RavenDB
./run.sh

Je zou s-ee de volgende uitvoer moeten zien:

./run.sh: line 24: xdg-open: command not found
       _____                       _____  ____ 
      |  __ \                     |  __ \|  _ \ 
      | |__) |__ ___   _____ _ __ | |  | | |_) |
      |  _  // _` \ \ / / _ \ '_ \| |  | |  _ < 
      | | \ \ (_| |\ V /  __/ | | | |__| | |_) |
      |_|  \_\__,_| \_/ \___|_| |_|_____/|____/ 


      Safe by default, optimized for efficiency

 Build 50005, Version 5.0, SemVer 5.0.0, Commit a8d3f94
 PID 23883, 64 bits, 2 Cores, Phys Mem 1.941 GBytes, Arch: X64
 Source Code (git repo): https://github.com/ravendb/ravendb
 Built with love by Hibernating Rhinos and awesome contributors!
+---------------------------------------------------------------+
Using GC in server concurrent mode retaining memory from the OS.
Could not start browser: System.ComponentModel.Win32Exception (2): No such file or directory
   at System.Diagnostics.Process.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
   at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start(String fileName, String arguments)
   at Raven.Server.Utils.Cli.BrowserHelper.OpenStudioInBrowser(String url, Action`1 onError) in C:\Builds\RavenDB-Stable-5.0\50005\src\Raven.Server\Utils\Cli\BrowserHelper.cs:line 26
Server available on: http://127.0.0.1:43241
Server started, listening to requests...
TIP: type 'help' to list the available commands.
Running non-interactive.

Op dit punt is RavenDB gestart en luistert op poort 43241. Druk nu op CTRL + C om af te sluiten.

RavenDB configureren

Standaard is RavenDB alleen toegankelijk vanaf de localhost. Je moet het dus configureren om toegang te krijgen vanaf de remote host.

Je kunt dit configureren door het bestand settings.json te bewerken:

nano ~/RavenDB/Server/settings.json

Voeg / Wijzig de volgende regels toe:

{
    "ServerUrl": "http://your-server-ip:8080",
    "Setup.Mode": "Initial",
    "DataDir": "RavenData",
    "Security.UnsecuredAccessAllowed": "PrivateNetwork"

}

Sla het bestand op en sluit het als je klaar bent.

Maak een Systemd Servicebestand voor RavenDB

Vervolgens moet je een systemd servicebestand maken om de RavenDB te beheren. Je kunt het aanmaken met het volgende commando:

nano /etc/systemd/system/ravendb.service

Voeg de volgende regels toe:

[Unit]
Description=RavenDB v4.0
After=network.target

[Service]
LimitCORE=infinity
LimitNOFILE=65536
LimitRSS=infinity
LimitAS=infinity
User=root
Restart=on-failure
Type=simple
ExecStart=/root/RavenDB/run.sh

[Install]
WantedBy=multi-user.target

Sla het bestand op en sluit het. Herlaad vervolgens de systemd daemon met het volgende commando:

systemctl daemon-reload

Start vervolgens de RavenDB en schakel deze in om te starten bij het opnieuw opstarten van het systeem met het volgende commando:

systemctl start ravendb
systemctl enable ravendb

Je kunt nu de status van de RavenDB controleren met het volgende commando:

systemctl status ravendb

Je zou de volgende uitvoer moeten krijgen:

? ravendb.service - RavenDB v4.0
     Loaded: loaded (/etc/systemd/system/ravendb.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-08-01 11:25:12 UTC; 7min ago
   Main PID: 30833 (run.sh)
      Tasks: 32 (limit: 2353)
     Memory: 157.0M
     CGroup: /system.slice/ravendb.service
             ??30833 /bin/bash /root/RavenDB/run.sh
             ??30871 ./Raven.Server --browser

Aug 01 11:30:19 ubuntu2004 run.sh[30871]: Starting shut down...
Aug 01 11:30:21 ubuntu2004 run.sh[30871]: Shutdown completed
Aug 01 11:30:21 ubuntu2004 run.sh[30871]: Restarting Server...
Aug 01 11:30:21 ubuntu2004 run.sh[30871]: Using GC in server concurrent mode retaining memory from the OS.
Aug 01 11:30:21 ubuntu2004 run.sh[30871]: Server available on: http://69.87.218.19:8080
Aug 01 11:30:21 ubuntu2004 run.sh[30871]: Tcp listening on 69.87.218.19:38888
Aug 01 11:30:21 ubuntu2004 run.sh[30871]: Server started, listening to requests...
Aug 01 11:30:21 ubuntu2004 run.sh[30871]: TIP: type 'help' to list the available commands.
Aug 01 11:30:21 ubuntu2004 run.sh[30871]: ravendb> End of standard input detected, switching to server mode...
Aug 01 11:30:21 ubuntu2004 run.sh[30871]: Running non-interactive.

Op dit moment is RavenDB gestart en luistert op poort 8080.

Toegang tot de RavenDB webinterface

Open nu je webbrowser en typ de URL http://your-server-ip:8080. Je zou het volgende scherm moeten zien:

Licentie RavenDB

Klik op de knop Accepteren om de licentieovereenkomst te accepteren. Je zou het volgende scherm moeten zien:

Beveilig de database

Hier zijn er drie opties om de RavenDB in te stellen. Selecteer de optie Unsecured. Je zou het volgende scherm moeten zien:

Database poorten configureren

Geef de HTTP-poort en het IP-adres op en klik op de knop Volgende. Je zou het volgende scherm moeten zien:

Configuratie voltooid

Klik op Herstart server om je systeem opnieuw op te starten. Na een succesvolle herstart word je omgeleid naar het RavenDB dashboard zoals hieronder weergegeven:

RavenDB dashboard

Klik op de knop CREATE DATABASE. Je zou het volgende scherm moeten zien:

Replicatie configureren in RavenDB

Geef je databasenaam op en klik op de knop Create. Je zou je nieuw aangemaakte database in het volgende scherm moeten zien:

Een database maken in RavenDB

Conclusie

Gefeliciteerd! Je hebt RavenDB met succes geïnstalleerd op Ubuntu 20.04. Je kunt nu RavenDB gaan verkennen om er vertrouwd mee te raken. Stel me gerust als je vragen hebt.