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 uma instância básica do MongoDB
- Crie uma instância básica do MongoDB usando um modelo de Resource Manager
- Crie um complexo cluster de caco MongoDB com conjuntos de réplicas usando um modelo de Resource Manager
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.
- Instância básica do MongoDB no CentOS - https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-on-centos/azuredeploy.json
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.
- Cluster de fragmentos de MongoDB no CentOS - https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/mongodb-sharding-centos/azuredeploy.json
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.