Bento는 Vagrant 베이스 박스 구축을 위한 Packer 템플릿을 캡슐화하는 프로젝트입니다. 템플릿의 하위 집합이 구축되어 Vagrant Cloud의 도시락 조직에 게시됩니다. 게시된 상자는 kitchen-vagrant의 기본 상자 역할을 합니다.
* 메모:
bento test
명령이 작동하려면 test-kitchen 및 kitchen-vagrant gem을 설치해야 합니다.vboxmanage = []
변수를 추가합니다.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 지원은 병렬 및 vmware 공급자를 통해서만 보장되는 진행 중인 작업입니다.
bento
실행 파일 사용 os_pkrvars
디렉토리에서 사용 가능한 템플릿과 함께 도시락 도구를 사용하여 데비안 방랑 상자를 구축하려면 다음 명령을 사용할 수 있습니다:
bento build --cpus 2 os_pkrvars/debian/debian-12-x86_64.pkrvars.hcl
기타 사용 가능한 옵션:
워크스테이션 CPU 아키텍처에 사용 가능한 모든 빌드를 나열하는 데 사용됩니다. 이 목록은 build.yml 파일 do_not_build: 섹션으로도 필터링됩니다. 모든 항목은 정규식을 통해 일치되어 목록에서 빌드 템플릿을 필터링합니다.
이는 bento build
로 빌드할 항목만 표시하며 템플릿은 지정되지 않습니다. 필터링할 템플릿이 build.yml에 있더라도 템플릿이 지정되면 필터가 재정의됩니다.
bento list
도시락 도구를 사용하여 방랑 상자를 성공적으로 구축했다면 builds
폴더에 방랑 상자와 메타데이터 파일이 있어야 합니다. 이러한 파일을 사용하여 테스트 주방 구성으로 빌드를 테스트할 수 있습니다. 다음 명령을 실행하여 빌드를 테스트합니다.
bento test
vagrant 클라우드 계정에 builds 디렉터리의 상자를 업로드하려면 build.yml 파일을 업데이트하여 계정 이름과 공개할 OS를 지정하세요.
업로드 명령이 작동하려면 vagrant cli를 구성하고 계정에 로그인했는지 확인하세요.
bento upload
bento upload
실행하면 각 <box_name>._metadata.json 파일을 읽고 제공된 데이터를 사용하여 <box_name>._metadata.json에서 나오는 설명, 버전, 공급자 및 체크섬과 함께 vagrant cloud publish
명령을 생성합니다. 파일.
packer
사용VirtualBox 공급자만을 위한 Ubuntu 22.04 상자를 구축하려면
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
VMware 및 Parallels를 제외한 모든 공급자를 위한 최신 CentOS 7 상자를 구축하려면
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
디렉터리에 있게 됩니다.
반가상화된 KVM/qemu 하드웨어용 Windows 드라이버와 함께 iso 이미지를 다운로드하여 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 VM은 플로피 드라이브를 지원하지 않습니다. 이전에 플로피 드라이브를 사용하여 리소스를 제공한 경우 특히 다음과 같은 파일을 Gen 2 ISO 이미지에 추가해야 합니다.
autounattend.xml
: Gen 2 autounattend.xml
파일은 EFI 파티션을 지원합니다. autounattend.xml
을 시스템에 맞는 올바른 Windows 버전으로 업데이트하고 파티션이 상황에 맞는지 확인하세요. 또한 Hyper-V 게스트 서비스 드라이버가 포함된 드라이버 디스크를 관리하고 autounattend.xml
파일을 적절하게 조정해야 합니다.버그, 기능 또는 기타 문제를 보고하려면 GitHub 문제를 사용하세요.
우리가 영감을 얻었고 베이스 박스 제작의 복잡한 세계에서 해결 방법의 소스로 자주 사용된 관련 프로젝트에 큰 감사를 드립니다.
이러한 베이스박스 템플릿은 원래 Tim Dysinger가 "Don't Repeat Yourself"(DRY) 모듈식 베이스박스를 만들기 위해 수행한 작업을 기반으로 한 Veewee 정의에서 변환되었습니다. 고마워요 팀!
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.