Search My Blog

Friday, October 7, 2011

Trying out Thincrust, Tools for Building Appliances in Fedora 14

Thincrust, Tools for Building Appliances

An appliance is a pre-configured application and operating system bundle. Configuration options are controlled for ease of use and installation.

Appliances can be managed with on-board management tools, and can integrate with corporate wide management consoles. These options allow for easy integration of the appliance into the virtualization environment.

Appliances are updated via standard package management tools.
Thincrust is a set of tools and metadata which make it easier for anyone (ISVs, developers, OEMS, etc) to create and deploy appliances. These appliances can be virtual or traditional "bare metal" appliances. The thincrust tools extend and utilize existing fedora tools, which are focused around best practices for appliance development and delivery. With these tools anyone with basic scripting experience can build appliances.
There are many versions of appliances. Some are database driven web applications combined with an operating system, while others are small embedded operating systems (e.g. toasters). Therefore, Thincrust will look to provide tooling and metadata to address the common patterns seen in appliance development for various scenarios. In addition, it will look to collect best practices to aid developers in their work.


  1. Appliance Operating System (AOS):
    Minimal operating system definition. This is often referred to as a JeOS
  2. Appliance Creation Tool (ACT):
    A tool which generates bootable appliances images based on a kickstart file
  3. Appliance Configuration Engine (ACE):
    A boot time tool which can be used to configure an appliance at initial deployment, and to re-configure based on updates or "movement" of the binary (e.g. new ip address)
  4. Conversion Tools:
    Tools which allow developers to convert images between libvirt (xen/kvm), vmware, and ec2 environments.
Go there...

Building ThinCrust with Appliance Creator

You can build the AOS or a custom appliances using the Appliance Creator Tools and a kickstart file. The "appliance-creator" is included in the appliance-tools package and builds pre-installed, multi-partitioned, disk images with grub installed on the first partition of the first disk similar to a real disk.
To build a thincrust appliance image using the appliance creator you will need to install the appliance-tools package and a couple general virt tools to run virtual appliances on your Fedora box. It is recommended to be running F-10 however this should also work with F-9 or Rawhide. You may also wish to install the spin-kickstarts rpm which includes example kickstart files, including the AOS.
  1. Install all prerequisite virt tools using yum: *note to use kvm you must be running a full virt box
    # yum install qemu kvm libvirt libvirt-python python-virtinst virt-manager virt-viewer
  2. Install the latest versions of spin-kickstarts, which contains the AOS definition.
    # yum install spin-kickstarts (I already had this installed. But, I ran the commands to confirm my installation.) Don
  3. Install the latest versions of appliance-tools,
    # yum install appliance-tools
  4. Build the appliance, with the example kickstart file provided.
    # appliance-creator -n thincrust --config /usr/share/spin-kickstarts/fedora-aos.ks
  5. Launch the image using libvirt
    # virt-image thincrust.xml (This did not work for me until I found the folder where it was installed. I used Krusaders file search and found it in my regular users dir, "home/don/thincrust". But, since I had installed everything with "root" privileges. I had to change the file permissions to regular user, in order to be able to run this command.)Don
  6. Use "virsh list" to see if its running and get the IDNUM
    # virsh list (Pay attention here to the note above. I didn't and wen in circles for a while. This command gives you need to know to run the next command.) Don
  7. Connect to appliance and log in with root/thincrust and verify its running:
    # virt-viewer IDNUM (I did not get an ID Number, like I expected from the info above. But I did get the word State. This, will open the GUI VM Viewer and so will changing it to "thincurst". But, it just said it was waiting for it to connect and sat there like that. See my Terminal Output Below.) Don
[don@RedBlackBioStarFedora14 thincrust]$ virt-image thincrust.xml
ERROR    Guest name 'thincrust' is already in use.
[don@RedBlackBioStarFedora14 thincrust]$ virsh list
 Id Name                 State

[don@RedBlackBioStarFedora14 thincrust]$ virt-viewer State (Opens up the GUI App)
[don@RedBlackBioStarFedora14 thincrust]$ virt-viewer thincrust (Opens up the GUI App)

So, since I already had Virtual Machine Manager the GUI App, installed on my System. I added my /home/don/thincrust/thincrust-sda.raw" Machine Image to run it with Qemu. It started Booting just fine and then hung up with an Error, saying that if you want o Disable SeLinux to this... That's where I decided to quit messing with it...

