Incus (Español)
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.
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.