Diferencia entre revisiones de «Escenario Vagrant 1E: Cluster de servidores web»
Ir a la navegación
Ir a la búsqueda
(Página creada con « = Introdución = Aproveitándonos do feito de que o Vagrantfile está baseado en Ruby, nunha contorna onde haxa varias máquinas virtuais de configuracións similares é…») |
|||
| (No se muestra una edición intermedia del mismo usuario) | |||
| Línea 3: | Línea 3: | ||
Aproveitándonos do feito de que o Vagrantfile está baseado en Ruby, nunha contorna onde haxa varias máquinas virtuais de configuracións similares é posible crear un bucle para definilas. | Aproveitándonos do feito de que o Vagrantfile está baseado en Ruby, nunha contorna onde haxa varias máquinas virtuais de configuracións similares é posible crear un bucle para definilas. | ||
| + | |||
| + | [[File:Vagrant_Escenario_1E_Cluster_web.png|frame|center|Fig. Cluster web]] | ||
= Vagrantfile = | = Vagrantfile = | ||
| Línea 57: | Línea 59: | ||
= vagrantup = | = vagrantup = | ||
| + | |||
~/Vagrant/cluster$ vagrant up | ~/Vagrant/cluster$ vagrant up | ||
| + | |||
| + | [[File:Vagrant-cluster-servers.png|right]] | ||
| + | |||
~/Vagrant/cluster$ vagrant status | ~/Vagrant/cluster$ vagrant status | ||
| Línea 67: | Línea 73: | ||
web03 running (virtualbox) | web03 running (virtualbox) | ||
</pre> | </pre> | ||
| − | |||
| − | |||
Revisión actual del 20:37 14 ene 2026
Introdución
Aproveitándonos do feito de que o Vagrantfile está baseado en Ruby, nunha contorna onde haxa varias máquinas virtuais de configuracións similares é posible crear un bucle para definilas.
Vagrantfile
Supoñendo que a nosa contorna correspóndese coa figura, unha posible solución sería:
~/Vagrant$ mkdir cluster ~/Vagrant$ cd cluster/ ~/Vagrant/cluster$ vagrant init --minimal ~/Vagrant/cluster$ nano Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "bento/ubuntu-22.04"
# WEB
(1..3).each do |i|
config.vm.define "web0#{i}" do |node|
node.vm.hostname = "web0#{i}"
node.vm.network "private_network", ip: "192.168.56.5#{i}", netmask: "255.255.255.0"
node.vm.synced_folder "./web0#{i}", "/var/www/html", owner: "root", group: "root", mount_options: ["dmode=755,fmode=644"]
node.vm.provision "shell", path: "apache.sh"
node.vm.provider "virtualbox" do |vb|
vb.name = "web0#{i}"
# vb.gui = true
vb.memory = "1024"
vb.cpus = 1
vb.linked_clone = true
vb.customize ["modifyvm", :id, "--groups", "/Cluster"]
end
end
end
end
Temos:
- (1..3).each do |i| define un bucle con tres iteracións.
- #{i} permite ir personalizando a configuración das distintas máquinas do bucle:
- Nome das máquinas: web01, web02 e web03.
- Direccións IP: 192.168.56.51, 192.168.56.52 e 192.168.56.53.
- Cartafoles compartidos: ./web01, ./web02 y ./web03.
Descargamos o script de aprovisionamento apache.sh, creamos os cartafoles e facemos o vagrant up:
~/Vagrant/cluster$ mkdir web0{1..3}
~/Vagrant/cluster$ ls -lhF
total 20K -rw-rw-r-- 1 manuel manuel 2,4K sep 28 11:46 lamp.sh -rw-rw-r-- 1 manuel manuel 642 sep 29 01:55 Vagrantfile drwxrwxr-x 2 manuel manuel 4,0K oct 3 00:30 web01/ drwxrwxr-x 2 manuel manuel 4,0K oct 3 00:30 web02/ drwxrwxr-x 2 manuel manuel 4,0K oct 3 00:30 web03/
vagrantup
~/Vagrant/cluster$ vagrant up
~/Vagrant/cluster$ vagrant status
Current machine states: web01 running (virtualbox) web02 running (virtualbox) web03 running (virtualbox)

