From Fedora Project Wiki
No edit summary
m (→‎Scope: minor typo correction)
 
(37 intermediate revisions by 10 users not shown)
Line 1: Line 1:
= Appliance Tools =
= Appliance Building =


== Summary ==
== Summary ==


Tools for generating appliance images on Fedora based systems. This feature consists of a set of tools and meta data which make it easier for anyone (ISVs, developers, OEMS, etc) to create and deploy virtual appliances.  The two pieces are the '''ACT''' (Appliance Creation Tool) and the '''AOS''' (The Appliance Operating System)
Appliances are pre-installed, pre-configured, system images. This feature consists of a tools and meta-data that make it easier for anyone (ISVs, developers, OEMS, etc) to create and deploy virtual appliances.  The two components of this feature are the '''ACT''' (Appliance Creation Tool) and the '''AOS''' (The Appliance Operating System)


== Owner ==
== Owner ==


* Name: David Huff
* Name: [[User:Huff|David Huff]]


== Current status ==
== Current status ==


* Targeted release: [[Releases/10|  Fedora 10]]  
* Targeted release: [[Releases/10|  Fedora 10]]  
* Last updated: 08-7-08
* Last updated: 09-26-2008
* Percentage of completion: %80
* Percentage of completion: %100
* https://bugzilla.redhat.com/show_bug.cgi?id=457152
* https://bugzilla.redhat.com/show_bug.cgi?id=457152
current version: appliance-tools-003-4.fc10


== Detailed Description ==
== Detailed Description ==


ACT: The Appliance Creation Tool is a tool to create Appliance Images from a kickstart file. This tool uses the liveCD creator API as well as patches to the LIVECD API originally written by Daniel P. Berrange <berrange@redhat.com> to create a multi partitioned disk image. These Disk images can then be booted in a virtual container such as XEN, KVM, and VMWARE.  This tool will be contained in the applinace-tools package. This package contains tools for building appliance images on Fedora based systems including
ACT: The Appliance Creation Tool is a tool to create Appliance Images from a kickstart file. This tool uses the liveCD creator API as well as patches to the LIVECD API originally written by [[User:Berrange|Daniel P. Berrange]] to create a multi-partitioned disk image. These disk images can then be booted in a virtual container such as Xen, KVM, and VMware.  This tool will be contained in the <code>applianace-tools</code> package. This package contains tools for building appliance images on Fedora based systems including derived distributions such as RHEL, CentOS and others.
derived distributions such as RHEL, CentOS and others.


AOS: The AOS is a scaled down version of Fedora with a small footprint containing only the packages necessary to run an appliance. The hardware supported by this "spin" of Fedora would be limited, primarily focusing on virtual containers such as KVM and Vmware. The Goal would be to create a base that developers can build their applications on top of, only pull in packages that their software requires. A start from the bottom and build up mentality.   
AOS: The AOS is a scaled down version of Fedora with a small footprint containing only the packages necessary to run an appliance. The hardware supported by this [[Spins/What_is_a_spin|spin]] of Fedora would be limited, primarily focusing on virtual containers such as KVM and VMware. The goal is to create a base that developers can build their applications on top of, only pulling in packages that their software requires. A "start from the bottom and build up" mentality.   