But, I got allot farther tonight and a whole lot faster than I did with the Fedora livecd-creator Tool. See, my other Posts for that info... Update: Fedora Linux - How to create and use a Live CD - FedoraProject.
Go there...

Then I decided found the actual Qemu Launcher GUI App. So, I added my "/home/don/thincrust/thincrust-sda.raw" Machine in there and tried it out. It hung up at the same point. But,

If you hit Esc on your keyboard here. The VM will change to the GUI Boot View with Fedora's moving line graphic and will look like it is Booting up. But, it is not. You can hit Esc again to change back to the Terminal View and see that. Then I got to thinking about the Error message and what it said to do... "add selinux=0 to the kernel command line". So, I hit a key wile the Blue Fedora Boot Screen was up and then hit "a" to Edit the Boot Parameters in the Grub Command Line. That did it!:)

But, after my Thincrust VM finished Booting up. It was only in Terminal Mode. Command Line only. I tried typing "startx" and "wizard". But that didn't help. So, I looked around a while in the file system and then Rebooted. I'm wondering if my Video Settings in Qemu caused that??? I seem to remember having problems with this in other VM's that I tried to run in Qemu. So, lets see... 

Here's the Default Video Settings in Qemu. It's in the Hardware Tab.

I'm changing my Qemu Video Settings in Hardware to this...

Nope, that didn't work at all! Wouldn't even try to Boot!:O Nothing happened, so I switched it back to the Default, Curris Logic...

Well, I would think... That since there is a graphic boot screen, to be seen. That there would be a GUI Desktop installed too. But, I'm not actually sure. Since I went through the Thincrust Site and the installation and building of my Fedora 14 VM pretty quickly. It looks like a Command Line is all that you get with this Thincrust Fedora 14 VM. Not of any use to me. Since what I want, is really to make a Duplicate of my now running Fedora 14 System on a a USB Hard Drive to Boot on other Machines. Except the fact that I did get to see the making of a Virtual Machine work, using a Kickstart file in the Command Line. That was very satisfying... After all of the frustration I have had with running my Kickstart files in Fedora's livecd-creator Command Line App!:O I did notice a few Pre-Made Kickstart Files that they have available for various System Setups on the site. A Drupal  Web Site System, is the one that caught my eye. I use to have a Drupal Site, before I went to Self Hosting my Web Sites. So, I may try that one out too. There's more info on that below... 


Building Thincrust From Source

To check out and build from source, the code is available here: here
Go there...

Appliance Operating System

The Appliance Operating System (AOS) is a minimal operating system definition, containing only the packages necessary to run an appliance. The AOS is meant to be a base, on which new appliance's can be built on top of and customized for a specific application. The AOS is described in a kickstart file and is hosted in the Fedora Spins KickstartPool, this definition is meant to evolve over time to become a smaller, more usable base appliance defination. The AOS is designed to work as a virtual machine or as a traditional locked down bare metal appliance.
The AOS can be consumed in three ways:
  1. Download a pre-built "binary blob" - download and run
  2. Build from a "recipe" - Build the appliance "on site" using the Appliance creator
  3. Running it on EC2 - Thincrust in the cloud!

Downloading the AOS

Go there..

Example Appliances

The ACE comes with the following examples appliances. For each of these, download the kickstart file and then build and launch the appliance with the following commands:
# appliance-creator --name [NAME] --config [DOWNLOADED FILE]
# virt-image [NAME].xml
See tooling for instructions to set up the appliance creator.


Other Examples

In addition, the ace Examples project contains the following additional examples which require a bit more work to build.
Go there...

This info is just Part of what is on the Site. Go there for Complete info...


Thincrust is a set of tools and metadata which make it easier for anyone (ISVs, developers, OEMS, etc) to create and deploy appliances.
Building ThinCrust with Appliance Creator- tooling.html
Puppet - Overview - Puppet Labs
Puppet Labs: The Leading IT Automation Software Solution
Fedora Hosted Git Repositories - spin-kickstarts.git/summary
libvirt: The virtualization API
Fedora Linux - How to create and use a Live CD Fedora Project Remix Duplicate your Installation
Fedora Live Images
DonsDeals: Update: Fedora Linux - How to create and use a Live CD - FedoraProject
fedora 14 /.liveimg-configured - Google Search
How to create and use Live USB - FedoraProject
How to create and use a Live CD - FedoraProject
Musicians' Guide
2.3. Using the JACK Audio Connection Kit
Deployment Guide
/fedora-live-desktop.ks - spin-kickstarts - Trac

No comments: