Giter Site home page Giter Site logo

keiichiroy / bento Goto Github PK

View Code? Open in Web Editor NEW

This project forked from chef/bento

0.0 2.0 0.0 505 KB

Modularized Packer definitions for building Vagrant baseboxes

Home Page: http://opscode.github.io/bento

License: Apache License 2.0

Ruby 28.11% Shell 71.89%

bento's Introduction

Bento

Build Status

Bento is a project that encapsulates Packer templates for building Vagrant baseboxes. We use these boxes internally at Opscode for testing Hosted Enterprise Chef, Private Enterprise Chef and our open source cookbooks via test-kitchen.

Current Baseboxes

The following baseboxes are publicly available and were built using this project. Note that our baseboxes do not include Chef Client. Vagrant can be instructed to install Chef at runtime using the vagrant-omnibus plugin.

VirtualBox

These baseboxes were all built using a Mac OS X host running VirtualBox 4.3.2, and have that format of Guest Extensions.

VMWare

These baseboxes were all built using a Mac OS X host running VMWare Fusion 6.0.2, and have that version of VMWare Tools. The boxes should work unchanged in VMWare Workstation for Windows or Linux.

Older Baseboxes

Older baseboxes include Chef and therefore are not compatible with some new plugins. The full list of old boxes are available in the old boxes file.

Build Your Own Boxes

First, install Packer and then clone this project.

Inside the packer directory, a JSON file describes each box that can be built. You can use packer build to build the boxes.

$ packer build debian-7.2.0-i386.json

If you want to use a another mirror site, use mirror variable.

$ packer build -var 'mirror=http://ftp.jaist.ac.jp/pub/Linux/debian-cdimage/release' debian-7.2.0-i386.json

If you only have VMware or VirtualBox available, you may also tell Packer to build only that box.

$ packer build -only=virtualbox-iso debian-7.2.0-i386.json

Congratulations! You now have box(es) in the ../builds directory that you can then add to Vagrant and start testing cookbooks.

Proprietary Boxes

Red Hat Enterprise Linux and SUSE Linux Enterprise Server templates are provided; however, their ISOs are not publicly retrievable. The URLs in those templates are bogus; you should substitute your server where you host the ISOs, using the mirror variable as above.

Veewee Definitions

Packer does not yet support Windows, so veewee definitions are still used for building those boxes. You must build these boxes yourself due to licensing constraints. You can build these as follows:

$ bundle install
$ bundle exec veewee vbox build [definition-name]

Special Note About Building from Windows Hosts

When building boxes from a Windows host system, you must ensure that kickstart configuration files (ks.cfg for RHEL based systems) and preseed files (preseed.cfg for Debian based systems) have Unix line endings (i.e. lines end with LF character only). Moreover, it's also a good idea to have *.sh scripts with Unix line endings too.

When these files have Windows line endings, the group creation can fail in the pre-seed phase and in turn, prevents the user vagrant to be created correctly. This ultimately results in Packer not being able to connect to the newly booted up machine with an error message that looks like this:

==> virtualbox-iso: Waiting for SSH to become available...
==> virtualbox-iso: Error waiting for SSH: handshake failed: ssh: unable to authenticate, attempted methods [none password], no support

Since Packer tries to log in with user vagrant but it was not created successfully in the pre-seed phase, it is unable to connect to the machine and the packaging process stops.

By default, when cloning this repository, git should normalize ks.cfg, preseed.cfg and *.sh to Unix line endings and *.bat to Windows line endings, thanks to the .gitattributes file in the repository. However, if it's not the case because you have overridden line-ending conversion in your own git configuration, convert the offending files so they have the correct line endings.

Bugs and Issues

Use the issue tracker to report bugs, features or other issues.

Contributing

How to contribute to Opscode open source software projects

License & Authors

These basebox templates were converted from veewee definitions originally based on work done by Tim Dysinger to make "Don't Repeat Yourself" (DRY) modular baseboxes. Thanks Tim!

Copyright 2012-2013, Opscode, 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.

bento's People

Contributors

andytson-inviqa avatar apetresc avatar bflad avatar cburyta avatar chulkilee avatar comuttun avatar ctdk avatar hectcastro avatar hh avatar igarrison avatar jamesonjlee avatar josephholsten avatar juliandunn avatar justsee avatar lewg avatar petecheslock avatar routelastresort avatar sc0ttruss avatar scalp42 avatar schisamo avatar sethvargo avatar tduffield avatar torandu avatar whilp avatar zuazo avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.