Diferencia entre revisiones de «Vagrant»

De MediaWiki
Ir a la navegación Ir a la búsqueda
 
(No se muestran 3 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
 +
 +
[[Category:DAW]]
 +
[[Category:ASIR]]
 +
[[Category:IAW]]
 +
 +
= Introdución =
  
 
[[File: Iac.png|thumb|400px| Fig. Infrastructure as code (IaC)]]
 
[[File: Iac.png|thumb|400px| Fig. Infrastructure as code (IaC)]]
Línea 72: Línea 78:
 
= Referencias =
 
= Referencias =
 
* Curso G2501013 Escenarios de seguridade en contornas de alta dispoñibilidade e cloud computing cofinanciado polo Fondo Social Europeo: "O FSE inviste en ti", impartido por D. Manuel González Regal, profesor de informática no IES San Clemente de Santiago de Compostela.
 
* Curso G2501013 Escenarios de seguridade en contornas de alta dispoñibilidade e cloud computing cofinanciado polo Fondo Social Europeo: "O FSE inviste en ti", impartido por D. Manuel González Regal, profesor de informática no IES San Clemente de Santiago de Compostela.
 +
* [https://developer.hashicorp.com/vagrant/tutorials Vagrant tutorials]
 +
* [https://www.redeszone.net/tutoriales/servidores/vagrant-instalacion-configuracion-ejemplos/ Vagrant: Instalación, configuración y ejemplos de uso]
 +
* [https://devopscube.com/vagrant-tutorial-beginners/ Vagrant tutorial for beginners]
 +
 +
[[Category: Caixa de ferramentas]]

Revisión actual del 10:37 20 abr 2026


Introdución

Fig. Infrastructure as code (IaC)

Vagrant é unha ferramenta de software que proporciona contornas de traballo portables e reproducibles usando máquinas virtuais. Con Vagrant pódese conseguir de forma sinxela que todos os membros dun grupo (p.e. programadores, alumnos, ...) teñan a mesma contorna de traballo, mesmas versións de software, dependencias, configuracións, … Elimínase o famoso ‘na miña máquina funciona’ causado por traballar con diferentes configuracións ou versións de software.

Vagrant pódese considerar unha ferramenta de Infrastructure as code (IaC), onde se aprovisiona e xestiona unha infraestrutura IT a través de código no canto de procedementos estándar ou manuais. Basicamente faise unha descrición da infraestrutura (servidores, bases de datos, redes, balanceadores, ...) e seguindo o principio de que o mesmo código fonte xera o mesmo binario, un modelo IaC xera a mesma infraestrutura cada vez que se lanza. IaC permite automatizar o despregamento dunha infraestrutura de forma que sexa un proceso consistente, repetible, rápido, sinxelo e con aforro de custos.

Forma parte da suite de ferramentas de Hashicorp:

Suite de ferramentas de Hashicorp

Todos empregamos ferramentas como Virtualbox para montar escenarios prácticos co alumnado e o procedemento máis habitual é indicar, ben de palabra ou por escrito, as máquinas que precisamos, as súas conexións de rede e o software que desexamos. Unha vez que o alumnado coñece os compoñentes da infraestrutura procede a crear as máquinas cos recursos necesarios (procesadores, RAM, adaptadores de rede, ...), instalar sistemas operativos (ben de cero ou ben a través de clonacións), configurar a rede das máquinas, instalar e configurar software, ... Se máis adiante tense que montar de novo esta infraestrutura habería que repetir o mesmo proceso, todo é moi manual. Vagrant o que busca é automatizar todo o proceso de creación da infraestrutura.

Terminoloxía

En Vagrant úsanse os seguintes termos:

Box
imaxe base compatible cun provider (p.e. Virtualbox) a partir da cal Vagrant creará novas máquinas virtuais.
Host
equipo anfitrión no que está instalado Vagrant.
Guest
máquina virtual creada por Vagrant.
Providers
sistema de virtualización a usar. Aínda que Virtualbox é o provider por defecto, Vagrant pode traballar con outros como KVM, VMWARE, ...
Plugins
permiten engadir a Vagrant funcionalidades extras, como novos providers. Por exemplo, o plugin vagrant-vbguest permite actualizar automaticamente as Virtualbox Guest additions se fose necesario. No sitio web pódese atopar unha extensa listaxe de plugins.
Provisioners
permiten automatizar a configuración das máquinas virtuais instalando paquetes, configurando servizos ou realizando outro tipo de tarefas. Aínda que o seu uso non é obrigatorio; non usalos limita a Vagrant ó papel de describir e implementar unha infraestrutura, cousa que podería facerse manualmente. Exemplos de provisiones están os scripts (e comandos) de shell, Ansible, Chef e puppet.
Vagrantfile
ficheiro que describe as máquinas necesarias (guests) para un proxecto, como configuralas e aprovisionalas. A súa sintaxe baséase en Ruby e consta dun conxunto de directivas ás que se lle asignan os valores que nos interesan.
Synced folders
cartafoles compartidos entre o host e os guests. Isto permite; por exemplo, que se traballe no host cun IDE determinado e se proben inmediatamente os desenvolvementos nun servidor virtual (guest).

Fluxo de traballo

Na seguinte imaxe recóllese a forma de traballar con Vagrant:

Fig. Fluxo de traballo con Vagrant

Unha vez definida a infraestrutura nun arquivo de texto (Vagrantfile) lánzase o comando vagrant up para iniciar o proceso de creación da mesma.

Vagrant le o contido do Vagrantfile e comeza a darlle instruccións ó provider (p.e. Virtualbox) indicándolle:

  • Cantas máquinas virtuais ten que crear e os seus recursos hardware: cpus, RAM, adaptadores de rede e modo de traballo (só-anfitrión, bridge, ...), etc.
  • As redireccións de portos para facer accesibles servizos correndo nas máquinas virtuais,
  • As carpetas compartidas entre o host e os guests.

O provider comezará o proceso de creación das máquinas en base ó recollido no Vagrantfile, pero para non ter que facer unha instalación de cero do sistema operativo, empregará as imaxes (box) indicadas no Vagrantfile para crear as máquinas virtuais a partir delas. As boxes a empregar descárganse do sitio web app.vagrantup.com ou cóllense do propio equipo anfitrión no caso de xa telas descargadas

Unha vez creada a máquina virtual, Vagrant encárgase de configurar os adaptadores de rede (dirección IP, máscara) e prepara as máquinas virtuais para ser accesibles vía ssh dende o equipo anfitrión.

No caso de estar indicado un aprovisionamento no Vagrantfile, Vagrant chama ó provisioner indicado para que éste execute as accións correspondentes; por exemplo, actualizar o sistema, instalar e configurar software, ...

Unha vez rematado o proceso de creación da infraestrutura, o usuario poderá conectarse ás máquinas virtuais vía ssh executando o comando vagrant ssh

Escenarios


Referencias