Utilizando o Vagrant para subir uma aplicação do ViaCep com Ngnix
Primeiramente vamos instalar o Vagrant na sua máquina e dependendo da sua distribuição a forma é diferente. Segue o link da documentação oficial: https://www.vagrantup.com/downloads
Próximo passo, após o Vagrant instalado, abra o terminal da sua distro (no caso eu utilizo o Fedora) e digite o comando "vagrant init ubuntu/focal64"
Vai aparecer essa tela:
Vai criar o arquivo Vagrantfile, é com ele que vamos trabalhar como Infraestrutura como Código - IaaC, eu abri meu arquivo com o VsCode
Vou deixar o nosso código já pronto e explicar passo a passo. Por isso, vamos limpar esse arquivo:
"Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/focal64"
config.vm.provision "shell", inline: <<-SHELL apt-get update apt-get install -y apache2 SHELL end
Como podemos observar, o Vagrantfile vem como padrão o apache2 para usar de BD, mas vamos trocar pelo Nginx. Com isso você deleta o apache2 e insere Nginx
Explicando o código: Vagrant.configure("2") do |config| --> O arquivo de configuração inicial do Vagrantfile necessário para rodar o script config.vm.box = "ubuntu/focal64" --> Esse comando informa qual imagem vamos utilizar, vamos utilizar o Ubuntu na sua ultima versão a focal de 64bits config.vm.provision "shell", inline: <<-SHELL --> Aqui é um dos pontos mais importantes, vamos começar o provisionamento da nossa maquina. Os comando que vão ser executados depois que subir a maquina virtual, e os comandos vão ser em shell script
apt update --> Update do sistema apt install -y ngnix --> instalação do serviço do nginx SHELL
Perceberam que tem dois SHELL, um indica a aberta e o outro o fechamento do provision.
end --> indica o fim do arquivo.
- REMOVE O -GET, deixa só apt install -y nginx
Muito cuidado na hora de digitar os comandos, pois o arquivo é case sensitive.
Depois de salvar o arquivo, vamos executar com o comando vagrant up
Quando finalizar, vocês teram algo parecido com isso aqui
Para saber se está tudo ok, damos o comando vagrant status
O resultado tem que ser igual ao da imagem. Pronto, subimos nossa máquina. Agora ver se o serviço está funcionando normal, vamos dar o comando vagrant ssh, assim acessaremos a máquina via SSH.
Vai aparecer algo como essa tela. Agora damos o comando systemctl status nginx
A tela será igual a esta. Se sua tela for igual a esta, tudo até agora deu certo, até agora kkk Pode dar um exit, para sair da maquina ubuntu que estavamos em acesso via ssh. Agora vamos apimentar um pouco as coisas com novos comandos Primeiramente vamos no site https://viacep.com.br/exemplo/javascript/
Copiamos todo o codigo html da pagina Voltamos nosso editor de texto, e dentro da pasta que estamos com o Vagrantfile, criamos mais uma pasta com o nome html, e dentro dela uma arquivo html com o nome de index.html e colocamos o codigo, não vou entrar em detalhes nessa parte, pois vamos apenas aproveitar a API.
Salvamos o arquivo e voltamos para o nosso Vagrantfile. Agora vamos por mais paramentros do proprio Vagrant Vou por o codigo e explicar cada um novamente
adicionaremos os seguintes codigos: config.vm.network "forwarded_port", guest: 80, host: 8080 --> Estamos fazendo um direcionamento de porta, a porta 8080 do host(nossa maquina fisica) vai passar a ser a porta 80 da nossa maquina virtual(guest)
config.vm.network "public_network", ip: "192.168.1.13" --> public_network estamos indicando o modo bridge do nosso adaptador de rede, e ip estamos setando um ip fixo para nossa maquina, muito util quando vamos subir muitas maquinas, para não ficar dando ssh em todas para descobrir o ip de cada uma, uma boa pratica pensando em DevOps
config.vm.synced_folder "./html", "/var/www/html" --> Estamos sincronizando as pastas, no caso estamos jogando a pasta html e seu conteudo(index.html) para dentro da nossa maquina virtual dentro do html para subir a aplicação da via cep
Terminado tudo, vamos salvar e dar o seguinte comando vagrant reload, este comando vai recarregar o arquivo do Vagrantfile
Caso pare nessa parte, digite 1, isso ocorre quando tem mais de uma placa de rede no computador do host
Observamos o forwarding ports em ação
Aqui o synced folders
No final vamos no nosso navegador e digitamos o ip do guest no nosso caso é 192.168.1.13
ao colocar um cep valido ele carrega com as informações assim mostrando que tudo está ok
Agradeço você e acompanhou esse pequeno tutorial. Bons estudos