Bento es un proyecto que encapsula plantillas de Packer para construir cajas base de Vagrant. Se crea y publica un subconjunto de plantillas en la organización bento en Vagrant Cloud. Estos cuadros publicados sirven como cuadros predeterminados para los vagabundos de la cocina.
* NOTA:
bento test
funcione, se deben instalar test-kitchen y kitchen-vagrant gemsvboxmanage = []
a los archivos os_pkrvars.Agregar una caja bento a Vagrant
vagrant box add bento/ubuntu-18.04
Usando una caja bento en un Vagrantfile
Vagrant . configure ( "2" ) do | config |
config . vm . box = "bento/ubuntu-18.04"
end
*1 NOTA: la compatibilidad con estos proveedores se considera experimental y las imágenes de Vagrant Cloud correspondientes pueden existir o no.
*2 NOTA: La compatibilidad con AARCH64 o ARM64 es un trabajo en progreso que solo se garantiza a través de paralelos y proveedores de vmware.
bento
Para construir una caja Debian vagabunda usando la herramienta bento con la plantilla disponible en el directorio os_pkrvars
, podemos usar el siguiente comando:
bento build --cpus 2 os_pkrvars/debian/debian-12-x86_64.pkrvars.hcl
Otras opciones disponibles:
Se utiliza para enumerar todas las compilaciones disponibles para la arquitectura de CPU de las estaciones de trabajo. Esta lista también se filtra por la sección do_not_build: del archivo build.yml. Todas las entradas se comparan mediante expresiones regulares para filtrar las plantillas de compilación de la lista.
Esto solo muestra lo que se construiría con bento build
y no se especifica ninguna plantilla. Si se especifica alguna plantilla, incluso si está en el archivo build.yml que se va a filtrar, se anulará el filtro.
bento list
Si ha construido con éxito una caja vagabunda usando la herramienta bento, debería tener la caja vagabunda y un archivo de metadatos en la carpeta de builds
. Puede utilizar estos archivos para probar la compilación con una configuración de cocina de prueba. Ejecute el siguiente comando para probar la compilación.
bento test
Para cargar cuadros en el directorio de compilaciones a su cuenta de Vagrant Cloud, actualice el archivo build.yml para especificar el nombre de su cuenta y qué sistemas operativos serán públicos.
Asegúrese de haber configurado vagrant cli y haber iniciado sesión en su cuenta para que funcione el comando de carga.
bento upload
Al ejecutar bento upload
, leerá cada archivo <box_name>._metadata.json y utilizará los datos proporcionados para generar el comando vagrant cloud publish
con las descripciones, la versión, el proveedor y las sumas de verificación, todos provenientes de <box_name>._metadata.json. archivo.
packer
Para crear una caja Ubuntu 22.04 solo para el proveedor de VirtualBox
cd < path/to > /bento
packer init -upgrade ./packer_templates
packer build -only=virtualbox-iso.vm -var-file=os_pkrvars/ubuntu/ubuntu-22.04-x86_64.pkrvars.hcl ./packer_templates
Construir las últimas versiones de Debian 12 para todos los proveedores posibles (simultáneamente)
cd < path/to > /bento
packer init -upgrade ./packer_templates
packer build -var-file=os_pkrvars/debian/debian-12-x86_64.pkrvars.hcl ./packer_templates
Para crear las últimas cajas CentOS 7 para todos los proveedores excepto VMware y Parallels
cd < path/to > /bento
packer init -upgrade ./packer_templates
packer build -except=parallels-iso.vm,vmware-iso.vm -var-file=os_pkrvars/centos/centos-7-x86_64.pkrvars.hcl ./packer_templates
Para usar una URL alternativa
cd < path/to > /bento
packer init -upgrade ./packer_templates
packer build -var ' iso_url=https://mirrors.rit.edu/fedora/fedora/linux/releases/39/Server/x86_64/iso/Fedora-Server-dvd-x86_64-39-1.5.iso ' -var-file=os_pkrvars/fedora/fedora-39-x86_64.pkrvars.hcl ./packer_templates
Si la compilación es exitosa, los archivos de su caja estarán en el directorio builds
en la raíz del repositorio.
Debe descargar la imagen iso con los controladores de Windows para el hardware KVM/qemu paravirtualizado y colocarla en el directorio builds/iso/. Puedes hacer esto desde la línea de comando: mkdir -p builds/iso/; wget -nv -nc https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso -O builds/iso/virtio-win.iso
Puede utilizar el siguiente comando de ejemplo para crear una caja KVM/qemu de Windows:
packer init -upgrade ./packer_templates
packer build --only=qemu.vm -var-file=os_pkrvars/windows/windows-2022-x86_64.pkrvars.hcl ./packer_templates
Las plantillas para sistemas operativos que solo están disponibles mediante licencia o suscripción también están disponibles en el repositorio; estas incluyen, entre otras: Red Hat Enterprise Linux y SUSE Linux Enterprise. Como los ISO no están disponibles públicamente, los valores de URL deberán anularse según corresponda. Confiamos en los esfuerzos de quienes tienen acceso a versiones con licencia de los sistemas operativos para mantenerlos actualizados.
La mayoría de los proveedores esperan acceso sin restricciones a la red para poder desarrollarse como se esperaba. No podemos enumerar todas las configuraciones de firewall posibles, pero incluimos algunos fragmentos a continuación que podrían ser útiles para los usuarios.
$VS = " Standardswitch "
$IF_ALIAS = ( Get-NetAdapter - Name " vEthernet ( $VS ) " ).ifAlias
New-NetFirewallRule - Displayname " Allow incomming from $VS " - Direction Inbound - InterfaceAlias $IF_ALIAS - Action Allow
Las máquinas virtuales Hyper-V Gen 2 no admiten unidades de disquete. Si anteriormente proporcionó recursos mediante una unidad de disquete, debe agregar esos archivos a sus imágenes ISO Gen 2, en particular:
autounattend.xml
: el archivo autounattend.xml
Gen 2 admite particiones EFI. Actualice autounattend.xml
con la versión correcta de Windows para sus sistemas y asegúrese de que las particiones sean correctas para su situación. También debe administrar el disco del controlador que contiene los controladores de servicios para invitados de Hyper-V y ajustar el archivo autounattend.xml
según corresponda.Utilice los problemas de GitHub para informar errores, funciones u otros problemas.
Un enorme agradecimiento a estos proyectos relacionados en los que nos hemos inspirado y que a menudo utilizamos como fuente de soluciones en el complejo mundo de la construcción de cajas base.
Estas plantillas de caja base se convirtieron a partir de definiciones de veewee basadas originalmente en el trabajo realizado por Tim Dysinger para crear cajas base modulares "Don't Repite Yourself" (DRY). Gracias Tim!
Copyright 2012-2024, Progress Software, Inc. (<[email protected]>)
Copyright 2011-2012, Tim Dysinger (<[email protected]>)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.