1. Coneixement i configuració dels paràmetres del fitxer Vagrantfile

Tots els membres de l’equip han de conèixer els paràmetres del fitxer Vagrantfile i saber com configurar-los. A continuació es mostren els principals paràmetres utilitzats:

  • config.vm.box: Defineix la imatge base del sistema operatiu que s’utilitzarà.
  • config.vm.hostname: Estableix el nom de la màquina virtual.
  • config.vm.network: Configura la xarxa de la màquina virtual, pot ser una xarxa privada o pública.
  • config.vm.provision: Permet executar scripts provisionals per configurar la màquina després d’haver estat creada.

Exemple de configuració:

Vagrant.configure("2") do |config|

 config.vm.box = "debian" 

config.vm.hostname = "debian" 

config.vm.network "private_network", type: "dhcp" 

config.vm.provision "shell", inline: <<-SHELL /sbin/ip route del default /sbin/ip route add default via 10.0.1.1 dev eth1 SHELL end

2. Gestió de màquines virtuals amb Vagrant (up, halt, status)

Els membres de l’equip han de saber com gestionar màquines virtuals amb Vagrant mitjançant les ordres bàsiques següents:

  • vagrant up: Crea i inicia la màquina virtual.
  • vagrant halt: Atura la màquina virtual.
  • vagrant status: Mostra l’estat actual de la màquina virtual.

Exemples d’ús:

[08:52:13][Vagrant][dperez@smx2-207]-$ vagrant status

Current machine states:

debian                    poweroff (virtualbox)

Router                    poweroff (virtualbox)

windows10                 poweroff (virtualbox)

ubuntu                    poweroff (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`.


[08:52:19][Vagrant][dperez@smx2-207]-$ vagrant up Router

Bringing machine 'Router' up with 'virtualbox' provider...

==> Router: Clearing any previously set forwarded ports...

==> Router: Clearing any previously set network interfaces...

==> Router: Specific bridge 'true' not found. You may be asked to specify

==> Router: which network to bridge to.

==> Router: Preparing network interfaces based on configuration...

    Router: Adapter 1: nat

    Router: Adapter 2: intnet

    Router: Adapter 3: bridged

==> Router: Forwarding ports...

    Router: 22 (guest) => 2222 (host) (adapter 1)

==> Router: Booting VM...

==> Router: Waiting for machine to boot. This may take a few minutes...

    Router: SSH address: 127.0.0.1:2222

    Router: SSH username: vagrant

    Router: SSH auth method: private key

==> Router: Machine booted and ready!

==> Router: Checking for guest additions in VM...

==> Router: Setting hostname...

==> Router: Configuring and enabling network interfaces...

==> Router: Mounting shared folders...

    Router: /vagrant => /home/dperez/Documents/Vagrant

==> Router: Machine already provisioned. Run `vagrant provision` or use the `--provision`

==> Router: flag to force provisioning. Provisioners marked to run always will still run.
[08:53:01][Vagrant][dperez@smx2-207]-$ vagrant halt

==> Router: Attempting graceful shutdown of VM...

3. Ús del fitxer Vagrantfile per a totes les configuracions de la màquina virtual (HW i SW)

El fitxer Vagrantfile s’utilitza per configurar tant el maquinari (HW) com el programari (SW) de la màquina virtual. Això inclou la configuració de xarxes, la instal·lació de paquets necessaris i la configuració de serveis.

Exemple de Vagrantfile complet:

# -*- mode: ruby -*-

# vi: set ft=ruby :

Vagrant.configure("2") do |config|

  # Configuració de Debian

  config.vm.define "debian" do |debian|

    debian.vm.box = "debian"

    debian.vm.hostname = "debian"

    debian.vm.network "private_network", type: "dhcp", virtualbox__intnet: true, mac: "080027D14F88"

    debian.vm.provision "shell", inline: <<-SHELL

      /sbin/ip route del default

      /sbin/ip route add default via 10.0.1.33 dev eth1

    SHELL

  end

  # Configuració de Rocky Linux (Router)

  config.vm.define "Router" do |router|

    router.vm.box = "rocky"

    router.vm.hostname = "router"

    router.vm.network "private_network", ip: "10.0.1.33", netmask: "255.255.255.240", virtualbox__intnet: true, mac: "080027B2344D"

    router.vm.network "public_network", ip: "172.25.207.12", netmask: "255.255.0.0", bridge: true

    router.vm.provision "shell", inline: <<-SHELL

      /sbin/ip route add 10.0.1.48/29 via 172.25.205.12

      /sbin/ip route add 10.0.1.0/27 via 172.25.202.12

    SHELL

  end

end

Utilitzem cookies pròpies i de tercers per millorar la teva experiència de navegació i per oferir-te continguts personalitzats. Pots obtenir més informació o configurar les teves preferències a través de la nostra Política de Cookies.   
Privacidad