Partilhar via


Como instalar e configurar o MongoDB num L VM Linux

MongoDB é uma base de dados NoSQL de alta performance. Este artigo mostra-lhe como instalar e configurar o MongoDB num Linux VM com o Azure CLI. São mostrados exemplos que detalham como:

Instale e configuure manualmente o MongoDB num VM

O MongoDB fornece instruções de instalação para distros Linux, incluindo Chapéu Vermelho / CentOS, SUSE, Ubuntu e Debian. O exemplo a seguir cria um CentOS VM. Para criar este ambiente, precisa do mais recente Azure CLI instalado e iniciado numa conta Azure utilizando o login Az.

Crie um grupo de recursos com az group create. O exemplo a seguir cria um grupo de recursos chamado myResourceGroup na localização leste :

az group create --name myResourceGroup --location eastus

Crie uma VM com az vm create. O exemplo a seguir cria um VM chamado myVM com um utilizador chamado azureuser usando a autenticação de chave pública SSH

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

SSH para o VM usando o seu próprio nome de utilizador e a publicIpAddress lista na saída do passo anterior:

ssh azureuser@<publicIpAddress>

Para adicionar as fontes de instalação para o MongoDB, crie um ficheiro de repositório yum da seguinte forma:

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

Abra o ficheiro de repo MongoDB para edição, como com vi ou nano. Adicione as seguintes linhas:

[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

Instale o MongoDB utilizando o yum da seguinte forma:

sudo yum install -y mongodb-org

Por predefinição, o SELinux é aplicado em imagens CentOS que o impedem de aceder ao MongoDB. Instale ferramentas de gestão de políticas e configuure a SELinux para permitir que a MongoDB opere na sua porta TCP 27017 padrão da seguinte forma:

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

Inicie o serviço MongoDB da seguinte forma:

sudo service mongod start

Verifique a instalação do MongoDB ligando-o utilizando o cliente local mongo :

mongo

Agora teste a instância mongoDB adicionando alguns dados e, em seguida, pesquisando:

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

Se desejar, configuure o MongoDB para iniciar automaticamente durante um reboot do sistema:

sudo chkconfig mongod on

Crie uma instância básica do MongoDB no CentOS usando um modelo

Pode criar uma instância básica do MongoDB num único CentOS VM utilizando o seguinte modelo de arranque rápido Azure a partir de GitHub. Este modelo utiliza a extensão de Script Personalizado para o Linux adicionar um repositório yum ao seu VM CentOS recém-criado e, em seguida, instalar o MongoDB.

Para criar este ambiente, precisa do mais recente Azure CLI instalado e iniciado numa conta Azure utilizando o login Az. Primeiro, crie um grupo de recursos com az group create. O exemplo a seguir cria um grupo de recursos chamado myResourceGroup na localização leste :

az group create --name myResourceGroup --location eastus

Em seguida, implemente o modelo MongoDB com a criação do grupo de implantação az. Quando solicitado, insira os seus próprios valores únicos para newStorageAccountName, dnsNameForPublicIP e nome de utilizador e senha de administração:

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

Inicie sessão no VM utilizando o endereço DNS público do seu VM. Pode ver o endereço DNS público com a az vm show:

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

SSH para o seu VM usando o seu próprio nome de utilizador e endereço DNS público:

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

Verifique a instalação do MongoDB ligando-o utilizando o cliente local mongo da seguinte forma:

mongo

Agora teste o caso adicionando alguns dados e pesquisando da seguinte forma:

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

Crie um complexo Cluster De Sharded MongoDB no CentOS usando um modelo

Você pode criar um complexo cluster de aço mongoDB usando o modelo de arranque rápido Azure a partir de GitHub. Este modelo segue as melhores práticas do cluster mongoDB para proporcionar redundância e alta disponibilidade. O modelo cria dois fragmentos, com três nós em cada conjunto de réplicas. Um conjunto de réplica de servidor config com três nós também é criado, além de dois servidores de router mongos para fornecer consistência às aplicações de todos os fragmentos.

Aviso

A implementação deste complexo cluster de aço mongoDB requer mais de 20 núcleos, que é tipicamente a contagem de núcleo padrão por região para uma subscrição. Abra um pedido de suporte do Azure para aumentar a sua contagem principal.

Para criar este ambiente, precisa do mais recente Azure CLI instalado e iniciado numa conta Azure utilizando o login Az. Primeiro, crie um grupo de recursos com az group create. O exemplo a seguir cria um grupo de recursos chamado myResourceGroup na localização leste :

az group create --name myResourceGroup --location eastus

Em seguida, implemente o modelo MongoDB com a criação do grupo de implantação az. Defina os seus próprios nomes e tamanhos de recursos sempre que necessário, tais como para mongoAdminUsername, tamanhoSDiskInGB e 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

Esta implantação pode demorar mais de uma hora a implantar e configurar todas as instâncias VM. A --no-wait bandeira é utilizada no final do comando anterior para devolver o controlo à solicitação de comando uma vez que a implantação do modelo tenha sido aceite pela plataforma Azure. Em seguida, pode visualizar o estado de implantação com o show do grupo de implantação AZ. O exemplo a seguir vê o estado da implantação myMongoDBCluster no grupo de recursos myResourceGroup :

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

Passos seguintes

Nestes exemplos, liga-se ao caso MongoDB localmente a partir do VM. Se pretender ligar-se à instância MongoDB a partir de outra VM ou rede, certifique-se de que as regras adequadas do Grupo de Segurança da Rede são criadas.

Estes exemplos implantam o ambiente mongoDB central para fins de desenvolvimento. Aplique as opções de configuração de segurança necessárias para o seu ambiente. Para mais informações, consulte os documentos de segurança do MongoDB.

Para obter mais informações sobre a criação de modelos, consulte a visão geral do Azure Resource Manager.

Os modelos Azure Resource Manager usam a Extensão de Script Personalizada para descarregar e executar scripts nos seus VMs. Para obter mais informações, consulte utilizar a extensão de script personalizada Azure com Máquinas Virtuais Linux.