Diferencia entre revisiones de «Vagrant»
(Página creada con « Forma parte da suite de ferramentas de Hashicorp: 400px| Suite de ferramentas de Hashicorp») |
|||
| Línea 1: | Línea 1: | ||
| + | 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: | Forma parte da suite de ferramentas de Hashicorp: | ||
[[File:Suite_hashicorp.PNG|400px| Suite de ferramentas de Hashicorp]] | [[File:Suite_hashicorp.PNG|400px| 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 [https://github.com/hashicorp/vagrant/wiki/Available-Vagrant-Plugins 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: | ||
| + | |||
| + | |||
| + | |||
| + | 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 = | ||
| + | |||
| + | * [[Escenario Vagrant 1A: Instalación e primeiro proxecto]] | ||
| + | * [[Escenario Vagrant 1B: Servidor Web]] | ||
| + | * [[Escenario Vagrant 1C: Cluster Web - Base de datos]] | ||
| + | * [[Escenario Vagrant 1D: FW-Server]] | ||
| + | * [[Escenario Vagrant 1E: Cluster de servidores web]] | ||
| + | |||
| + | |||
| + | = 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. | ||
Revisión del 16:58 13 ene 2026
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:
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:
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
- Escenario Vagrant 1A: Instalación e primeiro proxecto
- Escenario Vagrant 1B: Servidor Web
- Escenario Vagrant 1C: Cluster Web - Base de datos
- Escenario Vagrant 1D: FW-Server
- Escenario Vagrant 1E: Cluster de servidores web
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.