Vagrant — Lokálne vývojové prostredia
Vagrant od HashiCorp je nástroj na vytváranie a správu prenosných virtuálnych vývojových prostredí. Jeden Vagrantfile definuje celé prostredie — od operačného systému po nainštalovaný softvér — a každý člen tímu dostane identickú kópiu.
Čo je Vagrant?
Vagrant rieši klasický problém „u mňa to funguje." Namiesto manuálneho nastavovania vývojového prostredia definujete všetko v kóde. Nový vývojár spustí vagrant up a za pár minút má funkčné prostredie identické s produkciou.
- Prenosnosť — Vagrantfile zdieľate cez Git
- Izolácia — každý projekt má vlastnú VM
- Konzistencia — rovnaké prostredie pre celý tím
- Jednoduché —
vagrant up,vagrant ssh,vagrant destroy
Ako Vagrant funguje
- Vagrantfile — Ruby-based konfiguračný súbor popisujúci prostredie
- Box — predpripravený obraz OS (Ubuntu, CentOS, Windows)
- Provider — virtualizačná platforma (VirtualBox, VMware, Docker, Hyper-V)
- Provisioner — automatická konfigurácia po štarte (shell, Ansible, Chef)
- Synced Folders — automatická synchronizácia súborov medzi hostom a VM
Príklad Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/jammy64"
config.vm.hostname = "dev-server"
config.vm.network "forwarded_port", guest: 3000, host: 3000
config.vm.network "private_network", ip: "192.168.56.10"
config.vm.provider "virtualbox" do |vb|
vb.memory = "2048"
vb.cpus = 2
end
config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get install -y nodejs npm postgresql
npm install -g yarn
SHELL
config.vm.provision "ansible" do |ansible|
ansible.playbook = "provisioning/playbook.yml"
end
end
Základné príkazy
vagrant up— vytvorí a spustí VMvagrant ssh— pripojí sa do VMvagrant halt— zastaví VMvagrant destroy— zmaže VMvagrant reload— reštartuje s aktualizovanou konfiguráciouvagrant snapshot— vytvorí snapshot pre rýchly návrat
Praktické použitie
- Onboarding nových vývojárov — funkčné prostredie za minúty
- Testovanie na rôznych OS — Ubuntu, CentOS, Windows v jednom projekte
- Multi-machine setup — simulácia distribuovaných systémov lokálne
- Reprodukcia production prostredia pre debugging
Best Practices
- Verzionujte Vagrantfile spolu s projektom v Git
- Používajte provisioning namiesto manuálnej konfigurácie
- Vyberajte oficiálne boxy z Vagrant Cloud
- Pre väčšie tímy vytvorte vlastný base box s predpripraveným softvérom
- Zvážte Docker provider pre ľahšiu alternatívu k plným VM
- Dokumentujte požiadavky na host systém (RAM, disk)
Vagrant zostáva užitočný nástroj pre lokálny vývoj, hoci v mnohých scenároch ho nahradili kontajnery a Dev Containers.