Share via


Installera och konfigurera MongoDB på en virtuell Linux-dator

MongoDB är en populär NoSQL-databas med öppen källkod och höga prestanda. Den här artikeln visar hur du installerar och konfigurerar MongoDB på en virtuell Linux-dator med Azure CLI. Exempel visas med information om hur du:

Installera och konfigurera MongoDB manuellt på en virtuell dator

MongoDB tillhandahåller installationsinstruktioner för Linux-distributioner, inklusive Red Hat/CentOS, SUSE, Ubuntu och Debian. I följande exempel skapas en virtuell CentOS-dator . För att skapa den här miljön behöver du ha den senaste Azure CLI installerad och inloggad på ett Azure-konto med az login.

Skapa en resursgrupp med az group create. I följande exempel skapas en resursgrupp med namnet myResourceGroupplatsen eastus :

az group create --name myResourceGroup --location eastus

Skapa en virtuell dator med az vm create. I följande exempel skapas en virtuell dator med namnet myVM med en användare med namnet azureuser med hjälp av offentlig SSH-nyckelautentisering

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

SSH till den virtuella datorn med ditt eget användarnamn och publicIpAddress som visas i utdata från föregående steg:

ssh azureuser@<publicIpAddress>

Om du vill lägga till installationskällorna för MongoDB skapar du en yum-lagringsplatsfil enligt följande:

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

Öppna MongoDB-lagringsplatsen för redigering, till exempel med vi eller nano. Lägg till följande rader:

[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

Installera MongoDB med yum på följande sätt:

sudo yum install -y mongodb-org

SOM standard tillämpas SELinux på CentOS-avbildningar som hindrar dig från att komma åt MongoDB. Installera principhanteringsverktyg och konfigurera SELinux så att MongoDB kan användas på tcp-standardporten 27017 på följande sätt:

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

Starta MongoDB-tjänsten på följande sätt:

sudo service mongod start

Verifiera MongoDB-installationen genom att ansluta med hjälp av den lokala mongo klienten:

mongo

Testa nu MongoDB-instansen genom att lägga till några data och sedan söka:

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

Om du vill konfigurerar du MongoDB så att det startar automatiskt vid en omstart av systemet:

sudo chkconfig mongod on

Skapa en grundläggande MongoDB-instans på CentOS med hjälp av en mall

Du kan skapa en grundläggande MongoDB-instans på en enskild virtuell CentOS-dator med hjälp av följande Azure-snabbstartsmall från GitHub. Den här mallen använder tillägget för anpassat skript för Linux för att lägga till en yum-lagringsplats till den nyligen skapade virtuella CentOS-datorn och sedan installera MongoDB.

För att skapa den här miljön behöver du ha den senaste Azure CLI installerad och inloggad på ett Azure-konto med az login. Skapa först en resursgrupp med az group create. I följande exempel skapas en resursgrupp med namnet myResourceGroupplatsen eastus :

az group create --name myResourceGroup --location eastus

Distribuera sedan MongoDB-mallen med az deployment group create. När du uppmanas till det anger du dina egna unika värden för newStorageAccountName, dnsNameForPublicIP samt användarnamn och lösenord för administratör:

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

Logga in på den virtuella datorn med den offentliga DNS-adressen för den virtuella datorn. Du kan visa den offentliga DNS-adressen med az vm show:

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

SSH till den virtuella datorn med ditt eget användarnamn och din offentliga DNS-adress:

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

Verifiera MongoDB-installationen genom att ansluta med den lokala klienten mongo på följande sätt:

mongo

Testa nu instansen genom att lägga till några data och söka på följande sätt:

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

Skapa ett komplext shardat MongoDB-kluster på CentOS med hjälp av en mall

Du kan skapa ett komplext fragmenterat MongoDB-kluster med hjälp av följande Azure-snabbstartsmall från GitHub. Den här mallen följer metodtipsen för fragmenterade MongoDB-kluster för att tillhandahålla redundans och hög tillgänglighet. Mallen skapar två shards med tre noder i varje replikuppsättning. En konfigurationsserverreplikuppsättning med tre noder skapas också, plus två Mongos-routerservrar för att ge konsekvens till program från shards.

Varning

Distribution av det här komplexa MongoDB-shardade klustret kräver fler än 20 kärnor, vilket vanligtvis är standardantalet kärnor per region för en prenumeration. Öppna en Azure Support för att öka antalet kärnor.

För att skapa den här miljön behöver du ha den senaste Azure CLI installerad och inloggad på ett Azure-konto med az login. Skapa först en resursgrupp med az group create. I följande exempel skapas en resursgrupp med namnet myResourceGroupplatsen eastus :

az group create --name myResourceGroup --location eastus

Distribuera sedan MongoDB-mallen med az deployment group create. Definiera egna resursnamn och storlekar där det behövs, till exempel för mongoAdminUsername, sizeOfDataDiskInGB och 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

Den här distributionen kan ta över en timme att distribuera och konfigurera alla VM-instanser. Flaggan --no-wait används i slutet av föregående kommando för att returnera kontrollen till kommandotolken när malldistributionen har godkänts av Azure-plattformen. Du kan sedan visa distributionsstatusen med az deployment group show. I följande exempel visas status för myMongoDBCluster-distributionen i resursgruppen myResourceGroup :

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

Nästa steg

I de här exemplen ansluter du till MongoDB-instansen lokalt från den virtuella datorn. Om du vill ansluta till MongoDB-instansen från en annan virtuell dator eller ett annat nätverk ser du till att lämpliga regler för nätverkssäkerhetsgruppen skapas.

De här exemplen distribuerar kärnmiljön för MongoDB i utvecklingssyfte. Tillämpa de säkerhetsalternativ som krävs för din miljö. Mer information finns i MongoDB-säkerhetsdokumenten.

Mer information om hur du skapar med hjälp av mallar finns i Översikt Resource Manager Azure-portalen.

Azure Resource Manager använder tillägget för anpassat skript för att ladda ned och köra skript på dina virtuella datorer. Mer information finns i Använda tillägget för anpassat skript i Azure med Linux Virtual Machines.