GNU/Linux >> Tutoriales Linux >  >> Linux

Cree rápidamente imágenes de máquinas virtuales con Virt-builder

Constructor virtual es una herramienta de línea de comandos para crear una variedad de imágenes de máquinas virtuales para uso local o en la nube, fácil y rápidamente. También tiene muchas opciones para personalizar las imágenes. Puede instalar nuevas aplicaciones en la imagen de la máquina virtual, establecer un nombre de host, establecer una contraseña raíz, ejecutar un comando o una secuencia de comandos cuando la máquina virtual invitada se inicia por primera vez, agregar o editar archivos en la imagen del disco y más. Todas estas tareas se pueden realizar desde la línea de comandos y no requieren permisos de root.

Virt-builder descarga las plantillas del sistema operativo firmadas digitalmente y limpiamente preparadas, por lo que no tiene que instalar manualmente el sistema operativo. Todo lo que tienes que hacer es usar el Virt-manager GUI o Virt-install herramienta de línea de comandos para iniciar instantáneamente las máquinas virtuales con las plantillas predefinidas. Virt-builder proporciona plantillas de sistema operativo mínimas para variantes populares de Linux y Unix. Por supuesto, también puede crear su propia plantilla.

Instalar Virt-builder en Linux

Virt-builder es parte de la biblioteca Libguestfs, así que asegúrese de haberlo instalado como se describe en la siguiente guía.

  • Acceda y modifique imágenes de disco de máquinas virtuales con Libguestfs

Cree imágenes de máquinas virtuales con Virt-builder

Crear imágenes de máquinas virtuales con Virt-builder es bastante fácil y sencillo.

Lista de plantillas de máquinas virtuales disponibles

Primero, enumere las plantillas de sistema operativo disponibles. Para hacerlo, ejecute:

$ virt-builder --lista

Al momento de escribir esta guía, las siguientes plantillas estaban disponibles:

centos-6 x86_64 CentOS 6.6centos-7.0 x86_64 CentOS 7.0centos-7.1 x86_64 CentOS 7.1centos-7.2 aarch64 CentOS 7.2 (aarch64)centos-7.2 x86_64 CentOS 7.2centos-7.3 x86_64 CentOS 7.3centos-7.4 x86_64 CentOS- 7.5 x86_64 CentOS 7.5centos-7.6 x86_64 CentOS 7.6centos-7.7 x86_64 CentOS 7.7centos-7.8 x86_64 CentOS 7.8centos-8.0 x86_64 CentOS 8.0centos-8.2 x86_64 CentOS 8.2cirros-0.3.1 x86-64 Cirros x8.3_cirros 0.46_64 0.3.5debian-10 x86_64 Debian 10 (buster)debian-6 x86_64 Debian 6 (Squeeze)debian-7 sparc64 Debian 7 (Wheezy) (sparc64)debian-7 x86_64 Debian 7 (wheezy)debian-8 x86_64 Debian 8 (jessie) debian-9 x86_64 Debian 9 (stretch)fedora-26 aarch64 Servidor Fedora® 26 (aarch64)fedora-26 armv7l Servidor Fedora® 26 (armv7l)fedora-26 i686 Servidor Fedora® 26 (i686)fedora-26 ppc64 Servidor Fedora® 26 (ppc64) fedora-26 ppc64le Servidor Fedora® 26 (ppc64le)fedora-26 x86_64 Servidor Fedora® 26fedora-27 aarch64 Servidor Fedora® 27 (aarch64)fedora-27 armv7l Servidor Fedora® 27 (armv7l)fedora-27 i686 Servidor Fedora® 27 (i686 )fedora-27 ppc64 Servidor Fedora® 27 (ppc64)fedora-27 ppc64le Servidor Fedora® 27 (ppc64le)fedora-27 x86_64 Servidor Fedora® 27fedora-28 i686 Servidor Fedora® 28 (i686)fedora-28 x86_64 Servidor Fedora® 28fedora- 29 aarch64 Servidor Fedora® 29 (aarch64)fedora-29 i686 Servidor Fedora® 29 (i686) fedora-29 ppc64le Servidor Fedora® 29 (ppc64le)fedora-29 x86_64 Servidor Fedora® 29fedora-30 aarch64 Servidor Fedora® 30 (aarch64)fedora-30 i686 Servidor Fedora® 30 (i686)fedora-30 x86_64 Servidor Fedora® 30fedora-31 X86_64 Fedora® 31 Serverfedora-32 x86_64 Fedora® 32 ServerFreebsD-11.1 x86_64 Freebsd 11.1ScientificlinInx-6 x86_64 Scientific Linux 6.5ubuntu-10.04 x86_64 Ubuntu 10.04 (Lucid) UBUNTU-12.04 X86 X86_64 UBUDU-14. )ubuntu-16.04 x86_64 Ubuntu 16.04 (Xenial)ubuntu-18.04 x86_64 Ubuntu 18.04 (bionic)fedora-18 x86_64 Fedora® 18fedora-19 x86_64 Fedora® 19fedora-20 x86_64 Fedora® 20fedora-21 aarch64 Fedora® 21) Servidor (aarch64) 21 armv7l Servidor Fedora® 21 (armv7l)fedora-21 ppc64 Servidor Fedora® 21 (ppc64)fedora-21 ppc64le Servidor Fedora® 21 (ppc64le)fedora-21 x86_64 Servidor Fedora® 21fedora-22 aarch64 Servidor Fedora® 22 (aarch64)fedora- 22 armv7l Servidor Fedora® 22 (armv7l)fedora-22 i686 Servidor Fedora® 22 (i686)fedora-22 x86_64 Servidor Fedora® 22fedora-23 aarch64 Servidor Fedora® 23 (aarch64)fedora-23 armv7l Servidor Fedora® 23 (armv7l)fedora -23 i686 Servidor Fedora® 23 (i686)fedora-23 ppc64 Servidor Fedora® 23 (ppc64)fedora-23 ppc64le Servidor Fedora® 23 (ppc64le)fedora-23 x86_64 Servidor Fedora® 23fedora-24 aarch64 Servidor Fedora® 24 (aarch64) fedora-24 armv7l Servidor Fedora® 24 (armv7l)fedora-24 i686 Fedora® 24 S erver (i686)fedora-24 x86_64 Servidor Fedora® 24fedora-25 aarch64 Servidor Fedora® 25 (aarch64)fedora-25 armv7l Servidor Fedora® 25 (armv7l)fedora-25 i686 Servidor Fedora® 25 (i686)fedora-25 ppc64 Fedora® Servidor 25 (ppc64)fedora-25 ppc64le Servidor Fedora® 25 (ppc64le)fedora-25 x86_64 Servidor Fedora® 25opensuse-13.1 x86_64 openSUSE 13.1opensuse-13.2 x86_64 openSUSE 13.2opensuse-42.1 x86_64 openSUSE Leap 42.1opensUSE x86_tumbleweed pre>  

