Freigeben über


So installieren und konfigurieren Sie MongoDB auf einer Linux-VM

MongoDB ist eine beliebte Open Source-, Hochleistungs-NoSQL-Datenbank. In diesem Artikel erfahren Sie, wie Sie MongoDB auf einer Linux-VM mit der Azure CLI installieren und konfigurieren. Es werden Beispiele gezeigt, in denen Folgendes beschrieben wird:

Manuelles Installieren und Konfigurieren von MongoDB auf einem virtuellen Computer

MongoDB enthält Installationsanweisungen für Linux-Distros wie Red Hat / CentOS, SUSE, Ubuntu und Debian. Im folgenden Beispiel wird eine CentOS-VM erstellt. Um diese Umgebung zu erstellen, benötigen Sie die neueste Azure CLI installiert und bei einem Azure-Konto mit az login angemeldet.

Erstellen Sie mit az group create eine Ressourcengruppe. Im folgenden Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroup am Standort eastus erstellt:

az group create --name myResourceGroup --location eastus

Erstellen Sie mit az vm create einen virtuellen Computer. Im folgenden Beispiel wird eine VM mit dem Namen myVM mit einem Benutzer namens AzureUser mithilfe der öffentlichen SSH-Schlüsselauthentifizierung erstellt.

az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --image CentOS \
    --admin-username azureuser \
    --generate-ssh-keys

SSH zur VM mithilfe Ihres eigenen Benutzernamens und des publicIpAddress, das in der Ausgabe aus dem vorherigen Schritt aufgeführt ist.

ssh azureuser@<publicIpAddress>

Um die Installationsquellen für MongoDB hinzuzufügen, erstellen Sie eine yum-Repositorydatei wie folgt:

sudo touch /etc/yum.repos.d/mongodb-org-3.6.repo

Öffnen Sie die MongoDB-Repositorydatei zum Bearbeiten, z. B. mit vi oder nano. Fügen Sie die folgenden Zeilen hinzu:

