Incus (Español)

From ArchWiki
Esta traducción de Incus fue revisada el 2024-02-17. Si existen cambios puede actualizarla o avisar al equipo de traducción.

Incus es un administrador/hipervisor para contenedores (a través de LXC) y máquinas virtuales (a través de QEMU).

Es una bifurcación de LXD por los mantenedores originales. La documentación de la página wiki de LXD sigue siendo muy relevante y se recomienda su lectura.

Instalación

Instale el paquete incus, luego active incus.socket.

Alternativamente, puede activar/iniciar incus.service directamente, en caso de que desee que las instancias se inicien automáticamente, por ejemplo.

Para delegar la creación de contenedores a los usuarios, active/inicie la unidad incus-user.socket. Véase #Acceder a Incus como usuario sin privilegios para la delegación de grupos.

Migración desde LXD

Si desea migrar desde una instalación LXD existente, debe hacerlo en este punto, ya que la herramienta de migración solo se ejecutará en un servidor de destino Incus vacío.

Después de comprobar que las órdenes lxc info y incus info se ejecuten correctamente, consulte la documentación sobre el proceso y luego ejecute la herramienta de migración:

# lxd-to-incus

Configuración

Contenedores sin privilegios

Se recomienda utilizar contenedores sin privilegios (véase Linux Containers#Privileged or unprivileged containers para obtener una explicación de la diferencia).

Para esto, modifique /etc/subuid y /etc/subgid (si estos archivos no están presentes, créelos) para que contengan la asignación a los pares uid/gid para cada usuario que podrá ejecutar los contenedores. El siguiente ejemplo es simplemente para el superusuario 'root' (y la unidad del sistema systemd):

Puedes utilizar usermod de la siguiente manera:

usermod -v 1000000-1000999999 -w 1000000-1000999999 root

O modificar directamente los archivos mencionados anteriormente de la siguiente manera:

/etc/subuid
root:1000000:1000000000
/etc/subgid
root:1000000:1000000000

Ahora, cada contenedor se iniciará unprivileged de forma predeterminada.

Para conocer la alternativa, véase LXD (Español)#Contenedores con privilegios.

Configurar Incus

En el primer inicio, es necesario configurar Incus.

Ejecute como superusuario 'root':

# incus admin init

Esto iniciará una guía de configuración interactiva en el terminal, que cubre diferentes temas como almacenamiento, redes, etc.

Puede encontrar una descripción general en la Guía de introducción oficial.

Acceder a Incus como usuario sin privilegios

Incus define dos grupos de usuario:

  • incus "permite el acceso básico de usuario, sin configuración y todas las acciones restringidas a un proyecto por usuario."
  • incus-admin "permite un control total sobre Incus."

Para controlar Incus sin tener que ejecutar todas las órdenes como root, añada su usuario a estos grupos:

# usermod -a -G incus usuario
# usermod -a -G incus-admin usuario

Cierre sesión y vuelva a iniciarla para que se reevalúe su membresía en el grupo.

Advertencia: Cualquier usuario agregado al grupo incus-admin es equivalente a root. Para más información, véase [1] y [2].

Utilización

Descripción general de las órdenes

Puede obtener una descripción general de todas las órdenes disponibles escribiendo:

$ incus

Crear un contenedor

Puedes crear un contenedor con incus launch, por ejemplo:

$ incus launch ubuntu:20.04

Los contenedores se basan en imágenes que se descargan desde servidores de imágenes o servidores LXD remotos.

Puede ver la lista de servidores ya añadidos con:

$ incus remote list

Puede listar todas las imágenes en un servidor con incus image list, por ejemplo:

$ incus image list images:

Esto le mostrará todas las imágenes en uno de los servidores predeterminados: images.linuxcontainers.org

También puede buscar imágenes añadiendo términos como el nombre de la distribución:

$ incus image list images:debian

Iniciar un contenedor con una imagen de un servidor específico con:

$ incus launch servername:imagename

Por ejemplo:

$ incus launch images:centos/8/amd64 centos

Para crear un contenedor con arquitectura AMD64:

$ incus launch images:archlinux/current/amd64 arch

Consejos y trucos

Acceder a los contenedores por nombre de host

Esto asume que está utilizando el puente predeterminado que se llama incusbr0 y que está utilizando systemd-resolved.

# systemd-resolve --interface incusbr0 --set-domain '~incus' --set-dns $(incus network get incusbr0 ipv4.address | cut -d / -f 1)

Ahora puede acceder a los contenedores por su nombre:

$ ping nombrecontenedor.incus

Solución de problemas

Starting a virtual machine fails

Si observa el error:

Error: Couldn't find one of the required UEFI firmware files: [{code:OVMF_CODE.4MB.fd vars:OVMF_VARS.4MB.ms.fd} {code:OVMF_CODE.2MB.fd vars:OVMF_VARS.2MB.ms.fd} {code:OVMF_CODE.fd vars:OVMF_VARS.ms.fd} {code:OVMF_CODE.fd vars:qemu.nvram}]

Es porque Arch Linux no distribuye firmware de arranque seguro ovmf firmado. Para iniciar máquinas virtuales, debe desactivar el inicio seguro por el momento:

$ incus launch ubuntu:18.04 test-vm --vm -c security.secureboot=false

Esto también se puede añadir al perfil predeterminado haciendo:

$ incus profile set default security.secureboot=false

Desinstalar

Detenga y desactive los servicios. Despues desinstale el paquete incus.

Si desea eliminar todos los datos:

# rm -r /var/lib/incus

Si utilizó alguna de las configuraciones de red de ejemplo, también debe eliminarlas.

Véase también