Enumere las máquinas virtuales disponibles usando Virt-builder

Como puede ver, hay varias plantillas de SO disponibles.

Antes de crear una imagen de máquina virtual, es posible que desee consultar las notas de instalación del sistema operativo huésped para saber qué contiene.

Por ejemplo, para ver las notas de instalación de Debian 10, ejecute:

$ virt-builder --notas debian-10

Salida de muestra:

Debian 10 (buster) Esta es una instalación mínima de Debian. Esta imagen es tan mínima que solo incluye un servidor ssh. Esta imagen no contiene claves de host SSH. Para regenerarlos, use:--firstboot-command "dpkg-reconfigure openssh-server" Esta plantilla fue generada por un script en el árbol de fuentes de libguestfs:builder/templates/make-template.ml Los archivos asociados que se usaron para preparar esta plantilla se pueden encontrar en el mismo directorio.

Crear una imagen de máquina virtual

Quería descargar las plantillas del sistema operativo en un directorio específico, así que creé este directorio:

$ mkdir virtbuilder$ cd virtbuilder/

Construyamos la máquina virtual Debian 10 usando el comando:

$ virt-builder debian-10

Salida de muestra:

[ 4.8] Descargando:http://builder.libguestfs.org/debian-10.xz########################## ############################################## ######## 100.0%[ 83.2] Planeando cómo construir esta imagen[ 83.2] Descomprimiendo[ 101.2] Abriendo el nuevo disco[ 119.8] Configurando un seedvirt-builder aleatorio:advertencia:no se pudo configurar una semilla aleatoria para esto type of guest[ 119.9] Configuración de contraseñasvirt-builder:configuración de contraseña aleatoria de root en 66xW1CaIqfM8km2v [ 121.5] Terminando Archivo de salida:debian-10.img Tamaño de salida:6.0G Formato de salida:sin procesar Espacio útil total:5,8 G Espacio libre:4,9 G (84 %)

Cree imágenes de máquinas virtuales con virt-builder en Linux

Como puede ver, este comando ha creado la imagen mínima de Debian 10. No tendrá ninguna cuenta de usuario. Solo tendrá una contraseña raíz aleatoria y el mínimo software instalado.

