GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar Vagrant con el proveedor KVM de Libvirt

De forma predeterminada, Vagrant utiliza Oracle VirtualBox como proveedor. Si hay más de un proveedor instalado (por ejemplo, Virtualbox y Libvirt) en su sistema, siempre iniciará una VM con Virtualbox a menos que proporcione explícitamente un proveedor específico. En esta breve guía, veamos cómo usar Vagrant con el proveedor Libvirt KVM en Linux.

vagabundo no es un proveedor de virtualización independiente. Se basa en otros proveedores de virtualización como Virtualbox, Libvirt/KVM, Docker, VMWare para crear y ejecutar máquinas virtuales.

Una de las grandes características de Vagrant es que los usuarios nunca están atados a una plataforma de virtualización específica. Los usuarios pueden crear flujos de trabajo que funcionan con múltiples proveedores de virtualización.

Actualmente, Vagrant admite más de 30 proveedores. Puede ver la lista completa de proveedores admitidos aquí .

1. Instalar KVM en Linux

Primero, necesita instalar KVM en su sistema Linux. Ya hemos documentado los pasos de instalación de KVM para sistemas basados ​​en DEB y RPM. Simplemente siga los enlaces para instalar KVM en su distribución de Linux preferida.

  • Instalar y configurar KVM en el servidor CentOS 8
  • Instalar y configurar KVM en Ubuntu 20.04 servidor sin cabeza
  • Instalar y configurar KVM en OpenSUSE Tumbleweed

2. Instale el complemento vagrant-libvirt en Linux

Para ejecutar máquinas virtuales Vagrant en KVM, debe instalar vagrant-libvirt enchufar. Este complemento agrega el proveedor Libvirt a Vagrant y permite que Vagrant controle y aprovisione máquinas a través de Libvirt.

Instale las dependencias necesarias para vagrant-libvirt complemento.

En Ubuntu:

$ sudo apt install qemu libvirt-daemon-system libvirt-clients libxslt-dev libxml2-dev libvirt-dev zlib1g-dev ruby-dev ruby-libvirt ebtables dnsmasq-base

En CentOS, Fedora:

$ sudo dnf install gcc libvirt libvirt-devel libxml2-devel make ruby-devel

Ahora, instala vagrant-libvirt complemento usando el comando:

$ vagrant plugin install vagrant-libvirt

También necesita instalar vagrant-mutate complemento que convierte las cajas vagabundas para que funcionen con diferentes proveedores.

$ vagrant plugin install vagrant-mutate

3. Use Vagrant con el proveedor KVM de Libvirt

3.1. Asegúrese de que el cuadro Vagrant que desea usar sea compatible con el proveedor libvirt. Para descubrir cajas vagabundas compatibles con libvirt, simplemente seleccione "libvirt" opción en el repositorio de Vagrant Cloud.

A los efectos de esta guía, voy a utilizar una caja de CentOS 7.

3.2. Vaya al directorio de su proyecto Vagrant e inicialice el entorno Vagrant:

$ vagrant init centos/7

3.3. A continuación, ejecute el siguiente comando para iniciar la máquina virtual:

$ vagrant up --provider=libvirt

Aquí, --provider=libvirt La opción le dice explícitamente a Vagrant que use libvirt KVM para ejecutar la máquina virtual. Significado:KVM actúa aquí como proveedor predeterminado.

Salida de muestra:

Bringing machine 'default' up with 'libvirt' provider...
==> default: Box 'centos/7' could not be found. Attempting to find and install...
    default: Box Provider: libvirt
    default: Box Version: >= 0
==> default: Loading metadata for box 'centos/7'
    default: URL: https://vagrantcloud.com/centos/7
==> default: Adding box 'centos/7' (v2004.01) for provider: libvirt
    default: Downloading: https://vagrantcloud.com/centos/boxes/7/versions/2004.01/providers/libvirt.box
Download redirected to host: cloud.centos.org
    default: Calculating and comparing box checksum...
