Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
MongoDB è un popolare database NoSQL open source ad alte prestazioni. Questo articolo illustra come installare e configurare MongoDB in una macchina virtuale Linux con l'interfaccia della riga di comando di Azure. Vengono mostrati esempi che illustrano in dettaglio come:
- Installare e configurare manualmente un'istanza di MongoDB di base
- Creare un'istanza di MongoDB di base usando un modello di Resource Manager
- Creare un cluster con partizionamento orizzontale di MongoDB complesso con set di repliche usando un modello di Resource Manager
Installare e configurare manualmente MongoDB in una macchina virtuale
MongoDB fornire istruzioni di installazione per le distribuzioni Linux, tra cui Red Hat/ CentOS, SUSE, Ubuntu e Debian. L'esempio seguente crea una macchina virtuale CentOS. Per creare questo ambiente, è necessario che l'ultima versione dell'interfaccia della riga di comando di Azure sia installata e si effettui il login a un account Azure usando az login.
Creare un gruppo di risorse con az group create. L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella posizione eastus:
az group create --name myResourceGroup --location eastus
Creare una VM con il comando az vm create. L'esempio seguente crea una macchina virtuale denominata myVM con un utente denominato azureuser usando l'autenticazione con chiave pubblica SSH
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image CentOS \
--admin-username azureuser \
--generate-ssh-keys
Connettersi tramite SSH alla macchina virtuale usando il proprio nome utente e l'publicIpAddress elencati nell'output del passaggio precedente:
ssh azureuser@<publicIpAddress>
Per aggiungere le origini di installazione per MongoDB, creare un file di repository yum come segue:
sudo touch /etc/yum.repos.d/mongodb-org-3.6.repo
Aprire il file del repository MongoDB per la modifica, ad esempio con vi o nano. Aggiungere le righe seguenti:
[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
Installare MongoDB usando yum come indicato di seguito:
sudo yum install -y mongodb-org
Per impostazione predefinita, SELinux viene applicato alle immagini CentOS che impediscono l'accesso a MongoDB. Installare gli strumenti di gestione dei criteri e configurare SELinux per consentire a MongoDB di operare sulla porta TCP predefinita 27017 come indicato di seguito:
sudo yum install -y policycoreutils-python
sudo semanage port -a -t mongod_port_t -p tcp 27017
Avviare il servizio MongoDB come indicato di seguito:
sudo service mongod start
Verificare l'installazione di MongoDB connettendosi usando il client mongo locale:
mongo
Testare ora l'istanza di MongoDB aggiungendo alcuni dati e quindi eseguendo una ricerca:
> db
test
> db.foo.insert( { a : 1 } )
> db.foo.find()
{ "_id" : ObjectId("57ec477cd639891710b90727"), "a" : 1 }
> exit
Se necessario, configurare MongoDB per l'avvio automatico durante un riavvio del sistema:
sudo chkconfig mongod on
Creare un'istanza mongoDB di base in CentOS usando un modello
È possibile creare un'istanza di MongoDB di base in una singola macchina virtuale CentOS usando il modello di avvio rapido di Azure seguente da GitHub. Questo modello usa l'estensione Script personalizzato per Linux per aggiungere un repository yum alla macchina virtuale CentOS appena creata e quindi installare MongoDB.
- istanza di MongoDB di base in CentOS - https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-centos/azuredeploy.json
Per creare questo ambiente, devi avere l'ultima versione di Azure CLI installata e effettuare l'accesso a un account Azure usando az login. Creare prima un gruppo di risorse con az group create. L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella posizione eastus:
az group create --name myResourceGroup --location eastus
Quindi, distribuisci il modello MongoDB con az deployment group create. Quando richiesto, immettere i propri valori univoci per newStorageAccountName, dnsNameForPublicIPe nome utente e password amministratore:
az deployment group create --resource-group myResourceGroup \
--template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-centos/azuredeploy.json
Accedere alla macchina virtuale usando l'indirizzo DNS pubblico della macchina virtuale. È possibile visualizzare l'indirizzo DNS pubblico con az vm show:
az vm show -g myResourceGroup -n myLinuxVM -d --query [fqdns] -o tsv
Connettersi tramite SSH alla macchina virtuale usando il proprio nome utente e l'indirizzo DNS pubblico:
ssh azureuser@mypublicdns.eastus.cloudapp.azure.com
Verificare l'installazione di MongoDB connettendosi usando il client mongo locale come indicato di seguito:
mongo
Testare ora l'istanza aggiungendo alcuni dati ed eseguendo una ricerca nel modo seguente:
> db
test
> db.foo.insert( { a : 1 } )
> db.foo.find()
{ "_id" : ObjectId("57ec477cd639891710b90727"), "a" : 1 }
> exit
Creare un cluster mongoDB partizionato complesso in CentOS usando un modello
È possibile creare un cluster mongoDB partizionato complesso usando il modello di avvio rapido di Azure seguente da GitHub. Questo modello segue le procedure consigliate per il cluster partizionato di MongoDB per garantire ridondanza e disponibilità elevata. Il modello crea due frammenti, con tre nodi in ogni insieme di repliche. Viene creato anche un set di replica del server di configurazione con tre nodi, più due server router mongos per garantire coerenza alle applicazioni provenienti da tutti gli shard.
- Cluster Shard di MongoDB su CentOS - https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-sharding-centos/azuredeploy.json
Avvertimento
La distribuzione di questo cluster con partizionamento orizzontale di MongoDB complesso richiede più di 20 core, che in genere è il numero di core predefinito per ogni area per una sottoscrizione. Aprire una richiesta di supporto di Azure per aumentare il numero di core.
Per creare questo ambiente, è necessario che Azure CLI sia installata e che abbia effettuato l'accesso a un account Azure usando az login. Creare prima un gruppo di risorse con az group create. L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella posizione eastus:
az group create --name myResourceGroup --location eastus
Quindi, distribuisci il modello MongoDB con az deployment group create. Definire i propri nomi di risorse e dimensioni, se necessario, ad esempio per mongoAdminUsername, sizeOfDataDiskInGBe 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
Questa distribuzione può richiedere più di un'ora per distribuire e configurare tutte le istanze di macchina virtuale. Il flag --no-wait viene usato alla fine del comando precedente per restituire il controllo al prompt dei comandi dopo che la distribuzione del modello è stata accettata dalla piattaforma Azure. È quindi possibile visualizzare lo stato della distribuzione con az deployment group show. L'esempio seguente visualizza lo stato per la distribuzione myMongoDBCluster nel gruppo di risorse myResourceGroup:
az deployment group show \
--resource-group myResourceGroup \
--name myMongoDBCluster \
--query [properties.provisioningState] \
--output tsv
Passaggi successivi
In questi esempi ci si connette all'istanza di MongoDB in locale dalla macchina virtuale. Se si vuole connettersi all'istanza di MongoDB da un'altra macchina virtuale o da un'altra rete, assicurarsi che le regole appropriate del gruppo di sicurezza di rete vengano create.
Questi esempi distribuiscono l'ambiente MongoDB di base a scopo di sviluppo. Applicare le opzioni di configurazione di sicurezza necessarie per l'ambiente in uso. Per altre informazioni, vedere la documentazione sulla sicurezza MongoDB.
Per ulteriori informazioni sulla creazione utilizzando i modelli, vedere la panoramica di Azure Resource Manager.
I modelli di Azure Resource Manager usano l'estensione per script personalizzati per scaricare ed eseguire script nelle macchine virtuali. Per altre informazioni, vedere Uso dell'estensione script personalizzata di Azure con macchine virtuali Linux.