El nombre de salida de la imagen debe ser el mismo que el nombre de la plantilla. Puedes cambiarlo a tu gusto usando -o opción:

$ virt-builder debian-10 -o ostechnix.img

De forma predeterminada, el formato de imagen es img . Puede convertirlo a un formato diferente, por ejemplo Qcow2, como a continuación:

$ virt-builder debian-10 --formato qcow2

De forma predeterminada, Virt-builder creará la imagen igual que la arquitectura del sistema operativo host. Por ejemplo, si el sistema operativo de su host es de 64 bits, creará una máquina virtual de 64 bits. Puede cambiar esto a 32 bits (si está disponible) usando --arch opción.

$ virt-builder debian-10 --arch i686

¿Quieres construir una imagen de tamaño personalizado? También es posible. El siguiente comando construirá una VM con un tamaño de 50 GB:

$ virt-builder debian-10 --tamaño 50G

El sistema operativo invitado se redimensiona automáticamente usando virt-resize comando tal como se copia en la salida.

Establecer contraseña raíz

Como ya mencioné, se asignará una contraseña aleatoria a la cuenta de usuario raíz mientras se construye la imagen. Si desea establecer una contraseña específica para el usuario root, use --root-password opción como la siguiente:

$ virt-builder centos-8.2 --format qcow2 --root-password contraseña:centos 

Salida de muestra:

[ 5.1] Descargando:http://builder.libguestfs.org/centos-8.2.xz########################## ############################################## ######## 100.0%[ 249.2] Planificación de cómo construir esta imagen[ 249.2] Descompresión[ 271.3] Conversión de raw a qcow2[ 281.1] Apertura del nuevo disco[ 319.9] Configuración de una semilla aleatoria[ 320.4] Configuración de contraseñas[ 323.0] Terminando Archivo de salida:centos-8.2.qcow2 Tamaño de salida:6.0G Formato de salida:qcow2 Espacio utilizable total:5.3G Espacio libre:4.0G (74%)

El comando anterior creará una imagen de CentOS 8.2 y asignará una contraseña para el usuario root como "centos" .

También puede establecer una contraseña desde un archivo de texto:

$ virt-builder centos-8.2 --archivo de contraseña raíz:~/ostechnix.txt 

Para deshabilitar la contraseña de root, ejecute:

$ virt-builder centos-8.2 --contraseña raíz desactivada 

Bloquear cuenta raíz:

$ virt-builder centos-8.2 --contraseña raíz bloqueada 

Bloquear cuenta raíz y deshabilitar contraseña raíz:

$ virt-builder centos-8.2 --contraseña raíz bloqueada:deshabilitada 

Para asignar una contraseña raíz, pero bloquear la cuenta raíz, use las siguientes opciones:

--contraseña raíz bloqueada:archivo:NOMBRE DE ARCHIVO--contraseña raíz bloqueada:contraseña:CONTRASEÑA

Podemos usar la contraseña de root después de desbloquear el usuario root con "passwd -u" comando.

Crear usuarios

Para crear cuentas de usuario mientras crea una imagen de máquina virtual, ejecute:

$ virt-builder centos-8.2 --firstboot-command 'useradd -m -p "" sk; cambio -d 0 sk'

El comando anterior creará un usuario llamado "sk" sin contraseña y lo obligará a establecer una contraseña en su primer inicio de sesión.

Establecer nombre de host

Para establecer el nombre de host en la máquina virtual:

$ virt-builder centos-8.2 --hostname virt.ostechnix.local

Salida de muestra:

[ 4.7] Descargando:http://builder.libguestfs.org/centos-8.2.xz[ 7.2] Planificando cómo construir esta imagen[ 7.2] Descomprimiendo[ 31.0] Abriendo el nuevo disco[ 41.9] Configurando una semilla aleatoria [ 42.0] Configuración del nombre de host:virt.ostechnix.local [ 42.1] Configuración de contraseñasvirt-builder:Configuración de contraseña aleatoria de root para MRn7fj1GSaeCAHQx[ 44.4] Terminación Archivo de salida:centos-8.2.img Tamaño de salida:6.0G Formato de salida:raw Espacio utilizable total:5.3G Espacio libre:4.0G (74 %)

Instalar software en la imagen de VM

Para instalar paquetes en una VM, ejecute:

$ virt-builder debian-10 --instalar vim

Salida de muestra:

