Bento é um projeto que encapsula templates Packer para construção de caixas base Vagrant. Um subconjunto de modelos é criado e publicado na organização bento no Vagrant Cloud. Essas caixas publicadas servem como caixas padrão para vagabundos de cozinha.
* OBSERVAÇÃO:
bento test
funcione, as gemas test-kitchen e kitchen-vagrant devem ser instaladasvboxmanage = []
aos arquivos os_pkrvars.Adicionando uma caixa de bento ao Vagrant
vagrant box add bento/ubuntu-18.04
Usando uma caixa bento em um Vagrantfile
Vagrant . configure ( "2" ) do | config |
config . vm . box = "bento/ubuntu-18.04"
end
*1 NOTA: o suporte para esses provedores é considerado experimental e as imagens correspondentes do Vagrant Cloud podem ou não existir.
*2 NOTA: O suporte AARCH64 ou ARM64 é um trabalho em andamento garantido apenas por meio de paralelos e provedor VMware.
bento
Para construir uma caixa vagrant Debian usando a ferramenta bento com o modelo disponível no diretório os_pkrvars
, podemos usar o seguinte comando:
bento build --cpus 2 os_pkrvars/debian/debian-12-x86_64.pkrvars.hcl
Outras opções disponíveis:
Usado para listar todas as compilações disponíveis para a arquitetura de CPU das estações de trabalho. Esta lista também é filtrada pela seção do_not_build: do arquivo build.yml. Todas as entradas são correspondidas via regex para filtrar os modelos de construção da lista.
Isso mostra apenas o que seria construído com bento build
e nenhum modelo é especificado. Se algum modelo for especificado, mesmo que esteja no build.yml a ser filtrado, ele substituirá o filtro.
bento list
Se você construiu com sucesso uma caixa vagrant usando a ferramenta bento, você deve ter a caixa vagrant e um arquivo de metadados na pasta builds
. Você pode usar esses arquivos para testar a construção com uma configuração de cozinha de teste. Execute o seguinte comando para testar a compilação.
bento test
Para fazer upload de caixas no diretório builds para sua conta vagrant cloud, atualize o arquivo build.yml para especificar o nome da sua conta e quais sistemas operacionais serão públicos.
Certifique-se de ter configurado o vagrant cli e conectado à sua conta para que o comando upload funcione.
bento upload
Ao executar bento upload
ele lerá cada arquivo <box_name>._metadata.json e usará os dados fornecidos para gerar o comando vagrant cloud publish
com as descrições, versão, provedor e somas de verificação, todos provenientes de <box_name>._metadata.json arquivo.
packer
Para construir uma caixa Ubuntu 22.04 apenas para o provedor 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
Para construir as caixas Debian 12 mais recentes para todos os provedores possíveis (simultaneamente)
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 construir as caixas CentOS 7 mais recentes para todos os provedores, exceto VMware e 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 um URL alternativo
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
Se a compilação for bem-sucedida, seus arquivos box estarão no diretório builds
na raiz do repositório.
Você deve baixar a imagem iso com os drivers do Windows para hardware KVM/qemu paravirtualizado e colocá-la no diretório builds/iso/. Você pode fazer isso na linha 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
Você pode usar o seguinte comando de amostra para construir uma caixa KVM/qemu do Windows:
packer init -upgrade ./packer_templates
packer build --only=qemu.vm -var-file=os_pkrvars/windows/windows-2022-x86_64.pkrvars.hcl ./packer_templates
Modelos para sistemas operacionais disponíveis apenas por meio de licença ou assinatura também estão disponíveis no repositório, incluindo, mas não estão limitados a: Red Hat Enterprise Linux e SUSE Linux Enterprise. Como as ISOs não estão disponíveis publicamente, os valores da URL precisarão ser substituídos conforme apropriado. Contamos com os esforços daqueles que têm acesso a versões licenciadas dos sistemas operacionais para mantê-los atualizados.
A maioria dos provedores espera acesso irrestrito à rede para construir conforme o esperado. Não podemos enumerar todas as configurações de firewall possíveis, mas incluímos alguns trechos abaixo que podem ser úteis aos usuários.
$VS = " Standardswitch "
$IF_ALIAS = ( Get-NetAdapter - Name " vEthernet ( $VS ) " ).ifAlias
New-NetFirewallRule - Displayname " Allow incomming from $VS " - Direction Inbound - InterfaceAlias $IF_ALIAS - Action Allow
As VMs Hyper-V Gen 2 não oferecem suporte a unidades de disquete. Se você forneceu recursos anteriormente usando uma unidade de disquete, deverá adicionar esses arquivos às imagens ISO da Geração 2, em particular:
autounattend.xml
: O arquivo autounattend.xml
da Geração 2 oferece suporte a partições EFI. Atualize o autounattend.xml
com a versão correta do Windows para seus sistemas e certifique-se de que as partições estejam corretas para sua situação. Você também precisa gerenciar o disco de driver que contém os drivers de serviços convidados do Hyper-V e ajustar o arquivo autounattend.xml
conforme apropriado.Use os problemas do GitHub para relatar bugs, recursos ou outros problemas.
Um grande obrigado a esses projetos relacionados nos quais nos inspiramos e frequentemente usamos como fonte para soluções alternativas no complexo mundo da construção de caixas de base.
Esses modelos de caixa base foram convertidos de definições veewee originalmente baseadas no trabalho realizado por Tim Dysinger para fazer caixas base modulares "Don't Repeat Yourself" (DRY). Obrigado 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.