Anaconda/Features/ReworkLiveCD

From FedoraProject

< Anaconda | Features(Difference between revisions)
Jump to: navigation, search
(Detailed Description)
(Current status)
(17 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Rework current livecd support =
+
= Rework current livecd support (livemedia-creator) =
  
 
== Summary ==
 
== Summary ==
  
 
Rethink livecd installation and figure a way to sanely support.
 
Rethink livecd installation and figure a way to sanely support.
RHEL use case is virt (RHEV). Fedora use case are the live CDs.
+
RHEL use case is virt (RHEV). Fedora use case are the live CDs.
  
python-imgcreate needs to be more tightly integrated with Anaconda. It currently produces images that are almost, but not quite exactly the same as an Anaconda installed system. In order to accomplish this Anaconda needs to be more modular so that things like hooking the fstab generation or bootloader type can be accomplished. The goal is to move functionality out of python-imgcreate and into Anaconda provided (an maintained) classes. Eventually python-imgcreate may become part of Anaconda to simplify maintenance of the interface.
+
The creation of live cd/dvd media should use Anaconda instead of python-imgcreate. Currently we have to maintain logic in both places and the final install is not the same since two different methods are used to populate the target image. We then promote installing from livecd's to the user's system, resulting in a system that really wasn't built by Anaconda.
  
The move to the pyanaconda module and the storage system rewrite move us in the right direction.
+
lorax is what builds the install trees and creates the boot media. It is the logical place to maintain any live image creation code. The treebuilder branch goes a long ways towards making this possible, but it needs to be enhanced to use Anaconda to install to the target image file instead of the custom templates that it uses for boot media.
 
+
Here are some of the things that need to be exposed by Anaconda
+
* bootconfig hook - called after package install, but before kickstart %post. Used to create bootloader config.
+
* fstab creation
+
* _get_kernel_versions - list of installed kernels. Used to setup custom bootloaders
+
* filesystem hook - creation, mounting, sparse image creation, squashfs, construction of iso
+
* custom dracut.conf and mkinitrd.conf
+
  
 
== Owner ==
 
== Owner ==
Line 21: Line 14:
  
 
== Current status ==
 
== Current status ==
* Targeted release: Fedora 16
+
* Targeted release: Fedora 17
* Last updated: 2011-07-11
+
* Last updated: 2012-04-04
* Percentage of completion: 50%
+
* Percentage of completion: 100%
  
 
== Detailed Description ==
 
== Detailed Description ==
Line 30: Line 23:
  
 
Parts to build
 
Parts to build
* kickstart to image processing using virt-install
+
* kickstart to image processing using virt-install (WORKS)
* Enhancements to anaconda to allow kickstarts to modify anaconda behavior via a plugin API
+
* Enhancements to anaconda to allow kickstarts to modify anaconda behavior via a plugin API (NOT NEEDED)
* creation of squashfs filesystem
+
* creation of squashfs filesystem (WORKS)
* move installed files to squashfs filesystem
+
* move installed files to squashfs filesystem (WORKS)
* create iso to boot the squashfs filesystem
+
* create iso to boot the squashfs filesystem (WORKS)
 +
* Integrate these into lorax and a new application owned by the lorax package (WORKS)
 +
** livemedia-creator is the name of the new tool, included in lorax-17.1-1 release
 +
* Naive build host calling anaconda directly (WORKS)
  
 
== Benefit to Fedora ==
 
== Benefit to Fedora ==
  
 
* Less bugs, more features
 
* Less bugs, more features
 +
* Logic for releases only needs to be maintained in lorax, which makes boot media, and in anaconda the installer as opposed to maintaining specific information in python-imgcreate and livecd-creator.
  
 
== Scope ==
 
== Scope ==
  
* anaconda
+
* Anaconda
* anaconda storage
+
* Lorax
* livecd-tools
+
* python-imgcreate
+
  
 
== Test Plan ==
 
== Test Plan ==
 +
 +
Modify existing spin kickstarts (changes needed are documented in the [http://git.fedorahosted.org/git/?p=lorax.git;a=blob;f=README.livemedia-creator README.livemedia-creator] included in lorax) and use the standard LiveCD testing criteria. And example Fedora Desktop kickstart [http://git.fedorahosted.org/git/?p=lorax.git;a=blob;f=docs/fedora-livemedia.ks is here].
  
 
== User Experience ==
 
== User Experience ==
 +
 +
Users will experience less bugs and will have a system that is identical to one installed using the DVD.
  
 
== Dependencies ==
 
== Dependencies ==
 +
* Anaconda
 +
* Lorax
 +
* virt-install
  
 
== Contingency Plan ==
 
== Contingency Plan ==
 +
 +
* Continue to use python-imgcreate
  
 
== Documentation ==
 
== Documentation ==
 +
 +
Documentation is included in [http://git.fedorahosted.org/git/?p=lorax.git;a=blob;f=README.livemedia-creator README.livemedia-creator] in Lorax.
  
 
== Release Notes ==
 
== Release Notes ==
  
[[Category:Anaconda]]
+
* livemedia-creator is now included in Lorax as of release 17.1 and can be used to create live iso's using modified spin kickstarts.
 +
* Fedora 17 LiveCD's will continue to use livecd-creator.
 +
* Fedora 18 will use livemedia-creator to create LiveCDs. This will require changing how koji is used for the LiveCD builds.
 +
 
 +
[[Category:Anaconda]] [[Category:FeatureAcceptedF17]]

Revision as of 00:12, 5 April 2012

Contents

Rework current livecd support (livemedia-creator)

Summary

Rethink livecd installation and figure a way to sanely support. RHEL use case is virt (RHEV). Fedora use case are the live CDs.

The creation of live cd/dvd media should use Anaconda instead of python-imgcreate. Currently we have to maintain logic in both places and the final install is not the same since two different methods are used to populate the target image. We then promote installing from livecd's to the user's system, resulting in a system that really wasn't built by Anaconda.

lorax is what builds the install trees and creates the boot media. It is the logical place to maintain any live image creation code. The treebuilder branch goes a long ways towards making this possible, but it needs to be enhanced to use Anaconda to install to the target image file instead of the custom templates that it uses for boot media.

Owner

Current status

  • Targeted release: Fedora 17
  • Last updated: 2012-04-04
  • Percentage of completion: 100%

Detailed Description

The only reliable way to create a livecd that works exactly like a DVD install is to use anaconda to handle the livecd creation instead of livecd-creator. The way to do this is to use the netboot.iso or dvd iso created by pungi+lorax. Everything else is a pale imitation. The plan, as it currently stands, is to use virt-install to process the kickstart into an image. The files from that will then be wrapped up inside a squashfs filesystem and wrapped in a bootable iso as we currently do for Live CD creation.

Parts to build

  • kickstart to image processing using virt-install (WORKS)
  • Enhancements to anaconda to allow kickstarts to modify anaconda behavior via a plugin API (NOT NEEDED)
  • creation of squashfs filesystem (WORKS)
  • move installed files to squashfs filesystem (WORKS)
  • create iso to boot the squashfs filesystem (WORKS)
  • Integrate these into lorax and a new application owned by the lorax package (WORKS)
    • livemedia-creator is the name of the new tool, included in lorax-17.1-1 release
  • Naive build host calling anaconda directly (WORKS)

Benefit to Fedora

  • Less bugs, more features
  • Logic for releases only needs to be maintained in lorax, which makes boot media, and in anaconda the installer as opposed to maintaining specific information in python-imgcreate and livecd-creator.

Scope

  • Anaconda
  • Lorax

Test Plan

Modify existing spin kickstarts (changes needed are documented in the README.livemedia-creator included in lorax) and use the standard LiveCD testing criteria. And example Fedora Desktop kickstart is here.

User Experience

Users will experience less bugs and will have a system that is identical to one installed using the DVD.

Dependencies

  • Anaconda
  • Lorax
  • virt-install

Contingency Plan

  • Continue to use python-imgcreate

Documentation

Documentation is included in README.livemedia-creator in Lorax.

Release Notes

  • livemedia-creator is now included in Lorax as of release 17.1 and can be used to create live iso's using modified spin kickstarts.
  • Fedora 17 LiveCD's will continue to use livecd-creator.
  • Fedora 18 will use livemedia-creator to create LiveCDs. This will require changing how koji is used for the LiveCD builds.