MongoDB installeren en configureren op een Linux-VM
MongoDB is een populaire open-source NoSQL-database met hoge prestaties. In dit artikel wordt beschreven hoe u MongoDB installeert en configureert op een Linux-VM met de Azure CLI. Er worden voorbeelden weergegeven waarin het volgende wordt beschreven:
- Handmatig een basis-MongoDB-exemplaar installeren en configureren
- Een eenvoudig MongoDB-exemplaar maken met behulp van een Resource Manager sjabloon
- Een complex MongoDB shard-cluster met replicasets maken met behulp van een Resource Manager sjabloon
MongoDB handmatig installeren en configureren op een VM
MongoDB biedt installatie-instructies voor Linux-distributies, waaronder Red Hat/CentOS, SUSE, Ubuntu en Debian. In het volgende voorbeeld wordt een CentOS-VM gemaakt. Als u deze omgeving wilt maken, moet de nieuwste versie van Azure CLI zijn geïnstalleerd en zijn aangemeld bij een Azure-account met behulp van az login.
Maak een resourcegroep maken met az group create. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie eastus:
az group create --name myResourceGroup --location eastus
Maak een VM met az vm create. In het volgende voorbeeld wordt een VM met de naam myVM gemaakt met een gebruiker met de naam azureuser met behulp van openbare SSH-sleutelverificatie
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image CentOS \
--admin-username azureuser \
--generate-ssh-keys
Ga via SSH naar de VM met behulp van uw eigen gebruikersnaam en publicIpAddress
de die wordt vermeld in de uitvoer van de vorige stap:
ssh azureuser@<publicIpAddress>
Als u de installatiebronnen voor MongoDB wilt toevoegen, maakt u als volgt een yum-opslagplaatsbestand :
sudo touch /etc/yum.repos.d/mongodb-org-3.6.repo
Open het MongoDB-repobestand voor bewerking, zoals met vi
of nano
. Voeg de volgende regels toe:
[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
Installeer MongoDB als volgt met yum :
sudo yum install -y mongodb-org
Standaard wordt SELinux afgedwongen op CentOS-afbeeldingen, waardoor u geen toegang hebt tot MongoDB. Installeer hulpprogramma's voor beleidsbeheer en configureer SELinux zodat MongoDB als volgt werkt op de standaard TCP-poort 27017:
sudo yum install -y policycoreutils-python
sudo semanage port -a -t mongod_port_t -p tcp 27017
Start de MongoDB-service als volgt:
sudo service mongod start
Controleer de MongoDB-installatie door verbinding te maken met behulp van de lokale mongo
client:
mongo
Test nu het MongoDB-exemplaar door enkele gegevens toe te voegen en vervolgens te zoeken:
> db
test
> db.foo.insert( { a : 1 } )
> db.foo.find()
{ "_id" : ObjectId("57ec477cd639891710b90727"), "a" : 1 }
> exit
Configureer, indien gewenst, MongoDB zo dat het automatisch wordt opgestart tijdens het opnieuw opstarten van het systeem:
sudo chkconfig mongod on
Een eenvoudig MongoDB-exemplaar maken in CentOS met behulp van een sjabloon
U kunt een eenvoudig MongoDB-exemplaar maken op één CentOS-VM met behulp van de volgende Azure-quickstart-sjabloon van GitHub. Deze sjabloon maakt gebruik van de aangepaste scriptextensie voor Linux om een yum-opslagplaats toe te voegen aan uw zojuist gemaakte CentOS-VM en vervolgens MongoDB te installeren.
- Basis-MongoDB-exemplaar in CentOS - https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-centos/azuredeploy.json
Als u deze omgeving wilt maken, moet de nieuwste versie van Azure CLI zijn geïnstalleerd en zijn aangemeld bij een Azure-account met behulp van az login. Maak eerst een resourcegroep met az group create. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie eastus:
az group create --name myResourceGroup --location eastus
Implementeer vervolgens de MongoDB-sjabloon met az deployment group create. Wanneer u hier om wordt gevraagd, voert u uw eigen unieke waarden in voor newStorageAccountName, dnsNameForPublicIP en de gebruikersnaam en het wachtwoord van de beheerder:
az deployment group create --resource-group myResourceGroup \
--template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-centos/azuredeploy.json
Meld u aan bij de VM met het openbare DNS-adres van uw VM. U kunt het openbare DNS-adres weergeven met az vm show:
az vm show -g myResourceGroup -n myLinuxVM -d --query [fqdns] -o tsv
SSH naar uw VM met uw eigen gebruikersnaam en openbaar DNS-adres:
ssh azureuser@mypublicdns.eastus.cloudapp.azure.com
Controleer de MongoDB-installatie door als volgt verbinding te maken met behulp van de mongo
lokale client:
mongo
Test nu het exemplaar door enkele gegevens toe te voegen en als volgt te zoeken:
> db
test
> db.foo.insert( { a : 1 } )
> db.foo.find()
{ "_id" : ObjectId("57ec477cd639891710b90727"), "a" : 1 }
> exit
Een complex MongoDB Shard-cluster maken in CentOS met behulp van een sjabloon
U kunt een complex MongoDB shard-cluster maken met behulp van de volgende Azure-quickstart-sjabloon van GitHub. Deze sjabloon volgt de best practices voor MongoDB-shardingcluster om redundantie en hoge beschikbaarheid te bieden. Met de sjabloon worden twee shards gemaakt, met drie knooppunten in elke replicaset. Er wordt ook één configuratieserverreplicaset met drie knooppunten gemaakt, plus twee Mongos-routerservers om toepassingen van over de shards consistentie te bieden.
- MongoDB Sharding Cluster in CentOS - https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-sharding-centos/azuredeploy.json
Waarschuwing
Voor het implementeren van dit complexe MongoDB shard-cluster zijn meer dan 20 kernen vereist. Dit is doorgaans het standaard aantal kernen per regio voor een abonnement. Open een ondersteuning voor Azure aanvraag om het aantal kernen te verhogen.
Als u deze omgeving wilt maken, moet de nieuwste versie van Azure CLI zijn geïnstalleerd en zijn aangemeld bij een Azure-account met behulp van az login. Maak eerst een resourcegroep met az group create. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie eastus:
az group create --name myResourceGroup --location eastus
Implementeer vervolgens de MongoDB-sjabloon met az deployment group create. Definieer waar nodig uw eigen resourcenamen en -grootten, zoals voor mongoAdminUsername, sizeOfDataDiskInGB en 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
Het implementeren en configureren van alle VM-exemplaren kan meer dan een uur duren. De --no-wait
vlag wordt aan het einde van de voorgaande opdracht gebruikt om het beheer te retourneren naar de opdrachtprompt zodra de sjabloonimplementatie is geaccepteerd door het Azure-platform. Vervolgens kunt u de implementatiestatus weergeven met az deployment group show. In het volgende voorbeeld wordt de status voor de implementatie myMongoDBCluster in de resourcegroep myResourceGroup bekeken:
az deployment group show \
--resource-group myResourceGroup \
--name myMongoDBCluster \
--query [properties.provisioningState] \
--output tsv
Volgende stappen
In deze voorbeelden maakt u lokaal verbinding met het MongoDB-exemplaar vanaf de VM. Als u vanaf een andere VM of netwerk verbinding wilt maken met het MongoDB-exemplaar, moet u ervoor zorgen dat de juiste netwerkbeveiligingsgroepsregels zijn gemaakt.
In deze voorbeelden wordt de MongoDB-kernomgeving geïmplementeerd voor ontwikkelingsdoeleinden. Pas de vereiste beveiligingsconfiguratieopties toe voor uw omgeving. Zie de MongoDB-beveiligings docs voor meer informatie.
Zie overzicht van Azure Resource Manager voor meer informatie over het maken van Resource Manager sjablonen.
De Azure Resource Manager-sjablonen gebruiken de aangepaste scriptextensie om scripts op uw VM's te downloaden en uit te voeren. Zie Using the Azure Custom Script Extension with Linux Virtual Machines (De aangepaste scriptextensie van Azure gebruiken met Linux-Virtual Machines) voor meer Virtual Machines.