Az előző cikkben eljutottunk egy fullos egygépes környezethez, most jöhet a többgépes labor környezet.
Van már egy CentOS 7 VM-ünk, adjunk hozzá egy Almalinux 8-at, egy Ubuntu 22.02-t és egy Debian 11-et. Nyissuk meg szerkesztésre a Vagrantfile-t, és töröljük a benne lévő kódunkat, majd ezt másoljuk bele:
Vagrant.configure("2") do |config|
config.vm.define "vm1" do |vm1|
vm1.vm.network "private_network", ip: "192.168.56.2"
vm1.vm.box = "centos/7"
vm1.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = 2
end
vm1.vm.provision "shell", inline: <<-SHELL
yum install mc epel-release httpd net-tools -y
yum update -y
systemctl enable --now httpd
echo "vm1" > /etc/hostname
hostname -F /etc/hostname
SHELL
end
config.vm.define "vm2" do |vm2|
vm2.vm.network "private_network", ip: "192.168.56.3"
vm2.vm.box = "almalinux/8"
vm2.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = 2
end
vm2.vm.provision "shell", inline: <<-SHELL
dnf install mc epel-release httpd net-tools -y
dnf update -y
systemctl enable --now httpd
echo "vm2" > /etc/hostname
hostname -F /etc/hostname
SHELL
end
config.vm.define "vm3" do |vm3|
vm3.vm.network "private_network", ip: "192.168.56.4"
vm3.vm.box = "ubuntu/jammy64"
vm3.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = 2
end
vm3.vm.provision "shell", inline: <<-SHELL
apt-get update && apt-get upgrade -y
apt-get clean
apt-get install mc apache2 -y
echo "vm3" > /etc/hostname
hostname -F /etc/hostname
SHELL
end
config.vm.define "vm4" do |vm4|
vm4.vm.network "private_network", ip: "192.168.56.5"
vm4.vm.box = "debian/bullseye64"
vm4.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = 2
end
vm4.vm.provision "shell", inline: <<-SHELL
apt-get update && apt-get upgrade -y
apt-get clean
apt-get install mc apache2 -y
echo "vm4" > /etc/hostname
hostname -F /etc/hostname
SHELL
end
end
Nincs más hátra, mint, hogy elindítsuk az összes VM-ünket, ha kiadjuk a szokásos „$ vagrant up
” parancsot, akkor mind a négy VM-et el fogja indítani (abc sorrendben)! Ezért, ha a jövőben csak egy VM-et szeretnél elindítani, add ki ezt a parancsot:
$ vagrant up vm1
Ahol vm1 az elindítandó VM neve.
Az én laptopomon a 4 VM elindítása és frissítése 10 perc 46 másodpercig tartott.
Ha be szeretnél lépni egy bizonyos VM-be, add ki ezt a parancsot:
$ vagrant ssh vm1
Ahol vm1 a kiválasztott VM neve.
Most már mind a négy szerverünkön fut egy-egy apache webszerver:
Ahogy a Vagrantfile-ból ki lehet olvasni, ezek a négy szerverünk adatai:
Hoszt név | IP cím |
vm1 | 192.168.56.2 |
vm2 | 192.168.56.3 |
vm3 | 192.168.56.4 |
vm4 | 192.168.56.5 |
A szokások „vagrant status
” most így fest:
$ vagrant status
Current machine states:
vm1 running (virtualbox)
vm2 running (virtualbox)
vm3 running (virtualbox)
vm4 running (virtualbox)
This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run `vagrant status NAME`.
Összefoglalás
Az egész Vagrantfile-unk csak 62 sor, mégis definiáltunk benne 4 különböző operációs rendszert, szükség esetén akár mind a négyet más-más erőforrással, mind a 4 VM-re feltelepíti a kívánt alkalmazásokat, befrissíti a rendszert, beállítja a hoszt neveket, stb. És az egészet létrehozza a semmiből negyed óra alatt 🙂
Ennyi lett volna a Vagrant bemutatása, ha a három cikket végig olvastad, netán meg is csináltál velem együtt minden feladatot, akkor már könnyű dolgod van, gyorsan össze tudsz dobni magadnak egy labor környezetet. A vagrant weboldalán rengeteg előre elkészített OS imidzs található, válassz kedvedre, csak be kell illesztened a Vagrantfile-odba. Itt is érvényes a szabály, lehetőleg csak hivatalos fájlokat tölts le, mivel nem tudhatod, hogy magánszemélyek által készítettekben nincs-e valami ártó szándék.
Az én Vagrantfile-om 690 soros, 32 különböző VM van benne definiálva, nagyon sok mindent tudok tesztelni velük…
Szép leírás ez is.
Tetszik a gyors telepítés, a rendszer elvégez mindent.