It's time for BoxGrinder Build 0.9.2

I'm very happy to announce a new version of BoxGrinder Build. This release contains many new features and enhancements.

What's new?

CloudSigma support

In this version we added CloudSigma support. CloudSigma is a very popular IaaS Cloud provider in Europe, based in Switzerland. To create a server for CloudSigma use our ElasticHosts plugin. Read more on the plugin page.

We will soon provide a tutorial on how to use BoxGrinder with CloudSigma.

Better Fedora 15 support

Previous versions of BoxGrinder Build had Fedora 15 support, but we found a few issues (networking, /etc/mtab). This version addresses all of them - now you can fully enjoy Fedora 15.

New meta appliance

We decided to switch to Fedora 15 as our base operating system for the meta appliance. This means that we have prepared new meta appliances for you. Go and download them now.

Cross-operating system builds working now!

Yes, it's true - we added support for cross-operating system builds. For example, this means that you can build a RHEL 5 guest on a Fedora 15 host! Please make sure you run the build on a host with "newer" version of the operating system when compared to guest operating system version.

Need help?

Our community is ready to help you!

Release Notes

Bug

  • [BGBUILD-203] - Vmware vmdk disk size is wrong when installing via kickstart files
  • [BGBUILD-204] - Fedora 15 appliance networking start on boot failed
  • [BGBUILD-205] - Error while converting to EC2 when guest OS is CentOS/RHEL 5
  • [BGBUILD-206] - Error while converting appliance to EC2 format when host is Fedora 14 and guest CentOS 5
  • [BGBUILD-207] - Guestfs dies on Fedora 15 with ‘KVM not supported for this target’ message
  • [BGBUILD-208] - Kickstart files not working with 0.9.1
  • [BGBUILD-209] - Wrong /etc/mtab on Fedora 15 appliances causes errors
  • [BGBUILD-210] - In Fedora 14 parameters are not being expanded, and cause early string truncation.
  • [BGBUILD-212] - path: value not escaped in local
  • [BGBUILD-214] - VMDK disk size is wrong when the vmware-plugin and centos-plugin are run together
  • [BGBUILD-218] - Incorrect error messages since revision of parser/validator

Feature Request

  • [BGBUILD-83] - Enable libguestfs log callback to redirect guestfs output to logger
  • [BGBUILD-148] - Add support for building CentOS/RHEL images on Fedora
  • [BGBUILD-213] - CloudSigma support

BoxGrinder Build 0.9.0 is out!

Yeah!

I'm really happy to announce the next major release of BoxGrinder Build: 0.9.0! This release includes many bug fixes and most importantly - some requested features. See release notes for a detailed list of issues.

What's new?

Packaging

In the previous version we packaged every BoxGrinder plugin in its own Gem (and then RPM). This wasn't great because the amount of time to maintain versions and dependencies between plugins was too big. Instead of adding new great features I was involved in fixing packaging bugs.

But not anymore! Now we only ship 2 gems:

  1. boxgrinder-core
  2. boxgrinder-build

See the quick start for updated installation instructions.

Fedora 15 support

You can already build Fedora 15 appliances. You don't even need to wait for final release. Enjoy!

New (old) CLI and package format

BoxGrinder Build 0.8.x wasn't pushed to Fedora because our CLI changed and we didn't want to break your scripts. With 0.9.0 we're back to our old CLI enhanced with changes from 0.8.x.

If you're confused, feel free to read the BoxGrinder Build usage page which shows the current state.

To make BoxGrinder Build backwards-compatible, we added support for our legacy packages section format:

Old format:

packages:
  includes:
    - mc

New format:

packages:
  - mc

Please note that if you use the old format, a warning will be displayed, but the build will not break. Old format support will be dropped in the future.

Fedora news

Fedora 15 Alpha was released yesterday! From my (Marek) side I would like to thank the Fedora team for their hard work!

BoxGrinder is part of Fedora 13 and 14 since December 2010, but for Fedora 15 BoxGrinder is highlighted as a feature. This wouldn't be possible without the Cloud SIG support! Thank you!

Did you know that BoxGrinder is the first JBoss project included in Fedora? Yep, we're special :)

New meta appliances

We've rebuilt the meta appliance and released version 1.4 today. It's available from our meta appliance download site. Feel free to use it to build your own appliances.

New to BoxGrinder? Need some help?

We have prepared some tutorials and a FAQ. We're also available on IRC or forums for you. Feel free to jump in and chat with us!

Release notes

