image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Thiago Araújo
Thiago Araújo22/12/2022 22:10
Compartilhe

Cluster Swarm Completo Com o Vagrant (Jornada DevOps Impulso)

  • #Linux
  • #Docker
  • #GitHub

Olá, pessoal vim trazer mais uma contribuição desta vez o desafio era

(Definição de um Cluster Swarm Local com o Vagrant)

Jornada DevOps Impulso

Fiz um Cluster completo com Direito a Sistema Web incluso o projeto se encontra no meu github vamos lá..

  1. configurei o arquivo vagrantfile de acrodo com minha necessidade colocando uma rede privada e um ip fixo e um chamado para instalar o Docker logo após isso ele chama via shell outro arquivo "master.sh" isso para a maquina master, já na maquina node01 será chamado o arquivo worker.
  1. 1 o arquivo master.shell contem as seguintes funções, iniciar o Docker swarm e injetar o tokem gerando no arquivo worker depois ele injeta também nesse arquivo o chamado de instalação do nfs-common e a função mount da pasta que serar criada para comportas os arquivos web que iremos baixar do github, depois vem a criação do volume app e data em seguida ele sobe um container mysql na versão 5.7 depois cria um serviço web apache com php em seguida ele instala o nfs-server e faz o export do volume app, agora ele clona uma aplicação web que se encontra no meu github e por fim copia para a pasta html
  2. no arquivo worker ele só terá o tokem e os comandos de instalação do nfs e export importado pelo arquivo master

e agora sim temos um serviço web completo rodando meu github:

https://github.com/mathfirewall/Projeto_Docker_Cluster

Compartilhe
Comentários (2)
Thiago Araújo
Thiago Araújo - 23/12/2022 17:42

em relação o banco de dados eu geralmente uso o MariaDB e PostgreSQL bem mais rápidos

Magno Acacio
Magno Acacio - 23/12/2022 15:52

O repositorio esta bem completo no git hub existe possibilidade de agregar mais deixando mais fluido e dinamico evitando delays sistemicos em relação ao banco de dados?



machines.each do |name, conf|



config.vm.define "#{name}" do |machine|



machine.vm.box = "#{conf["image"]}"



machine.vm.hostname = "#{name}"



end machine.vm.provision "shell", path: "instalar_docker.sh"



if "#{name}" == "master"



machine.vm.provision "shell", path: "master.sh"



else machine.vm.provision "shell", path: "worker.sh" end




machine.vm.network "private_network", ip: "10.10.10.#{conf["ip"]}"





machine.vm.provider "virtualbox" do |vb|



vb.name = "#{name}"




vb.memory = conf["memory"]




vb.cpus = conf["cpu"]


//





Projeto_Docker_Cluster



instalar_docker.sh