[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

Installieren Sie MongoDB mit yum wie folgt:

sudo yum install -y mongodb-org

Standardmäßig ist SELinux in CentOS-Images aktiviert, was den Zugriff auf MongoDB verhindert. Installieren Sie Richtlinienverwaltungstools, und konfigurieren Sie SELinux so, dass MongoDB wie folgt auf dem standardmäßigen TCP-Port 27017 ausgeführt werden kann:

sudo yum install -y policycoreutils-python
sudo semanage port -a -t mongod_port_t -p tcp 27017

Starten Sie den MongoDB-Dienst wie folgt:

sudo service mongod start

Überprüfen Sie die MongoDB-Installation, indem Sie eine Verbindung mit dem lokalen mongo Client herstellen:

mongo

Testen Sie nun die MongoDB-Instanz, indem Sie einige Daten hinzufügen und dann suchen:

> db
test
> db.foo.insert( { a : 1 } )  
> db.foo.find()  
{ "_id" : ObjectId("57ec477cd639891710b90727"), "a" : 1 }
> exit

Konfigurieren Sie bei Bedarf MongoDB so, dass sie während eines Systemneustarts automatisch gestartet wird:

sudo chkconfig mongod on

Erstellen einer einfachen MongoDB-Instanz auf CentOS mithilfe einer Vorlage

Sie können eine grundlegende MongoDB-Instanz auf einer einzelnen CentOS-VM mithilfe der folgenden Azure-Schnellstartvorlage von GitHub erstellen. Diese Vorlage verwendet die Custom Script-Erweiterung für Linux, um Ihrem neu erstellten CentOS-virtuellen Computer ein Yum-Repository hinzuzufügen und dann MongoDB zu installieren.

Um diese Umgebung zu erstellen, benötigen Sie die neueste Azure CLI installiert und bei einem Azure-Konto mit az login angemeldet. Erstellen Sie zunächst mit az group create eine Ressourcengruppe. Im folgenden Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroup am Standort eastus erstellt:

az group create --name myResourceGroup --location eastus

Stellen Sie als Nächstes die MongoDB-Vorlage mit az deployment group create bereit. Wenn Sie dazu aufgefordert werden, geben Sie ihre eigenen eindeutigen Werte für newStorageAccountName, dnsNameForPublicIP und Den Benutzernamen und das Kennwort des Administrators ein:

az deployment group create --resource-group myResourceGroup \
  --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-centos/azuredeploy.json

Melden Sie sich mit der öffentlichen DNS-Adresse Ihres virtuellen Computers bei der VM an. Sie können die öffentliche DNS-Adresse mit az vm anzeigen:

az vm show -g myResourceGroup -n myLinuxVM -d --query [fqdns] -o tsv

SSH zu Ihrer VM mit Ihrem eigenen Benutzernamen und Ihrer öffentlichen DNS-Adresse:

ssh azureuser@mypublicdns.eastus.cloudapp.azure.com

Überprüfen Sie die MongoDB-Installation, indem Sie eine Verbindung mit dem lokalen mongo Client wie folgt herstellen:

mongo

Testen Sie nun die Instanz, indem Sie einige Daten hinzufügen und wie folgt suchen:

> db
test
> db.foo.insert( { a : 1 } )  
> db.foo.find()  
{ "_id" : ObjectId("57ec477cd639891710b90727"), "a" : 1 }
> exit

Erstellen eines komplexen MongoDB-Shardedclusters auf CentOS mithilfe einer Vorlage

Mit der folgenden Azure-Schnellstartvorlage von GitHub können Sie einen komplexen MongoDB-Sharded-Cluster erstellen. Diese Vorlage folgt den bewährten Methoden des MongoDB-Clusters , um Redundanz und hohe Verfügbarkeit bereitzustellen. Die Vorlage erstellt zwei Shards mit drei Knoten in den einzelnen Replikatgruppen. Ein Konfigurationsserverreplikatsatz mit drei Knoten wird ebenfalls erstellt, plus zwei Mongos-Routerserver , um Konsistenz für Anwendungen über die Shards hinweg bereitzustellen.

Warnung

Für die Bereitstellung dieses komplexen MongoDB-Shardedclusters sind mehr als 20 Kerne erforderlich, was in der Regel die Standardkernanzahl pro Region für ein Abonnement ist. Öffnen Sie eine Azure-Supportanfrage, um Ihre Kernanzahl zu erhöhen.

Um diese Umgebung zu erstellen, benötigen Sie die neueste Azure CLI installiert und bei einem Azure-Konto mit az login angemeldet. Erstellen Sie zunächst mit az group create eine Ressourcengruppe. Im folgenden Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroup am Standort eastus erstellt:

az group create --name myResourceGroup --location eastus

Stellen Sie als Nächstes die MongoDB-Vorlage mit az deployment group create bereit. Definieren Sie bei Bedarf eigene Ressourcennamen und Größen, z. B. mongoAdminUsername, sizeOfDataDiskInGB und configNodeVmSize:

az deployment group create --resource-group myResourceGroup \
  --parameters '{"adminUsername": {"value": "azureuser"},
    "adminPassword": {"value": "P@ssw0rd!"},
    "mongoAdminUsername": {"value": "mongoadmin"},
    "mongoAdminPassword": {"value": "P@ssw0rd!"},
    "dnsNamePrefix": {"value": "mypublicdns"},
    "environment": {"value": "AzureCloud"},
    "numDataDisks": {"value": "4"},
    "sizeOfDataDiskInGB": {"value": 20},
    "centOsVersion": {"value": "7.0"},
    "routerNodeVmSize": {"value": "Standard_DS3_v2"},
    "configNodeVmSize": {"value": "Standard_DS3_v2"},
    "replicaNodeVmSize": {"value": "Standard_DS3_v2"},
    "zabbixServerIPAddress": {"value": "Null"}}' \
  --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-sharding-centos/azuredeploy.json \
  --name myMongoDBCluster \
  --no-wait

Diese Bereitstellung kann mehr als eine Stunde dauern, um alle VM-Instanzen bereitzustellen und zu konfigurieren. Das --no-wait Flag wird am Ende des vorherigen Befehls verwendet, um die Steuerung an die Eingabeaufforderung zurückzugeben, sobald die Vorlagenbereitstellung von der Azure-Plattform akzeptiert wurde. Anschließend können Sie den Deployment-Status mit az deployment group show anzeigen. Im folgenden Beispiel wird der Status der myMongoDBCluster-Bereitstellung in der Ressourcengruppe myResourceGroup angezeigt:

az deployment group show \
    --resource-group myResourceGroup \
    --name myMongoDBCluster \
    --query [properties.provisioningState] \
    --output tsv

Nächste Schritte

In diesen Beispielen stellen Sie eine lokale Verbindung mit der MongoDB-Instanz von der VM her her her. Wenn Sie eine Verbindung mit der MongoDB-Instanz von einer anderen VM oder einem anderen Netzwerk herstellen möchten, stellen Sie sicher, dass die entsprechenden Regeln für die Netzwerksicherheitsgruppe erstellt werden.

In diesen Beispielen wird die MongoDB-Kernumgebung für Entwicklungszwecke bereitgestellt. Wenden Sie die erforderlichen Sicherheitskonfigurationsoptionen für Ihre Umgebung an. Weitere Informationen finden Sie in den MongoDB-Sicherheitsdokumenten.

Weitere Informationen zum Erstellen mithilfe von Vorlagen finden Sie in der Azure Resource Manager-Übersicht.

Die Azure Resource Manager-Vorlagen verwenden die benutzerdefinierte Skripterweiterung, um Skripts auf Ihren virtuellen Computern herunterzuladen und auszuführen. Weitere Informationen finden Sie unter Verwenden der benutzerdefinierten Azure-Skripterweiterung mit virtuellen Linux-Computern.