This is similar to the concepts of JeOS (Just enough operation system)  
This is similar to the concepts of [http://en.wikipedia.org/wiki/Just_enough_operating_system_(JeOS) JeOS (Just enough operation system)].


See more info on the project at:
See more info on the project at:
http://thincrust.net
http://thincrust.net


== Benefit to Fedora ==
== Benefit to Fedora ==


* Provides a template for developers who want to build a fedora based appliance.  
The tooling will:
* Provides a tools for developers who want to build a fedora based appliance.  
* enable developers who want to build a fedora based appliance.  
* Provides a tool to generated a preinstalled multi partitioned disk
* enable developers to build a pre-installed multi partitioned disk
* It would also provide a minimal version of fedora for those who want to start form the ground up and add only what they want/need
* start to form some continuity around what Fedora appliances will look like.
* Will start to form some continuity around what Fedora appliances will look like.
 
The proposed AOS spin will:
* provide a template for developers who want to build a fedora based appliance.  
* provide a minimal version of fedora for those who want to start form the ground up and add only what they want/need
* allow developers to "kick the tires" of the AOS without having to build it from scratch.


== Scope ==
== Scope ==


* Requires new package applinace-tools
* Requires new package appliance-tools
* Requires hosting an AOS kickstart file in the kickstart pool  
* Requires hosting an AOS kickstart file in the kickstart pool  
* Requires hosting a binary image on http://spins.fedoraproject.org/
* Requires hosting a binary image on http://spins.fedoraproject.org/
* May require tooling changes to build/host an appliance image rather than a livecd iso? (appliance image = tar.gz which contains a binary disk image and meta-date used to launch the image.)


Target audience would mainly be developers wanting to quickly develop appliances based off of fedora  
Target audience would mainly be developers wanting to quickly develop appliances based off of fedora


== Test Plan ==
== Test Plan ==


  1. Test on supported platforms in rawhide, kvm. vmware
==== Test Appliance-creator tool in appliance tools package ====
  2. Work with Fedora QA to ensure that we have sufficient coverage
 
Since [[Releases/Rawhide| rawhide]] is not fully functional yet, the latest Appliance Tools packages have been built and are available for download at http://thincrust.org/download/. To install and test appliance-tools follow these instructions:
 
1. First, install F10 from rawhide
 
2. next, install all prerequisites using yum: *note to use kvm you must be running a full virt box
  yum install libvirt virt-manager libvirt-python python-virtinst qemu kvm virt-viewer
 
3. next, install the latest versions of appliance-tools and livecd-tools. *note as of this writing these packages are not in the rawhide/testing repo.  You will need to manually install these packages to test appliance-creator.
<pre>
rpm -Uvh http://thincrust.net/download/appliance-tools-003-3.fc10.noarch.rpm \
  http://thincrust.net/download/livecd-tools-018-1.fc10.thincrust.$(uname -i).rpm
</pre>
 
4. build the appliance:
  # appliance-creator -n ThinCrust -c /usr/share/appliance-tools/aos-rawhide.ks --cache /var/tmp/act/
 
5. launch appliance image:
  # virt-image ThinCrust.xml
 
6. use "virsh list" to see if its running and get the IDNUM
  # virsh list
 
7. connect to appliance and log in with root/thincrust and verify its running:
  # virt-viewer IDNUM
 
==== Test AOS image boots ====
* not needed to test until the aos spin is available via spin sig
 
  1) Download image
  2) Launch image on kvm via virt-image (repeat for X flavors of Fedora)
  3) Launch image on VMware??
 
* In all cases the expected results are really "It boots, we can log in"


== User Experience ==
== User Experience ==


1. Users can download a pre-built binary image and run in a container such as vmware or KVM and be able to have a demo up and running in minimal time
* Users can download a pre-built binary image and run in a container such as vmware or KVM and be able to have a demo up and running in minimal time
  2. Users can download the ks file and create there own version of the AOS locally using the appliance-creator tool
  # wget http://thincrust.org/downloads/thincrust.tar.gz
    * appliance-creator -c /usr/share/appliance-tools/aos-f9.ks --cache=/var/tmp/livecd/
# tar xvfz thincrust.tar.gz
 
# virt-image ThinCrust.xml
 
* Users can build there own version of the AOS locally using the appliance-creator tool
# appliance-creator -n ThinCrust -c /usr/share/appliance-tools/aos-f9.ks --cache=/var/tmp/livecd/
# virt-image ThinCrust.xml


== Dependencies ==
== Dependencies ==


* patches in Livecd-tools
* patches in Livecd-tools
* [PATCH] added get_partitions to kickstart.py
** [PATCH] added get_partitions to kickstart.py
* [PATCH] re-factor imgcreate/fs.py module
** [PATCH] re-factor imgcreate/fs.py module
* [PATCH] added compat shims in fs.py for old api
** [PATCH] added compat shims in fs.py for old api
* [PATCH] switch internal code to use new api
** [PATCH] switch internal code to use new api


* commited on 08/05/2008 08:27 PM
* commited on 08/05/2008 08:27 PM
** [Fedora-livecd-list] 7 commits - imgcreate/creator.py imgcreate/fs.py imgcreate/kickstart.py imgcreate/live.py
** commit: 5a3a91fe44795fb0d5c1f6215081b214d0af3f5b


  * [Fedora-livecd-list] 7 commits - imgcreate/creator.py imgcreate/fs.py imgcreate/kickstart.py imgcreate/live.py
* There may be a soft dependency on the "fedora upstream" or "based on fedora" trademark discussion.  We think it would really make this a strong feature if there was a story similar to: "Build the appliance, and brand it this way." without this, we need to provide alot more robust un-branding tools/doco.
  * commit: 5a3a91fe44795fb0d5c1f6215081b214d0af3f5b
** https://fedoraproject.org/wiki/User:Pfrields/NewTrademarkGuidelines


