Bento — это проект, инкапсулирующий шаблоны Packer для создания базовых блоков Vagrant. Подмножество шаблонов создается и публикуется в организации bento в Vagrant Cloud. Эти опубликованные ящики служат ящиками по умолчанию для Kitchen-vagrant.
* ПРИМЕЧАНИЕ:
bento test
работала, необходимо установить тест-кухню и кухню-бродягу.vboxmanage = []
в файлы os_pkrvars.Добавление коробки для бенто в Vagrant
vagrant box add bento/ubuntu-18.04
Использование коробки для бенто в Vagrantfile
Vagrant . configure ( "2" ) do | config |
config . vm . box = "bento/ubuntu-18.04"
end
*1 ПРИМЕЧАНИЕ. Поддержка этих поставщиков считается экспериментальной, и соответствующие образы Vagrant Cloud могут существовать, а могут и отсутствовать.
*2 ПРИМЕЧАНИЕ. Поддержка AARCH64 или ARM64 находится в стадии разработки и гарантируется только поставщиком Parallels и vmware.
bento
Чтобы создать бродячую коробку Debian с помощью инструмента bento с шаблоном, доступным в каталоге os_pkrvars
, мы можем использовать следующую команду:
bento build --cpus 2 os_pkrvars/debian/debian-12-x86_64.pkrvars.hcl
Другие доступные варианты:
Используется для вывода списка всех сборок, доступных для архитектуры процессора рабочих станций. Этот список также фильтруется по разделу do_not_build: файла build.yml. Все записи сопоставляются с помощью регулярного выражения, чтобы отфильтровать шаблоны сборки из списка.
Здесь показано только то, что будет построено с помощью bento build
, без указания шаблона. Если указан какой-либо шаблон, даже если он находится в build.yml для фильтрации, он переопределит фильтр.
bento list
Если вы успешно создали бродячий ящик с помощью инструмента bento, у вас должен быть бродячий ящик и файл метаданных в папке builds
. Вы можете использовать эти файлы для тестирования сборки с конфигурацией тестовой кухни. Запустите следующую команду, чтобы протестировать сборку.
bento test
Чтобы загрузить коробки из каталога сборок в свою учетную запись бродячего облака, обновите файл build.yml, указав имя своей учетной записи и какие ОС будут общедоступными.
Убедитесь, что вы настроили бродячий интерфейс и вошли в свою учетную запись, чтобы команда загрузки работала.
bento upload
При запуске bento upload
он считывает каждый файл <box_name>._metadata.json и использует предоставленные данные для создания команды vagrant cloud publish
с описаниями, версией, поставщиком и контрольными суммами, поступающими из <box_name>._metadata.json. файл.
packer
Чтобы собрать коробку Ubuntu 22.04 только для поставщика 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
Собрать последние версии Debian 12 для всех возможных поставщиков (одновременно)
cd < path/to > /bento
packer init -upgrade ./packer_templates
packer build -var-file=os_pkrvars/debian/debian-12-x86_64.pkrvars.hcl ./packer_templates
Для сборки последних версий CentOS 7 для всех поставщиков, кроме VMware и 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
Чтобы использовать альтернативный 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
Если сборка прошла успешно, файлы вашего ящика окажутся в каталоге builds
в корне репозитория.
Вам необходимо загрузить ISO-образ с драйверами Windows для паравиртуализированного оборудования KVM/qemu и поместить его в каталог builds/iso/. Вы можете сделать это из командной строки: 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
Вы можете использовать следующий пример команды для создания окна KVM/qemu Windows:
packer init -upgrade ./packer_templates
packer build --only=qemu.vm -var-file=os_pkrvars/windows/windows-2022-x86_64.pkrvars.hcl ./packer_templates
В репозитории также доступны шаблоны для операционных систем, доступные только по лицензии или подписке, включая, помимо прочего: Red Hat Enterprise Linux и SUSE Linux Enterprise. Поскольку ISO-образы не являются общедоступными, значения URL необходимо будет переопределить соответствующим образом. Мы полагаемся на усилия тех, кто имеет доступ к лицензионным версиям операционных систем, чтобы поддерживать их актуальность.
Большинство провайдеров ожидают неограниченного доступа к сети, чтобы обеспечить ожидаемый результат. Мы не можем перечислить все возможные конфигурации брандмауэра, но приводим ниже некоторые фрагменты, которые могут быть полезны пользователям.
$VS = " Standardswitch "
$IF_ALIAS = ( Get-NetAdapter - Name " vEthernet ( $VS ) " ).ifAlias
New-NetFirewallRule - Displayname " Allow incomming from $VS " - Direction Inbound - InterfaceAlias $IF_ALIAS - Action Allow
Виртуальные машины Hyper-V Gen 2 не поддерживают дисководы. Если вы ранее предоставляли ресурсы с помощью флоппи-дисковода, вам необходимо добавить эти файлы в свои ISO-образы Gen 2, в частности:
autounattend.xml
: файл autounattend.xml
поколения 2 поддерживает разделы EFI. Обновите файл autounattend.xml
, указав правильную версию Windows для вашей системы, и убедитесь, что разделы соответствуют вашей ситуации. Вам также необходимо управлять диском с драйверами гостевых служб Hyper-V и соответствующим образом корректировать файл autounattend.xml
.Пожалуйста, используйте выпуски GitHub, чтобы сообщать об ошибках, функциях или других проблемах.
Огромное спасибо этим связанным проектам, из которых мы черпали вдохновение и которые часто использовали в качестве источника обходных решений в сложном мире создания базовых коробок.
Эти шаблоны базовых коробок были преобразованы из определений veewee, первоначально основанных на работе, проделанной Тимом Дайсингером по созданию модульных базовых коробок «Не повторяйся» (DRY). Спасибо, Тим!
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.