==> default: Successfully added box 'centos/7' (v2004.01) for 'libvirt'!
==> default: Uploading base box image as volume into Libvirt storage...
==> default: Creating image (snapshot of base box volume).
==> default: Creating domain with the following settings...
==> default:  -- Name:              myvagrants_default
==> default:  -- Domain type:       kvm
==> default:  -- Cpus:              1
==> default:  -- Feature:           acpi
==> default:  -- Feature:           apic
==> default:  -- Feature:           pae
==> default:  -- Memory:            512M
==> default:  -- Management MAC:    
==> default:  -- Loader:            
==> default:  -- Nvram:             
==> default:  -- Base box:          centos/7
==> default:  -- Storage pool:      default
==> default:  -- Image:             /var/lib/libvirt/images/myvagrants_default.img (41G)
==> default:  -- Volume Cache:      default
==> default:  -- Kernel:            
==> default:  -- Initrd:            
==> default:  -- Graphics Type:     vnc
==> default:  -- Graphics Port:     -1
==> default:  -- Graphics IP:       127.0.0.1
==> default:  -- Graphics Password: Not defined
==> default:  -- Video Type:        cirrus
==> default:  -- Video VRAM:        9216
==> default:  -- Sound Type:	
==> default:  -- Keymap:            en-us
==> default:  -- TPM Path:          
==> default:  -- INPUT:             type=mouse, bus=ps2
==> default: Creating shared folders metadata...
==> default: Starting domain.
==> default: Waiting for domain to get an IP address...
==> default: Waiting for SSH to become available...
    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: Rsyncing folder: /home/sk/myvagrants/ => /vagrant

Como puede ver en la primera línea del resultado anterior, Vagrant usa el proveedor "libvirt" para iniciar la máquina virtual CentOS 7.

3.4. Alternativamente, puede decirle a Vagrant que use libvirt de forma permanente como proveedor predeterminado agregando la siguiente variable de entorno.

export VAGRANT_DEFAULT_PROVIDER=libvirt

4. Verifique si la VM se está ejecutando en Libvirt KVM

4.1. Puede verificar si CentOS 7 VM realmente se está ejecutando en el proveedor Libvirt KVM de Virsh interfaz de línea de comandos.

$ virsh list

Salida de muestra:

 Id   Name                 State
------------------------------------
 2    myvagrants_default   running

O usa vagrant status comando:

$ vagrant status

4.2. También puede verificarlo desde aplicaciones GUI de administración de KVM como Virt-manager .

5. Solución de problemas

Si otro cuadro de Vagrant ya está usando un proveedor diferente (por ejemplo, virtualbox), verá el siguiente mensaje de error cuando intente iniciar la nueva máquina virtual:

$ vagrant up --provider libvirt
An active machine was found with a different provider. Vagrant
currently allows each machine to be brought up with only a single
provider at a time. A future version will remove this limitation.
Until then, please destroy the existing machine to up with a new
provider.

Machine name: default
Active provider: virtualbox
Requested provider: libvirt

Como se indica en el resultado anterior, Vagrant puede ejecutar una VM con un solo proveedor a la vez. Esta limitación podría ser resuelta en la versión futura.

Antes de ejecutar otra VM con un proveedor diferente, primero elimine la máquina activa existente usando el comando:

$ vagrant destroy 

Escriba "y" y presione ENTER para eliminar la máquina activa predeterminada:

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

Ahora inicie la VM con un nuevo proveedor, es decir, KVM en este caso:

$ vagrant up --provider libvirt

6. Conclusión

En esta guía, aprendimos a usar Vagrant con el proveedor KVM libvirt en Linux. También analizamos cómo verificar si la máquina virtual se ejecuta en Libvirt KVM.


Linux
  1. Cómo uso Vagrant con libvirt

  2. Cómo usar el comando ethtool con ejemplos

  3. Cómo usar la exportación con Python en Linux

  4. Cómo usar la memoria compartida con Linux en C

  5. cómo usar python2.7 pip en lugar de pip predeterminado

Cómo cambiar la ubicación del grupo de almacenamiento predeterminado de KVM Libvirt

Cómo usar PostgreSQL con la aplicación Ruby on Rails

Cómo trabajar con Ansible Provisioner en Vagrant

Cómo usar una clave SSH con usuarios no root

Cómo usar el comando de apagado con ejemplos

Cómo usar Let's Encrypt con Cloudflare