October 31, 2014

Dice - A light weight build service

Last week was Hackweek on SUSE and for 2 days I hacked on Marcus' project "Dice - A light weight build service".

It was fun and Marcus code was very easy to understand, very well structured and with comprehensive tests.

Dice is a simple build service for KIWI images using virtual instances controlled by vagrant or a directly contacted build machine. It can be used to fire up build jobs on e.g public cloud instances.

What that means is that you can do:

>dice build myimage

and that will either:

1- start a virtual machine on your workstation/laptop and build your image IN that virtual machine

2- connect to a virtual machine on the cloud (i.e. google cloud) and build your image IN that cloud virtual machine


And why all the trouble? the reasons:

1- setting up an environment for building images on your laptop/workstation can be sometimes paintful

2- running multiple builds on your laptop/workstation will make your host performance get low. Builds take time, thus you normally are doing something else meanwhile, and running the build on the cloud can be very good so that you can use your resources for something else

3- security: building an image implies running custom scripts. If you have done this scripts, fine, but if not, better not run it on your laptop/ws.

4- availability: having a build service on the cloud, makes it available to others that won't have to invest time on setting it up

During those 2 days, I just implemented the ssh command as:

> dice ssh myimage

which will open an ssh connection to the build node, either virtual machine on you laptop/ws or in the cloud, so that you can easily debug when a build fails.


1 comment:

Jagan said...

Hi,

i tried to use dice tool, i have followed all the steps mentioned in the link "https://github.com/openSUSE/kiwi/wiki/Building-images-in-a-Docker-container". But when i run
"dice build /tmp/suse-13.1-JeOS" it is failing with below error.
dice build /tmp/suse-13.1-JeOS
[22634][suse-13.1-JeOS]: BuildSystem: Setting up Vagrant buildsystem
[22634][suse-13.1-JeOS]: Solver: Running package solver
[22634][suse-13.1-JeOS]: No solver information for package: pattern:base
[22634][suse-13.1-JeOS]: VagrantBuildSystem: Initiate shutdown...
[22634][suse-13.1-JeOS]: VagrantBuildSystem: ==> default: The container hasn't been created yet.
[22634][suse-13.1-JeOS]:
[22634][suse-13.1-JeOS]: Reset working directory

please let me know how we can debug dice.

Thanks & Regards,
Jagan