Installieren und Konfigurieren von MongoDB auf einem virtuellen Linux-Computer
MongoDB ist eine beliebte, leistungsfähige Open Source-NoSQL-Datenbank. In diesem Artikel wird das Installieren und Konfigurieren von MongoDB auf einem virtuellen Linux-Computer mithilfe von Azure CLI beschrieben. Hier finden Sie Beispiele mit Informationen zu den folgenden Schritten:
- Manuelles Installieren und Konfigurieren einer einfachen MongoDB-Instanz
- Erstellen einer einfachen MongoDB-Instanz mithilfe einer Resource Manager-Vorlage
- Erstellen eines komplexen MongoDB-Shardclusters mit Replikatgruppen mithilfe einer Resource Manager-Vorlage
Manuelles Installieren und Konfigurieren von MongoDB auf einem virtuellen Computer
Für MongoDB stehen Installationsanweisungen für Linux-Distributionen zur Verfügung, u.a. für Red Hat/CentOS, SUSE, Ubuntu und Debian. Im folgenden Beispiel wird ein virtueller Computer mit dem Namen CentOS erstellt. Zum Erstellen dieser Umgebung muss die neueste Version von Azure CLI installiert sein, und Sie müssen mithilfe von az login bei einem Azure-Konto angemeldet sein.
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 der virtuelle Computer myVM mit dem Benutzer azureuser erstellt, indem die Authentifizierung mit einem öffentlichen SSH-Schlüssel verwendet wird
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image CentOS \
--admin-username azureuser \
--generate-ssh-keys
Führen Sie die SSH-Authentifizierung beim virtuellen Computer mit Ihrem eigenen Benutzernamen und dem in der Ausgabe aus dem vorherigen Schritt angegebenen publicIpAddress
aus:
ssh azureuser@<publicIpAddress>
Erstellen Sie zum Hinzufügen der Installationsquellen für MongoDB wie folgt eine yum-Repositorydatei:
sudo touch /etc/yum.repos.d/mongodb-org-3.6.repo
Öffnen Sie die MongoDB-Repositorydatei zur Bearbeitung, wie 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 wie folgt per yum:
sudo yum install -y mongodb-org
Standardmäßig wird SELinux für CentOS-Images erzwungen. Dadurch wird Ihr Zugriff auf MongoDB verhindert. Installieren Sie Richtlinienverwaltungstools, und konfigurieren Sie SELinux wie folgt, um MongoDB die Nutzung des TCP-Standardports 27017 zu ermöglichen:
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 durch Herstellen einer Verbindung mit dem lokalen mongo
-Client:
mongo
Testen Sie nun die MongoDB-Instanz, indem Sie einige Daten hinzufügen und anschließend eine Suche ausführen:
> db
test
> db.foo.insert( { a : 1 } )
> db.foo.find()
{ "_id" : ObjectId("57ec477cd639891710b90727"), "a" : 1 }
> exit
Konfigurieren Sie bei Bedarf den automatischen Start von MongoDB bei einem Systemneustart:
sudo chkconfig mongod on
Erstellen einer einfachen MongoDB-Instanz unter CentOS mithilfe einer Vorlage
Sie können mithilfe der folgenden Azure-Schnellstartvorlage von GitHub eine einfache MongoDB-Instanz auf einem einzelnen virtuellen CentOS-Computer erstellen. In dieser Vorlage wird die benutzerdefinierte Skripterweiterung für Linux verwendet, um Ihrem neu erstellten virtuellen CentOS-Computer ein yum-Repository hinzuzufügen und MongoDB zu installieren.
- Einfache MongoDB-Instanz unter CentOS - https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-centos/azuredeploy.json
Zum Erstellen dieser Umgebung muss die neueste Version von Azure CLI installiert sein, und Sie müssen mithilfe von az login bei einem Azure-Konto angemeldet sein. 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 mit dem Befehl az deployment group create die MongoDB-Vorlage bereit. Geben Sie bei Aufforderung Ihre eigenen eindeutigen Werte für newStorageAccountName, dnsNameForPublicIP sowie den Administratorbenutzernamen und das Kennwort an:
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 bei dem virtuellen Computer mit der öffentlichen DNS-Adresse des virtuellen Computers an. Sie können die öffentliche DNS-Adresse mit dem Befehl az vm show anzeigen:
az vm show -g myResourceGroup -n myLinuxVM -d --query [fqdns] -o tsv
Stellen Sie eine SSH-Verbindung mit dem virtuellen Computer unter Verwendung Ihres eigenen Benutzernamens und der öffentlichen DNS-Adresse her:
ssh azureuser@mypublicdns.eastus.cloudapp.azure.com
Überprüfen Sie wie folgt die MongoDB-Installation durch Herstellen einer Verbindung mit dem lokalen mongo
-Client:
mongo
Testen Sie nun die Instanz, indem Sie folgendermaßen einige Daten hinzufügen und anschließend eine Suche ausführen:
> db
test
> db.foo.insert( { a : 1 } )
> db.foo.find()
{ "_id" : ObjectId("57ec477cd639891710b90727"), "a" : 1 }
> exit
Erstellen eines komplexen MongoDB-Shardclusters unter CentOS mithilfe einer Vorlage
Sie können mithilfe der folgenden Azure-Schnellstartvorlage von GitHub einen komplexen MongoDB-Shardcluster erstellen. Diese Vorlage basiert auf den bewährten Methoden für MongoDB-Shardcluster, um Redundanz und Hochverfügbarkeit zu gewährleisten. Die Vorlage erstellt zwei Shards mit drei Knoten in jeder Replikatgruppe. Darüber hinaus werden eine Konfigurationsserver-Replikatgruppe mit drei Knoten sowie zwei mongos-Routerserver erstellt, um Konsistenz für Anwendungen auf allen Shards zu ermöglichen.
- MongoDB-Shardcluster unter CentOS - https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-sharding-centos/azuredeploy.json
Warnung
Für die Bereitstellung dieses komplexen MongoDB-Shardclusters sind mehr als 20 Kerne erforderlich. Dies ist in der Regel die Standardanzahl von Kernen pro Region für ein Abonnement. Stellen Sie eine Azure-Supportanfrage zum Erhöhen der Kernanzahl.
Zum Erstellen dieser Umgebung muss die neueste Version von Azure CLI installiert sein, und Sie müssen mithilfe von az login bei einem Azure-Konto angemeldet sein. 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 mit dem Befehl az deployment group create die MongoDB-Vorlage bereit. Definieren Sie bei Bedarf Ihre eigenen Ressourcennamen und -größen, z.B. für 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
Es kann über eine Stunde dauern, bis die Bereitstellung und die Konfiguration aller VM-Instanzen abgeschlossen ist. Das Flag --no-wait
wird am Ende des vorherigen Befehls verwendet, sodass die Steuerung an die Eingabeaufforderung zurückgegeben wird, nachdem die Vorlagenbereitstellung auf der Azure-Plattform akzeptiert wurde. Sie können dann mit dem Befehl az deployment group show den Bereitstellungsstatus anzeigen. Im folgenden Beispiel wird der Status für die Bereitstellung myMongoDBCluster 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 wird vom virtuellen Computer eine lokale Verbindung mit der MongoDB-Instanz hergestellt. Wenn Sie von einem anderen virtuellen Computer oder Netzwerk eine Verbindung mit der MongoDB-Instanz herstellen möchten, stellen Sie sicher, dass die entsprechenden Netzwerksicherheitsgruppen-Regeln erstellt werden.
In diesen Beispielen wird die MongoDB-Kernumgebung für Entwicklungszwecke bereitgestellt. Wenden Sie die erforderlichen Optionen der Sicherheitskonfiguration für Ihre Umgebung an. Weitere Informationen finden Sie in den Dokumenten zur MongoDB-Sicherheit.
Weitere Informationen zur Erstellung mithilfe von Vorlagen finden Sie in der Übersicht über den Azure Resource Manager.
Die Azure Resource Manager-Vorlagen verwenden die benutzerdefinierte Skripterweiterung zum Herunterladen und Ausführen von Skripts auf Ihren virtuellen Computern. Weitere Informationen finden Sie unter Verwenden der benutzerdefinierten Skripterweiterung von Azure mit virtuellen Linux-Computern.