MongoDB instalação rápida usando o Vagrant

Introdução

Neste artigo vou apresentar uma técnica para realizar a instalação de um servidor MongoDB de forma fácil e rápida através do uso do Vagrant para criar uma máquina virtual.

Seguindo os passos descrito aqui, em poucos minutos, você terá um servidor MongoDB disponível para uso em seu ambiente de desenvolvimento.




Softwares

Para usar o método apresentado neste texto é necessário que você tenha previamente instalados alguns softwares. Relaciono abaixo os programas que são utilizados para implementar o procedimento descrito nesse artigo.

Além disso, assumi que seu ambiente está no sistema operacional Windows.

Vagrant

O Vagrant   é um software de código aberto que tem como objetivo construir e manter ambientes de software portáteis na forma de máquinas virtuais disponíveis para, conforme denomina o Vagrant, vários provedores, entre eles: VirtualBox, KVM, Hyper-V, Docker containers, VMware e AWS.

A filosofia do Vagrant é padronizar o fluxo de trabalho e os comandos necessários para o deploy de uma máquina virtual, desta forma, simplificando e aumentando a produtividade desta tarefa.

Neste sentido fornece, além da implementação de scripts padronizados, um ambiente composto por várias máquinas virtuais predefinidas e que podem ser imediatamente usadas nos projetos Vagrant.

Site oficial com download do programa e documentação: https://www.vagrantup.com/

Oracle VM Virtual Box

Como mencionei antes o Vagrant trabalha com vários hipervisores, aos quais chama de provedores ou providers, contudo o procedimento aqui descrito e o respectivo arquivo de configuração foram desenvolvidos para uso no Oracle VM Virtual Box.

Assim sendo, é necessário que seja feita a instalação deste software e para isto basta acessar o respectivo site oficial:

https://www.virtualbox.org/wiki/Downloads

Vale dizer que, em tese, este procedimento e o arquivo Vagrantfile funcionam sem necessidade de modificações também em outros provedores, porém não

GIT

É um software de controle distribuído de versões que é empregado normalmente para controle de desenvolvimento de software mas que pode ser usado em qualquer projeto que envolva colaboração de vários usuários e necessidade de controle de várias versões do projeto e respectivo arquivos.

Apesar de ser possível seguir os passos deste post mesmo sem ter o GIT instalado em seu computador, recomendo fortemente que instale o GIT, pois é uma ferramenta indispensável para o profissional de TI, seja ele um desenvolvedor de sistemas ou profissional de infraestrutura.

É possível encontrar os arquivos para download e instruções de instalação para vários sistemas operacionais no link abaixo:

https://git-scm.com/downloads

Os dois primeiros, Vagrant e Virtual Box, são imprescindíveis o último, GIT, é opcional, pois o procedimento também pode ser seguido usando o Prompt de Comando (cmd.exe) do Windows.

A instalação dos programas não será descrita no artigo, contudo não é uma tarefa complexa, e nos links oficiais citados acima estão disponíveis os downloads e instruções necessários para realizar as respectivas instalações.




O que será feito

Seguindo os passos apresentados neste artigo terminaremos com uma máquina virtual contendo um servidor do MongoDB Community Edition.

Durante o texto também serão apresentados alguns conceitos sobre o Vagrant e os respectivos arquivos de configuração responsáveis por produzir a máquina virtual descrita neste artigo.

Mãos na massa

Vamos ao que interessa, a instalação propriamente dita, para isto siga os passos abaixo:

  1. Abra o prompt de comando (shell ou terminal se estiver no Linux);
  2. Digite os comandos na sequência:

git clone https://github.com/ewertonvaz/vgrmongodb mongodb

cd mongodb

vagrant up

Instalar sem o GIT

Caso tenha optado por não instalar o GIT em seu ambiente de desenvolvimento, será necessário fazer o download do Vagrantfile apresentado neste artigo.

Para isto use o link abaixo:

https://github.com/ewertonvaz/vgrmongodb/blob/master/Vagrantfile

