diff --git a/.gitignore b/.gitignore index acde37a4..9b928085 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *.pyc src/pylorax/version.py* +_build/ diff --git a/Makefile b/Makefile index 7106c6b6..d9206693 100644 --- a/Makefile +++ b/Makefile @@ -31,6 +31,9 @@ clean: tag: git tag -f $(TAG) +docs: + $(MAKE) -C docs apidoc + archive: @git archive --format=tar --prefix=$(PKGNAME)-$(VERSION)/ $(TAG) > $(PKGNAME)-$(VERSION).tar @gzip $(PKGNAME)-$(VERSION).tar diff --git a/README.livemedia-creator b/README.livemedia-creator deleted file mode 100644 index 99dbb89f..00000000 --- a/README.livemedia-creator +++ /dev/null @@ -1,378 +0,0 @@ - -INTRO ------ -livemedia-creator uses Anaconda, kickstart and Lorax to create bootable media -that use the same install path as a normal system install. It can be used to -make live isos, bootable (partitioned) disk images and filesystem images for -use with virtualization. - -The general idea is to use virt-install to install into a disk image and then -use the disk image to create the bootable media. - -livemedia-creator --help will describe all of the options available. At the -minimum you need: - ---make-iso to create a final bootable .iso ---iso to specify the Anaconda install media to use with virt-install ---ks is the kickstart to use to install the system - -To use livemedia-creator with virt-install you will need to install the -following packages, as well as have libvirtd setup correctly. - virt-install - libvirt-python - -If you are going to be using Anaconda directly, with --no-virt mode, make sure -you have the anaconda package installed. - - -QUICKSTART ----------- -sudo livemedia-creator --make-iso \ ---iso=/extra/iso/Fedora-18-x86_64-netinst.iso --ks=./docs/fedora-livemedia.ks - -If you are using the lorax git repo you can run it like so: - -sudo PATH=./src/sbin/:$PATH PYTHONPATH=./src/ ./src/sbin/livemedia-creator \ ---make-iso --iso=/extra/iso/Fedora-18-x86_64-netinst.iso \ ---ks=./docs/fedora-livemedia.ks --lorax-templates=./share/ - -If you want to watch the install you can pass '--vnc vnc' and use a vnc -client to connect to localhost:0 - -This is usually a good idea when testing changes to the kickstart. It tries -to monitor the logs for fatal errors, but may not catch everything. - - -HOW IT WORKS ------------- -There are 2 stages, the install stage which produces a disk or filesystem -image as its output, and the boot media creation which uses the image as -its input. Normally you would have it run both stages, but it is possible -to have it stop after the install stage, using --image-only, or to have it -skip the install stage and use a previously created disk image by passing ---disk-image or --fs-image - -When creating an iso virt-install boots using the passed Anaconda installer iso -and installs the system based on the kickstart. The %post section of the -kickstart is used to customize the installed system in the same way that -current spin-kickstarts do. - -livemedia-creator monitors the install process for problems by watching the -install logs. They are written to the current directory or to the base -directory specified by the --logfile command. You can also monitor the install -by passing --vnc vnc and using a vnc client. This is recommended when first -modifying a kickstart, since there are still places where Anaconda may get -stuck without the log monitor catching it. - -The output from this process is a partitioned disk image. kpartx can be used -to mount and examine it when there is a problem with the install. It can also -be booted using kvm. - -When creating an iso the disk image's / partition is copied into a formatted -disk image which is then used as the input to lorax for creation of the final -media. - -The final image is created by lorax, using the templates in /usr/share/lorax/ -or the directory specified by --lorax-templates - -Currently the standard lorax templates are used to make a bootable iso, but -it should be possible to modify them to output other results. They are -written using the Mako template system which is very flexible. - - -KICKSTARTS ----------- -The docs/ directory includes two example kickstarts, one to create a live desktop -iso using GNOME, and the other to create a minimal disk image. When creating your -own kickstarts you should start with the minimal example, it includes several -needed packages that are not always included by dependencies. - -Or you can use existing spin kickstarts to create live media with a few -changes. Here are the steps I used to convert the Fedora XFCE spin. - -1. Flatten the xfce kickstart using ksflatten -2. Add zerombr so you don't get the disk init dialog -3. Add clearpart --all -4. Add swap partition -5. bootloader target -6. Add shutdown to the kickstart -7. Add network --bootproto=dhcp --activate to activate the network - This works for F16 builds but for F15 and before you need to pass - something on the cmdline that activate the network, like sshd. - -livemedia-creator --kernel-args="sshd" - -8. Add a root password - -rootpw rootme -network --bootproto=dhcp --activate -zerombr -clearpart --all -bootloader --location=mbr -part swap --size=512 -shutdown - -9. In the livesys script section of the %post remove the root password. This - really depends on how the spin wants to work. You could add the live user - that you create to the %wheel group so that sudo works if you wanted to. - -passwd -d root > /dev/null - -10. Remove /etc/fstab in %post, dracut handles mounting the rootfs - -cat /dev/null > /dev/fstab - - Do this only for live iso's, the filesystem will be mounted read only if - there is no /etc/fstab - -11. Don't delete initramfs files from /boot in %post -12. Have dracut-config-generic, grub-efi, memtest86+ and syslinux in the package - list. -13. Omit dracut-config-rescue from the package list "-dracut-config-rescue" - -One drawback to using virt-install is that it pulls the packages from -the repo each time you run it. To speed things up you either need a local -mirror of the packages, or you can use a caching proxy. When using a proxy -you pass it to livemedia-creator like so: - ---proxy=http://proxy.yourdomain.com:3128 - -You also need to use a specific mirror instead of mirrormanager so that the -packages will get cached, so your kickstart url would look like: - -url --url="http://dl.fedoraproject.org/pub/fedora/linux/development/17/x86_64/os/" - -You can also add an update repo, but don't name it updates. Add --proxy to -it as well. - - -ANACONDA IMAGE INSTALL ----------------------- -You can create images without using virt-install by passing --no-virt on the -cmdline. This will use Anaconda's directory install feature to handle the install. -There are a couple of things to keep in mind when doing this: - -1. It will be most reliable when building images for the same release that the - host is running. Because Anaconda has expectations about the system it is - running under you may encounter strange bugs if you try to build newer or - older releases. - -2. Make sure selinux is set to permissive or disabled. It won't install - correctly with selinux set to enforcing yet. - -3. It may totally trash your host. So far I haven't had this happen, but the - possibility exists that a bug in Anaconda could result in it operating on - real devices. I recommend running it in a virt or on a system that you can - afford to lose all data from. - -The logs from anaconda will be placed in an ./anaconda/ directory in either -the current directory or in the directory used for --logfile - -Example cmdline: - -sudo livemedia-creator --make-iso --no-virt --ks=./fedora-livemedia.ks - - -AMI IMAGES ----------- -Amazon EC2 images can be created by using the --make-ami switch and an appropriate -kickstart file. All of the work to customize the image is handled by the kickstart. -The example currently included was modified from the cloud-kickstarts version so -that it would work with livemedia-creator. - -Example cmdline: -sudo livemedia-creator --make-ami --iso=/path/to/boot.iso --ks=./docs/fedora-livemedia-ec2.ks - -This will produce an ami-root.img file in the working directory. - -At this time I have not tested the image with EC2. Feedback would be welcome. - - -APPLIANCE CREATION ------------------- -livemedia-creator can now replace appliance-tools by using the --make-appliance -switch. This will create the partitioned disk image and an XML file that can be -used with virt-image to setup a virtual system. - -The XML is generated using the Mako template from -/usr/share/lorax/appliance/libvirt.xml You can use a different template by -passing --app-template