Bento est un projet qui encapsule les modèles Packer pour créer des boîtes de base Vagrant. Un sous-ensemble de modèles est créé et publié sur l'organisation bento sur Vagrant Cloud. Ces boîtes publiées servent de boîtes par défaut pour les vagabonds en cuisine.
* NOTE:
bento test
fonctionne, les gemmes test-kitchen et kitchen-vagrant doivent être installéesvboxmanage = []
aux fichiers os_pkrvars.Ajouter une boîte à bento à Vagrant
vagrant box add bento/ubuntu-18.04
Utiliser une boîte à bento dans un Vagrantfile
Vagrant . configure ( "2" ) do | config |
config . vm . box = "bento/ubuntu-18.04"
end
*1 REMARQUE : la prise en charge de ces fournisseurs est considérée comme expérimentale et les images Vagrant Cloud correspondantes peuvent exister ou non.
*2 REMARQUE : la prise en charge d'AARCH64 ou d'ARM64 est un travail en cours uniquement garanti par les parallèles et le fournisseur VMware.
bento
Pour construire une boîte vagrant Debian à l'aide de l'outil bento avec le modèle disponible dans le répertoire os_pkrvars
, nous pouvons utiliser la commande suivante :
bento build --cpus 2 os_pkrvars/debian/debian-12-x86_64.pkrvars.hcl
Autres options disponibles :
Utilisé pour répertorier toutes les versions disponibles pour l’architecture CPU des postes de travail. Cette liste est également filtrée par la section do_not_build: du fichier build.yml. Toutes les entrées sont mises en correspondance via regex pour filtrer les modèles de build de la liste.
Cela montre uniquement ce qui serait construit avec bento build
et aucun modèle n'est spécifié. Si un modèle est spécifié même s'il se trouve dans le build.yml à filtrer, il remplacera le filtre.
bento list
Si vous avez réussi à créer une boîte vagrant à l'aide de l'outil bento, vous devriez avoir la boîte vagrant et un fichier de métadonnées dans le dossier builds
. Vous pouvez utiliser ces fichiers pour tester la build avec une configuration de test-kitchen. Exécutez la commande suivante pour tester la build.
bento test
Pour télécharger des boîtes du répertoire builds sur votre compte cloud vagrant, mettez à jour le fichier build.yml pour spécifier le nom de votre compte et quels systèmes d'exploitation seront publics.
Assurez-vous d'avoir configuré le vagrant cli et connecté à votre compte pour que la commande de téléchargement fonctionne.
bento upload
Lors de l'exécution bento upload
il lira chaque fichier <box_name>._metadata.json et utilisera les données fournies pour générer la commande vagrant cloud publish
avec les descriptions, la version, le fournisseur et les sommes de contrôle provenant toutes de <box_name>._metadata.json. déposer.
packer
Pour créer une boîte Ubuntu 22.04 uniquement pour le fournisseur 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
Pour créer les dernières boîtes Debian 12 pour tous les fournisseurs possibles (simultanément)
cd < path/to > /bento
packer init -upgrade ./packer_templates
packer build -var-file=os_pkrvars/debian/debian-12-x86_64.pkrvars.hcl ./packer_templates
Pour créer les dernières boîtes CentOS 7 pour tous les fournisseurs à l'exception de VMware et 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
Pour utiliser une autre URL
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 construction réussit, vos fichiers box seront dans le répertoire builds
à la racine du référentiel.
Vous devez télécharger l'image iso avec les pilotes Windows pour le matériel KVM/qemu paravirtualisé et la placer dans le répertoire builds/iso/. Vous pouvez le faire depuis la ligne de commande : 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
Vous pouvez utiliser l'exemple de commande suivant pour créer une boîte Windows KVM/qemu :
packer init -upgrade ./packer_templates
packer build --only=qemu.vm -var-file=os_pkrvars/windows/windows-2022-x86_64.pkrvars.hcl ./packer_templates
Des modèles pour les systèmes d'exploitation disponibles uniquement via une licence ou un abonnement sont également disponibles dans le référentiel. Ils incluent, sans s'y limiter : Red Hat Enterprise Linux et SUSE Linux Enterprise. Comme les ISO ne sont pas accessibles au public, les valeurs des URL devront être remplacées le cas échéant. Nous comptons sur les efforts de ceux qui ont accès aux versions sous licence des systèmes d'exploitation pour les maintenir à jour.
La plupart des fournisseurs s'attendent à un accès illimité au réseau afin de pouvoir construire comme prévu. Nous ne pouvons pas énumérer toutes les configurations de pare-feu possibles, mais incluons ci-dessous quelques extraits qui pourraient être utiles aux utilisateurs.
$VS = " Standardswitch "
$IF_ALIAS = ( Get-NetAdapter - Name " vEthernet ( $VS ) " ).ifAlias
New-NetFirewallRule - Displayname " Allow incomming from $VS " - Direction Inbound - InterfaceAlias $IF_ALIAS - Action Allow
Les machines virtuelles Hyper-V Gen 2 ne prennent pas en charge les lecteurs de disquettes. Si vous avez précédemment fourni des ressources à l'aide d'un lecteur de disquette, vous devez ajouter ces fichiers à vos images iso Gen 2, notamment :
autounattend.xml
: Le fichier autounattend.xml
Gen 2 prend en charge les partitions EFI. Mettez à jour le autounattend.xml
avec la version Windows appropriée pour vos systèmes et assurez-vous que les partitions sont adaptées à votre situation. Vous devez également gérer le disque de pilotes contenant les pilotes des services invités Hyper-V et ajuster le fichier autounattend.xml
selon les besoins.Veuillez utiliser les problèmes GitHub pour signaler des bogues, des fonctionnalités ou d'autres problèmes.
Un immense merci à ces projets connexes dont nous nous sommes inspirés et souvent utilisés comme source de solutions de contournement dans le monde complexe de la construction de boîtes de base.
Ces modèles de basebox ont été convertis à partir de définitions veewee basées à l'origine sur le travail effectué par Tim Dysinger pour créer des basesbox modulaires "Don't Repeat Yourself" (DRY). Merci 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.