[ 5.8] Descargando:http://builder.libguestfs.org/debian-10.xz[ 7.4] Planificando cómo construir esta imagen[ 7.4] Descomprimiendo[ 25.3] Abriendo el nuevo disco[ 29.7] Configurando un seedvirt aleatorio -builder:advertencia:no se pudo configurar la semilla aleatoria para este tipo de invitado[ 29.8] Instalando paquetes:vim [ 93.2] Configuración de contraseñasvirt-builder:configuración de contraseña aleatoria de root en 45Hj5yxh8vRqLDcu[ 94.9] Terminación Archivo de salida:debian-10.img Tamaño de salida:6.0G Formato de salida:raw Espacio utilizable total:5.8G Espacio libre:4.8G (82 %)

Para instalar varios paquetes, menciónelos entre comillas, separados por comas, como se muestra a continuación:

$ virt-builder debian-10 --instalar "apache2,htop"

Actualice todos los paquetes en la VM:

$ virt-builder centos-8.2 --actualización

Si su máquina virtual usa SELinux, debe volver a etiquetar SELinux después de instalar o actualizar paquetes:

$ virt-builder centos-8.2 --update --selinux-relabel

Personalizar imágenes de máquinas virtuales

Virt-builder tiene muchas opciones para personalizar una imagen. Por ejemplo, puede ejecutar un comando/secuencia de comandos específico cuando se inicia la máquina virtual por primera vez con el comando:

$ virt-builder debian-10 --firstboot-command 'apt -y actualizar'

Para agregar una línea en la máquina virtual, ejecute:

$ virt-builder centos-8.2 --append-line '/etc/hosts:192.168.225.1 servidor.ostechnix.local'

Plantillas de almacenamiento en caché

De forma predeterminada, todas las plantillas se descargarán de la red por primera vez. Dado que el tamaño de las plantillas es grande, las plantillas descargadas se almacenarán en caché en el directorio de inicio del usuario.

Puede imprimir los detalles del directorio de caché y qué plantillas están actualmente en caché usando el siguiente comando:

$ virt-builder --print-cache

Salida de muestra:

directorio de caché:/home/sk/.cache/virt-builder[...]centos-7.8 x86_64 nocentos-8.0 x86_64 nocentos-8.2 x86_64 en caché cirros-0.3.1 x86_64 nocirros-0.3.5 x86_64 nodebian-10 x86_64 en caché debian-6 x86_64 nodebian-7 sparc64 no[...]

También puede verificarlo buscando manualmente en la carpeta de caché:

$ ls $HOME/.cache/virt-builder centos-8.2.x86_64.1 debian-10.x86_64.1

Para descargar todas las plantillas disponibles a su carpeta de caché local, ejecute:

$ virt-builder --caché-todas-las-plantillas

Si no desea almacenar en caché la plantilla mientras crea la imagen, use --no-cache opción.

Para eliminar todas las plantillas almacenadas en caché, ejecute:

$virt-builder --delete-cache [ 0.0] Eliminando:/home/sk/.cache/virt-builder

Importación de imágenes de disco al hipervisor

Bueno, ha descargado su sistema operativo deseado y lo ha personalizado a su gusto. ¿Ahora que? Simplemente importe la imagen y ejecute una VM usando la imagen de disco recién creada con un hipervisor. Ya hemos escrito una guía paso a paso para crear una máquina virtual KVM utilizando la imagen Qcow2. Esta guía está escrita específicamente para Qcow2, sin embargo, es la misma para importar .img formatear imágenes de disco también.

  • Cree una máquina virtual KVM usando la imagen Qcow2 en Linux

Virt-builder tiene cientos de comandos y opciones. Cubrí solo los comandos básicos aquí. Para obtener más detalles, consulte la edad del manual.

$ man virt-constructor

Foto destacada de Igor Starkov de Pexels .


Linux
  1. Ejecute una máquina virtual Linux en Podman

  2. Virtualización en PC, explicada para principiantes con casos prácticos de uso

  3. Linux:¿contenido en estas direcciones?

  4. La máquina virtual con sistema operativo CentOS 5 de 32 bits no aborda la memoria física de más de 3 GB

  5. Servidor de retransmisión SSH con OpenSSH

Cómo rescatar máquinas virtuales con Virt-rescue

Cómo crear una máquina virtual con Vagrant y VirtualBox

Obtenga imágenes virtuales preconfiguradas de distribuciones de Linux en OSBoxes [para configurar Linux de forma rápida y sencilla en máquinas virtuales]

¿Cómo crear una nueva Máquina Virtual en Proxmox?

Cómo implementar rápidamente la plataforma de gestión de relaciones con los clientes de SuiteCRM como una máquina virtual

¿Cómo ejecutar una versión nueva de AIX en una máquina virtual con un host Linux?