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á..
- 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 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
- 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:




em relação o banco de dados eu geralmente uso o MariaDB e PostgreSQL bem mais rápidos
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