Bug

  • [BGBUILD-81] - post command execution w/ setarch breaks commands which are scripts
  • [BGBUILD-162] - SFTP delivery plugin fails on Centos 5 in all configurations
  • [BGBUILD-169] - All EC2 builds fail to build, fail to run, or hang at runtime.
  • [BGBUILD-173] - Include setarch package in default package list for RPM-based OSes
  • [BGBUILD-176] - Fail the build with appropriate message if any of post section commands fails to execute
  • [BGBUILD-177] - Fedora 13 builds have enabled firewall although they shouldn't have it
  • [BGBUILD-180] - F14 AMI fails to launch
  • [BGBUILD-181] - eucatools python shebang replacement on EL5 not occuring
  • [BGBUILD-182] - Creating AMI fails when build is already done and just attempting to deliver it

Feature Request

  • [BGBUILD-103] - README to indicate supported operating systems / requirements
  • [BGBUILD-158] - Include bundler gem on meta appliance
  • [BGBUILD-159] - Would be handy if meta included createrepo
  • [BGBUILD-174] - Move plugins to boxgrinder-build gem
  • [BGBUILD-178] - Remove sensitive data from logs
  • [BGBUILD-183] - Add support for Fedora 15

Task

  • [BGBUILD-168] - Add support for old-style packages section in appliance definition format
  • [BGBUILD-175] - Rewrite boxgrinder CLI to remove thor dependency
  • [BGBUILD-179] - Boolean and numeric parameters in hash-like values are not recognized

BoxGrinder Build 0.8.0 released, finally!

Update: With BoxGrinder 0.9.x the invocation has been changed, please refer to current usage instructions.

I'm really happy to announce immediate availability of BoxGrinder Build 0.8.0! This is the next major release with great new features.

Let's dive into some highlights!

Consolidated configuration file and command line interface improvements

Both things had quite high priority in my todo list. Both are drastically improving the usability of BoxGrinder. From now you don't need to have multiple configuration files - everything is located in one file and you can override configuration from command line.

Configuration file like this:

plugins:
  vmware:
    type: personal
    thin_disk: true

...and configuration specified like this:

boxgrinder build jeos.appl -p vmware --platform-config type:personal thin_disk:true

are equivalent! You can use this to override configuration parameters that you want change sometimes (for example bucket name when deploying to a test bucket vs. production bucket).

These changes make command line interface much more usable. For more information please refer to my earlier post where I explained in detail how to use it.

Library enhancements

It is now possible to use BoxGrinder Build as a library from your Ruby scripts! I introduced it a bit earlier, please take a look.

VirtualBox plugin

With 0.8.0 we ship an early version of VirtualBox plugin. What it creates is really a VMware disk you can import to your library. In the next versions - we'll extend it to generate also metadata files to directly use BoxGrinder appliances in VirtualBox.

Support for all EC2 regions

Yes, it's true, finally. We support all EC2 regions. You can choose now region specifying 'region' config parameter for S3 or EBS delivery plugins.

If you want register an AMI in us-east-1 region (which is the default region for BG), please use command similar to this one:

boxgrinder build jeos.appl -p ec2 -d ami --delivery-config region:us-east-1    

To deliver the same appliance to EU bucket:

boxgrinder build jeos.appl -p ec2 -d ami --delivery-config region:eu-west-1 

Snapshot support for EC2 appliances

Imagine you create an appliance for EC2. It starts, you test it but you're not happy with it. You decide to make some changes but when you try to register it - you get the message that it's already registered. Let me introduce snapshot feature for delivering appliances to EC2.

To use snapshots, just specify 'snapshot' parameter for S3 or EBS plugin, like this:

boxgrinder build jeos.appl -p ec2 -d ami --delivery-config snapshot:true

Operating systems support for RHEL 6

Yes, you can now build appliances based on RHEL 6 for all currently supported platform/delivery plugins. Enjoy!

Simpler packages section

We removed includes section from packages definition. Consider this appliance definition snippet:

packages:
  includes:
    - mc    

This was changed into:

packages:
  - mc    

To use new BoxGrinder 0.8.0 with appliance definition files created for earlier versions - you need to manually remove the includes subsection.

Fedora status

Current stable version in Fedora 13 and 14 (and also in Rawhide) is 0.7.1. I'll start submitting version 0.8.0 to Fedora shortly! Stay tuned. For now - please use our repository.

Enjoy!

Hope you like the changes. Feel free to reach us in #boxgrinder channel on irc.freenode.net. Happy building to you!

Release notes

Bug

  • [BGBUILD-60] - Post section merging pattern for appliances depending on the same appliance
  • [BGBUILD-132] - Require only region name change for S3 plugin to register AMI in different region
  • [BGBUILD-138] - enablerepo path is not escaped when calling repoquery
  • [BGBUILD-146] - BG Build lacks -v --version CLI flags
  • [BGBUILD-149] - Spurious gnome error message during build
  • [BGBUILD-151] - Overriding hardware partitions via inclusion in Appliance Definition File causes build failure