== Contingency Plan ==
== Contingency Plan ==
Line 77: Line 123:
* http://thincrust.net/
* http://thincrust.net/
* Discussion of  this project takes places at the thincrust-devel@redhat.com mailing list:
* Discussion of  this project takes places at the thincrust-devel@redhat.com mailing list:
    http://www.redhat.com/mailman/listinfo/thincrust-devel
** http://www.redhat.com/mailman/listinfo/thincrust-devel


== Release Notes ==
== Release Notes ==
Fedora 10 now includes tools which make it easier for anyone (ISVs, developers, OEMS, etc) to create and deploy virtual appliances. These tools are extensions of existing fedora tools, Meta-data, and best practices for appliance development and delivery. With these tools anyone with basic scripting experience can build virtual appliances.
== Release Engineering ==
==== Building The Distributable Appliance ====
1.Install all prerequisites using yum: *note to use kvm you must be running a full virt box
  # yum install libvirt virt-manager libvirt-python python-virtinst qemu kvm virt-viewer livecd-tools appliance-tools
2. Download the AOS kicksatrt from http://git.fedorahosted.org/git/?p=spin-kickstarts.git;a=blob_plain;f=fedora-aos.ks
3. As root, build the appliance from the loocation the kickstart file was downloaded.
  # appliance-creator -n fedora-aos -c fedora-aos.ks --cache /var/tmp/act/
4. Tar and Compress the image
  # tar -czvf fedora-aos.tar.gz fedora-aos-sda.raw fedora-aos.xml
5. To test the created file (do this after step 4 to not modify the image by running it)
  # virt-image fedora-aos.xml
6. Use "virsh list" to see if its running and get the IDNUM
  # virsh list fedora-aos
7. Connect to appliance and log in with root (no password) and verify its running:
  # virt-viewer IDNUM
==== Users Expected Scenario ====
1. Download the tar.gz from the spins website or a torrent.
2. Unpack the files
  # tar -xzvf fedora-aos.tar.gz
3. Launch the image
  # virt-image fedora-aos.xml


* code:
4. Use "virsh list" to see if its running and get the IDNUM
    http://git.et.redhat.com/?p=act.git;a=summary
  # virsh list fedora-aos


5. Connect to appliance and log in with root/thincrust and verify its running:
  # virt-viewer IDNUM


feel free to add a comments......
== Comments and Discussion ==


----
* See [[Talk:Features/ApplicanceTools]].


[[Category:FeaturePageIncomplete]]
[[Category:FeatureAcceptedF10]]
[[Category:Virtualization|ApplianceTools]]

Latest revision as of 17:48, 10 December 2013

Appliance Building

Summary

Appliances are pre-installed, pre-configured, system images. This feature consists of a tools and meta-data that make it easier for anyone (ISVs, developers, OEMS, etc) to create and deploy virtual appliances. The two components of this feature are the ACT (Appliance Creation Tool) and the AOS (The Appliance Operating System)

Owner

Current status

current version: appliance-tools-003-4.fc10

Detailed Description

ACT: The Appliance Creation Tool is a tool to create Appliance Images from a kickstart file. This tool uses the liveCD creator API as well as patches to the LIVECD API originally written by Daniel P. Berrange to create a multi-partitioned disk image. These disk images can then be booted in a virtual container such as Xen, KVM, and VMware. This tool will be contained in the applianace-tools package. This package contains tools for building appliance images on Fedora based systems including derived distributions such as RHEL, CentOS and others.

AOS: The AOS is a scaled down version of Fedora with a small footprint containing only the packages necessary to run an appliance. The hardware supported by this spin of Fedora would be limited, primarily focusing on virtual containers such as KVM and VMware. The goal is to create a base that developers can build their applications on top of, only pulling in packages that their software requires. A "start from the bottom and build up" mentality.

This is similar to the concepts of JeOS (Just enough operation system).

See more info on the project at:

http://thincrust.net

Benefit to Fedora

The tooling will:

  • enable developers who want to build a fedora based appliance.
  • enable developers to build a pre-installed multi partitioned disk
  • start to form some continuity around what Fedora appliances will look like.

The proposed AOS spin will:

  • provide a template for developers who want to build a fedora based appliance.
  • provide a minimal version of fedora for those who want to start form the ground up and add only what they want/need
  • allow developers to "kick the tires" of the AOS without having to build it from scratch.

Scope

  • Requires new package appliance-tools
  • Requires hosting an AOS kickstart file in the kickstart pool
  • Requires hosting a binary image on http://spins.fedoraproject.org/
  • May require tooling changes to build/host an appliance image rather than a livecd iso? (appliance image = tar.gz which contains a binary disk image and meta-date used to launch the image.)

Target audience would mainly be developers wanting to quickly develop appliances based off of fedora

Test Plan

Test Appliance-creator tool in appliance tools package