Após o download, sigas as seguintes instruções:

  1. crie uma pasta e nela coloque o arquivo Vagrantfile;
  2. acione o prompt de comando, shell ou terminal, e, usando o comando cd, entre na pasta que foi criada no passo anterior;
  3. Digite o comando: vagrant up

Em ambos os casos descritos acima, usando o git ou não, após o comando vagrant up, o Vagrant irá se encarregar de fazer o download de todo o software e configurações necessários para criar a máquina virtual contendo o servidor MongoDB.

Este processo, contudo, poderá ser demorado, a depender de alguns fatores como: velocidade de sua internet, quantas vezes você usou ou implementou um determinado box do Vagrant, entre outros.

Recomendo que dispare a instalação conforme descrito nestes primeiros parágrafos e, enquanto aguarda, leia o restante do post para saber um pouco mais a respeito do que está ocorrendo nos bastidores.

Nota: caso ocorra o erro:

 URL: [“https://vagrantcloud.com/laravel/homestead”] Error: SSL certificate problem: self signed certificate in certificate chain

Provavelmente é devido a uma incompatibilidade conhecida com alguns antivírus. Para prosseguir a instalação do Homestead tente pausar temporariamente o seu antivírus e reativá-lo após ter concluído esta operação.

Acessando o servidor

Após a instalação ter sido concluída haverá em seu ambiente um servidor MongoDB acessível pelo endereço ip 192.168.10.30, este endereço corresponderá a uma máquina virtual cuja placa de rede está em modo bridge.

Veremos mais adiante também que este endereço poderá se alterado caso exista algum conflito em sua rede ou caso deseje usar uma faixa de endereços diferente.

MongoDB

Para acessar o servidor recém implantado você poderá usar uma interface gráfica, o MongoDB Compass, ou a linha de comando através do shell ou prompt de comando.

Primeiro acessemos usando a linha de comando, para isto faça o seguinte:

  1. Entre no prompt de comando, ou shell, e siga, usando o comando cd, para a pasta onde foi criada a máquina virtual;
  2. Execute os comandos:

vagrant ssh

mongo 192.168.10.30

Após o último comando deverá ser exibida uma sequência de mensagens e em seguida o prompt (>) do MongoDB.

Para saber a versão do banco de dados digite no prompt o comando abaixo:

db.version()

MongoDB acessando servidor na linha de comando

Use o comando exit, duas vezes, para retornar ao prompt de comando.




MongoDB Compass

O servidor poderá ser acessado também por meio do Compass, a interface gráfica do MongoDB. Caso ainda não tenha este software instalado pode fazer o download da instalação no link:

https://www.mongodb.com/products/compass

Acione o MongoDB Compass e no campo “connection string” informe:

mongodb://192.168.10.30

Em seguida acione o botão CONNECT, e, caso tudo tenha corrido bem, deverá ver a tela abaixo:

Tela do MongoDB Compass

Os acessos descritos acima são para realizar o teste de funcionamento de nossa instalação. Em ambos os casos foi utilizado como endereço IP um valor que se encontra definido no arquivo de script que originou a respectiva máquina virtual, o Vagrantfile, este será nosso próximo tópico de estudo.

Descrevendo o Vagrantfile

A imagem abaixo ilustra o arquivo Vagrantfile, que é responsável pela criação da máquina virtual correspondente ao nosso servidor MongoDB.

Iremos agora, de forma resumida, descrever o que faz este arquivo Vagrantfile usando como referência os números das linhas ilustrado na tela acima.

Observe, contudo, que o arquivo original não possui os números, sendo esta numeração um recurso do editor de texto e podendo não estar presente a depender de qual editor você utiliza.

Alternado o IP do servidor

Na linha 2 do arquivo temo a definição da variável server_ip, ela armazena uma cadeia de caracteres que corresponde ao endereço IP de nosso servidor.

Caso queira alterar este endereço basta mudar o valor desta string.

Configurando o hipervisor

As linhas seguintes, que vão de 3 até a 7, realizam a configuração do hipervisor, que é chamado pelo Vagrant de provider, iniciando pela linha 3 que define o provider como virtualbox.

Em seguida a linha 4 define a quantidade de memória em Megabytes; a linha 5 informa que serão duas cpus e a linha 6 define o nome da máquina virtual, é este nome que será exibido na interface gráfica do Virtual Box

Sistema operacional e Rede

Ao trabalhar com o Vagrant podemos fazer o uso de boxes, ou caixas, elas podem ser entendidas como um pacote que definem os ambientes baseados no Vagrant.

O conceito de uso é que uma box irá produzir um ambiente de trabalho idêntico em qualquer das plataformas suportadas pelo Vagrant.

Na linha 9 do arquivo está a definida a box na qual será baseado nosso servidor MongoDB, que neste caso foi o Linux Ubuntu 18.0.4 (Bionic Beaver).

Neste link você pode pesquisar as várias boxes Vagrant disponíveis atualmente:

https://app.vagrantup.com/boxes/search

Prosseguindo, na linha 10, vemos a configuração da rede, primeiramente definindo a interface no modo bridge (public_network) e em seguida, na mesma linha, definindo um endereço IP fixo cujo valor é o da variável server_ip, que foi definida no início do arquivo.

Instalação do MongoDB

Passando agora para a linha 17, é a partir desta linha e até a linha 31 que é feita a instalação do MongoDB.

A linha 17 constitui o início da definição da execução de comando em um shell, as linhas seguintes são os comandos propriamente ditos. Note que cada uma delas termina com a sequência && \, que serve para encadear os comandos. Note que a linha 21 não está completa na figura acima, mas no Vagrantfile original ela também termina com a sequência mencionada.

Na prática é como se usássemos um shell do Linux para executar cada comando representado nas respectivas linhas.

As linhas 18 a 28 são mera reprodução das instruções de instalação do MongoDB presentes no site oficial e contidas no link abaixo:

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/

Na linha 29, utilizo o editor de texto sed do Linux para substituir a string 127.0.0.1, que por padrão define o servidor com sendo o local host, pela string definida na variável server_ip.

Finalizando o arquivo as linhas 30 e 31, respectivamente, configura o serviço mongod para ser iniciado automaticamente quando a máquina virtual for ligada; inicia o mongod para poder utilizar o servidor imediatamente após a primeira configuração.




Mais comandos Vagrant

Finalizando o post vou citar mais alguns comandos úteis para uso com o Vagrant:

ComandoFunção
vagrant -vexibe a versão do Vagrant
vagrant haltdesliga a máquina virtual
vagrant upliga a máquina virtual ou a reconstrói após a execução de um vagrant destroy
vagrant statusExibe o status da máquina virtual
vagrant sshcria uma seção de shell seguro que permite executar comandos na máquina virtual
vagrant reload – provisionusado para recarregar a máquina virtual após alterações em seus arquivos de configuração
vagrant destroyusado para destruir a máquina virtual em caso da mesma parar de funcionar, ela será reconstruída e reconfigurada totalmente com o vagrant up

Conclusão

Neste artigo apresentei uma forma rápida e simples de agregar ao seu ambiente de desenvolvimento um servidor MongoDB Comunnity Edtion.

Caso você já tenha o Vagrant, Virtualbox e Git instalados, seguindo o procedimento deste artigo foi possível ativar em menos de 5 minutos um servidor MongoDB pronto para uso em seu ambiente de desenvolvimento.

Apresentei também algumas vantagens de utilizar esta abordagem, entre elas: rápida restauração do ambiente, etc.

Além disso, serviu como introdução básica ao Vagrant e alguns de seus comandos mais utilizados.

Mais Vagrant

No post abaixo explico como usar o Vagrant para instalar uma máquina virtual que servirá como ambiente de desenvolvimento para o Laravel framework do PHP:

https://blog.parabah.com.br/como-instalar-laravel-homestead-maquina-virtual/

Voltar ao início