Skip to content
Menu
msandor honlapja
  • Bemutatkozás
msandor honlapja

Vagrant: teszt környezet villámgyorsan

Posted on 2023.06.26.2023.09.17.

Ebben a cikkben megpróbálom leírni, hogy hogyan építek a laptopomon egy komplett labor környezetet.

Miért van szükségem egyáltalán labor környezetre?

  • nem akarom teleszemetelni az elsődleges operációs rendszeremet (jelenleg Fedora Linux 38)
  • a tesztelendő alkalmazást másik operációs rendszeren akarom kipróbálni (például olyanon, ami a prod szerveren fut)
  • az is lehet, hogy a saját ansible playbookom több operációs rendszerrel is kompatibilissé szeretném tenni
  • stb.

Mi az a Vagrant?

A weboldaluk szerint:

A Vagrant egy eszköz a virtuális gép környezetek egyetlen munkafolyamatban történő létrehozására és kezelésére. A könnyen használható munkafolyamattal és az automatizálásra összpontosítva a Vagrant csökkenti a fejlesztői környezet beállítási idejét…

https://developer.hashicorp.com/vagrant/intro

Több virtualizációs technológiát is támogat, én szinte kizárólag Virtualbox alatt használom (a virtualbox telepítése nem része ennek a cikknek, viszont a vagrant használatához kell, így csak úgy fogj neki, ha már működik a gépeden).

Kezdjük el az ismerkedést

Első lépés, töltsük le és telepítsük az operációs rendszerünkre a vagrantot. Praktikus repóból telepíteni, így a frissítéseket is megkapjuk. Fedora Linuxon így kell csinálni:

sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo https://rpm.releases.hashicorp.com/fedora/hashicorp.repo
sudo dnf -y install vagrant

Vegyük elő a kedvenc terminál emulátorunkat, és hozzunk létre egy mappát, mondjuk vagrant néven, majd lépjünk is bele:

$ mkdir vagrant
$ cd vagrant

Ellenőrizzük le a verziót (a cikk írásakor 2.3.7):

$ vagrant -v

Még nem említettem, a vagrant mindent a „Vagrantfile” nevű fájlba tesz, előbb ezt létre kell hozni, kezdésnek egy CentOS 7 Linuxot szeretnénk:

$ vagrant init centos/7
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

Mit tartalmaz a létrehozott Vagrantfile? Ha eltávolítjuk a kommenteket, ez a minimál konfig marad, ami elég a CentOS 7 futtatásához:

Vagrant.configure("2") do |config|
 config.vm.box = "centos/7"
end

Indítsunk el egy CentOS 7-es virtuális gépet a vagranttal (első indításkor letölti a választott OS imidzset, nálam ez már korábban megtörtént):

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos/7'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'centos/7' version '2004.01' is up to date...
==> default: Setting the name of the VM: demo_default_1687813267367_10213
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: 
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default: 
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: No guest additions were detected on the base box for this VM! Guest
    default: additions are required for forwarded ports, shared folders, host only
    default: networking, and more. If SSH fails on this machine, please install
    default: the guest additions and repackage the box to continue.
    default: 
    default: This is not an error message; everything may continue to work properly,
    default: in which case you may ignore this message.
==> default: Rsyncing folder: /home/msandor/vagrant/demo/ => /vagrant

El is készült az első virtuális szerverünk, fut is, ellenőrizzük le:

$ vagrant status
Current machine states:

default                   running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.

Azt írja, hogy fut, méghozzá virtualbox alatt, illetve mutat pár lehetőséget. Lépjünk be a virtuális szerverünkre. Erre két lehetőségünk is van, a bonyolultabb módszer:

$ ssh -p 2222 -i .vagrant/machines/default/virtualbox/private_key vagrant@127.0.0.1

És a sokkal egyszerűbb módszer:

$ vagrant ssh

Fontos tudnivalók!

A vagrant fejlesztői/teszt környezetre lett kitalálva, ezért bevezettek néhány biztonságot gyengítő lépést, hogy nekünk könnyebb legyen az életünk. Például nem kér jelszót belépéskor, nem kér jelszót sudo-záskor. A virtuális gép (továbbiakban: VM) nem érhető el a belső hálózatodról, de még az őt futtató gépedről sem, mivel NAT-olt hálózatot kapott.

Még pár lehetőség

VM törlése:

$ vagrant destroy
   default: Are you sure you want to destroy the 'default' VM? [y/N] y
==> default: Destroying VM and associated drives...

Ha módosítottunk a Vagranfile-on, akkor indítsuk újra a VM-et:

$ vagrant reload

És a végére is értünk a vagrant alapoknak. A következő cikkemben bemutatom, hogyan futhat több, akár különböző VM egyszerre, hogyan állítsuk be az erőforrásokat (memória, cpu, hálózat), hogyan kell frissíteni az imidzseket, stb.

1 thought on “Vagrant: teszt környezet villámgyorsan”

  1. Attila Papp szerint:
    2024.04.10. 08:36

    Szia!
    Ez egy szuper leírás!

    Válasz

Vélemény, hozzászólás? Válasz megszakítása

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Kategóriák

  • ansible
  • docker
  • e-mail
  • git
  • hardware
  • hibakeresés
  • kubernetes
  • ldap
  • Linux
  • MariaDB
  • OpenWrt
  • Proxmox
  • security
  • SNMP
  • Synology
  • teszt
  • Unifi
  • UPS
  • vagrant
  • Virtualbox
  • zabbix
©2025 msandor honlapja | WordPress Theme by Superb WordPress Themes

Adatkezelési tájékoztató || Hibát talált az oldalon? Írja meg nekem. || Impresszum || Powered by WordPress

Oldalunk cookie-kat ("sütiket") használ. Ezen fájlok információkat szolgáltatnak számunkra a felhasználó oldallátogatási szokásairól a legjobb felhasználói élmény nyújtása érdekében, de nem tárolnak személyes információkat, adatokat. Szolgáltatásaink igénybe vételével Ön beleegyezik a cookie-k használatába. Kérjük, hogy kattintson az Elfogadom gombra, amennyiben böngészni szeretné weboldalunkat.ElfogadomAdatvédelmi irányelvek