Since rawhide is not fully functional yet, the latest Appliance Tools packages have been built and are available for download at http://thincrust.org/download/. To install and test appliance-tools follow these instructions:

1. First, install F10 from rawhide

2. next, install all prerequisites using yum: *note to use kvm you must be running a full virt box

 yum install libvirt virt-manager libvirt-python python-virtinst qemu kvm virt-viewer

3. next, install the latest versions of appliance-tools and livecd-tools. *note as of this writing these packages are not in the rawhide/testing repo. You will need to manually install these packages to test appliance-creator.

rpm -Uvh http://thincrust.net/download/appliance-tools-003-3.fc10.noarch.rpm \
 http://thincrust.net/download/livecd-tools-018-1.fc10.thincrust.$(uname -i).rpm

4. build the appliance:

 # appliance-creator -n ThinCrust -c /usr/share/appliance-tools/aos-rawhide.ks --cache /var/tmp/act/

5. launch appliance image:

 # virt-image ThinCrust.xml

6. use "virsh list" to see if its running and get the IDNUM

 # virsh list

7. connect to appliance and log in with root/thincrust and verify its running:

 # virt-viewer IDNUM

Test AOS image boots

  • not needed to test until the aos spin is available via spin sig
 1) Download image
 2) Launch image on kvm via virt-image (repeat for X flavors of Fedora)
 3) Launch image on VMware??
  • In all cases the expected results are really "It boots, we can log in"

User Experience

  • Users can download a pre-built binary image and run in a container such as vmware or KVM and be able to have a demo up and running in minimal time
# wget http://thincrust.org/downloads/thincrust.tar.gz
# tar xvfz thincrust.tar.gz
# virt-image ThinCrust.xml 
 
  • Users can build there own version of the AOS locally using the appliance-creator tool
# appliance-creator -n ThinCrust -c /usr/share/appliance-tools/aos-f9.ks --cache=/var/tmp/livecd/
# virt-image ThinCrust.xml

Dependencies

  • patches in Livecd-tools
    • [PATCH] added get_partitions to kickstart.py
    • [PATCH] re-factor imgcreate/fs.py module
    • [PATCH] added compat shims in fs.py for old api
    • [PATCH] switch internal code to use new api
  • commited on 08/05/2008 08:27 PM
    • [Fedora-livecd-list] 7 commits - imgcreate/creator.py imgcreate/fs.py imgcreate/kickstart.py imgcreate/live.py
    • commit: 5a3a91fe44795fb0d5c1f6215081b214d0af3f5b
  • There may be a soft dependency on the "fedora upstream" or "based on fedora" trademark discussion. We think it would really make this a strong feature if there was a story similar to: "Build the appliance, and brand it this way." without this, we need to provide alot more robust un-branding tools/doco.

Contingency Plan

  • port all functionality of new api re-factor imgcreate/fs.py module into applinace-tools package

Documentation

Release Notes

Fedora 10 now includes tools which make it easier for anyone (ISVs, developers, OEMS, etc) to create and deploy virtual appliances. These tools are extensions of existing fedora tools, Meta-data, and best practices for appliance development and delivery. With these tools anyone with basic scripting experience can build virtual appliances.

Release Engineering

Building The Distributable Appliance

1.Install all prerequisites using yum: *note to use kvm you must be running a full virt box

 # yum install libvirt virt-manager libvirt-python python-virtinst qemu kvm virt-viewer livecd-tools appliance-tools

2. Download the AOS kicksatrt from http://git.fedorahosted.org/git/?p=spin-kickstarts.git;a=blob_plain;f=fedora-aos.ks

3. As root, build the appliance from the loocation the kickstart file was downloaded.

 # appliance-creator -n fedora-aos -c fedora-aos.ks --cache /var/tmp/act/

4. Tar and Compress the image

 # tar -czvf fedora-aos.tar.gz fedora-aos-sda.raw fedora-aos.xml

5. To test the created file (do this after step 4 to not modify the image by running it)

 # virt-image fedora-aos.xml

6. Use "virsh list" to see if its running and get the IDNUM

 # virsh list fedora-aos

7. Connect to appliance and log in with root (no password) and verify its running:

 # virt-viewer IDNUM

Users Expected Scenario

1. Download the tar.gz from the spins website or a torrent.

2. Unpack the files

 # tar -xzvf fedora-aos.tar.gz 

3. Launch the image

 # virt-image fedora-aos.xml

4. Use "virsh list" to see if its running and get the IDNUM

 # virsh list fedora-aos

5. Connect to appliance and log in with root/thincrust and verify its running:

 # virt-viewer IDNUM

Comments and Discussion