Feature Request

  • [BGBUILD-68] - Global .boxgrinder/config or rc style file for config
  • [BGBUILD-72] - Add support for growing (not pre-allocated) disks for KVM/Xen
  • [BGBUILD-74] - Allow for some way to build and push AMIs to Amazon without bumping the version or release numbers in the .appl file
  • [BGBUILD-75] - Allow for some way to build and push EBS-backed AMIs to Amazon without bumping the version or release numbers in the .appl file
  • [BGBUILD-79] - Allow to use BoxGrinder Build as a library
  • [BGBUILD-89] - Install @core package group as a minimum package list for RPM-based operating systems
  • [BGBUILD-93] - Add Red Hat Enterprise Linux 6 support
  • [BGBUILD-101] - Don't use 'includes' subsection when specifying packages
  • [BGBUILD-127] - Use appliance definition object instead of a file when using BG as a library
  • [BGBUILD-128] - Allow to specify plugin configuration using CLI
  • [BGBUILD-129] - Use partitions labels instead of device path in grub and fstab
  • [BGBUILD-130] - Add virtio support out of the box
  • [BGBUILD-133] - Support a consolidated configuration file
  • [BGBUILD-134] - Replace rubygem-commander with rubygem-thor
  • [BGBUILD-135] - Display the region name when reporting the registered ami
  • [BGBUILD-137] - Show the appliance name in the ami registration notice
  • [BGBUILD-147] - Allow to list installed plugins and version information

Task

  • [BGBUILD-5] - New platform plugin: VirtualBox
  • [BGBUILD-120] - Add support for all EC2 regions
  • [BGBUILD-121] - Use pvgrub for RHEL/CentOS 5
  • [BGBUILD-126] - Use encrypted password in kickstart files
  • [BGBUILD-131] - Check if OS is supported before executing the plugin
  • [BGBUILD-140] - Update documentation to reflect plugin and CLI changes

FUDCon Tempe 2011 - delayed impressions

Thanks to Max and Robyn (and of course my boss!) I was able to attend this year's FUDCon in Tempe, AZ. I submitted a talk proposal about BoxGrinder.

This was my first time at a BarCamp-like conference. I was surprised how the topic selection works. Every submitted talk (and there was about 70 talks at least!) was introduced by speaker in the main room in about 15 sec. This time must suffice to attract the people to attend the session. I like it this way – community chooses tracks they want listen to.

My BoxGrinder talk was accepted. Not sure if it was because of the topic itself or stickers that arrived one day before the conference :) Thanks Toby and James! Either case - my talk was scheduled right after BarCamp ended and we were forced to change the location. I had about 25 people or so. I think the talk went quite good, got a lot of questions. The difference between FUDCon and other conferences where I presented is that I got here more technical questions. Thanks for attending my talk. Slides are available in my previous post.

I attended some other (mostly cloud-related) sessions and met several people I knew only from IRC. It's always fun to assign an 'avatar' to an IRC nick :) I've talked a lot with Chris from Aeolus team and Graziano from Eucalyptus.

With Chris we talked about possibility of replacing appliance-tools with oz. Unfortunately we faced some performance issues in a virtualized environments which prevents the integration at this point :( Maybe in the future I'll take a look one more time on how to make it possible.

I and Graziano worked on an Eucalyptus plugin for BoxGrinder. It was quite straightforward as Eucalyptus is almost 1:1 AWS clone. we faced some minor issues, but expect to have Eucalyptus support added to BoxGrinder soon!

I learned some new YUM commands from James Antill. You can get transcript from this talk here. Skim it to grab the juicy commands.

Perry Myers (with a BoxGrinder sticker on his laptop!) presented Matahari which is a system for managing system services using agents connected to a bus. It's pluggable, so you can write your own agent to meet your needs. Transcript is located here (2nd half of it) and slides here.

At the end of first day at FUDCon we went to FUDPub to enjoy some beers with others, chat and play games! I was surprised on how good it was organized. We had a few bowling tracks for us, ping-pong, snooker and some other fun stuff. Thanks Fedora!

And of course I enjoyed Tempe. Drink some beers at Gordon Biersch's brewery and walked around the city. Took also a quick trip to Phoenix. You can see all my photos here.

Yes, FUDCon in Tempe was a great experience, thanks everyone for organizing and attending this event. see you next time!

BoxGrinder Build 0.7.1 released!

New Year - new release! I decided to push out a bugfix release for BoxGrinder Build because of one nasty bug: BGBUILD-124 which prevented from mounting more that one partition in libguestfs.

I removed also unused RPM database recreation code which is not necessary after we dropped Fedora 11 and 12 support in 0.7.0.

This update is immediately available for download from our repositoryas well as from Fedora updates-testing repo.

Bug

  • [BGBUILD-124] - Guestfs fails while mounting multiple partitions with '_' prefix

Task

  • [BGBUILD-122] - Remove kernel recreation for Fedora EC2 images
  • [BGBUILD-123] - Remove RPM database recreation code
  • [BGBUILD-125] - Create kickstart files in RPM-based OS plugin in a temporary directory