Commit Graph

645 Commits

Author SHA1 Message Date
Brian C. Lane
8641caca9e livemedia-creator: Create parent dirs for logfile path
The directory where the --logfile is located is also used for other log
files and for the anaconda logs when using --no-virt. Create the parent
directories if they don't exist.
2015-01-15 09:39:15 -08:00
Radek Vykydal
14494461a9 --make-pxe-target: change permissions of regenerated initramrfs to 0644 2015-01-15 11:03:15 +01:00
Brian C. Lane
cd7adac241 livemedia-creator: add a timeout to the log monitor startup 2015-01-14 07:47:19 -08:00
Radek Vykydal
a19c509430 Add --make-pxe-live and --make-ostree-live (for Atomic) targets.
--make-pxe-live target generate live squashfs and initrd for pxe boot.
Also generates pxe config template.

--make-ostree-live is used for installations of Atomic Host. Additionally to
--make-pxe-live it ensures using deployment root instead of physical root of
installed disk image where needed. Atomic installation needs to be virt
installation with /boot on separate partition (the only way supported by
Anaconda currently). Content of boot partition is added to live root fs so that
ostree can find deployment by boot configuration.
2015-01-13 12:45:06 +01:00
Brian C. Lane
d96ed99621 Add log monitoring to lmc --no-virt installation
Previously if there was an error during a novirt installation that
didn't exit the process there was no way to detect it. This uses the new
--remotelog option for anaconda to monitor the logs for errors using the
same criteria as it does when monitoring a virt install. If there is an
error the anaconda process will be terminated and the logs will be
gathered up into ./anaconda/
2015-01-09 15:05:12 -08:00
Colin Walters
52d962d613 Add --includepkg argument
Recently, Fedora has been trying to do a 3 product split.  As part of
that, lorax was changed to do "installpkg lorax-product-*" via
provides.

I think that approach is awkward; a much simpler approach is to simply
specify the product package as input to lorax on the command line, via
external rel-eng scripts.

This patch therefore adds --includepkg (and we should probably add an
option to remove the implicit lorax-product-* glob).
2014-12-05 15:58:58 -08:00
Brian C. Lane
b064ae6166 Add installimg command for use in the templates
installimg SRCDIR DESTFILE
  Create a compressed cpio archive of the contents of SRCDIR and place
  it in DESTFILE.

  If SRCDIR doesn't exist or is empty nothing is created.

Examples:
  installimg ${LORAXDIR}/product/ images/product.img
2014-11-05 09:58:51 -08:00
Brian C. Lane
30501ff492 livemedia-creator: Add nfs support for no-virt mode (#1121255) 2014-10-09 17:27:39 -07:00
Peter Jones
a05348ee9f Look for "BOOT${efiarch}.EFI" in mkefiboot as well.
The aarch64 change to use shim (6907567) also stopped using mixed-case
names for BOOT${efiarch}.efi (so it's always .EFI and ${efiarch} is X64
IA32 AA64 etc. now), and mkefiboot needs to match that.

Related: rhbz#1043274
Related: rhbz#1100048
2014-10-07 10:53:08 -04:00
Brian C. Lane
1688a3c3a9 livemedia-creator: Make sure ROOT_PATH exists (#1144140)
If ROOT_PATH doesn't exist when making a tar file, create it first.

Related: rhbz#1144140
(cherry picked from commit da68471b33)
2014-09-23 11:49:02 -07:00
Brian C. Lane
018c9911a1 livemedia-creator: Add --no-recursion to mktar (#1144140)
tar recurses into directories by default, but find is feeding it all the
files and directories so the tar it produces is considerably larger than
it needs to be due to duplicate files. Add --no-recursion flag so that
tar will only add the specific files and directories piped to it by find.

Related: rhbz#1144140
(cherry picked from commit a8681aca4e)
2014-09-23 11:48:26 -07:00
David Shea
25b4d539ac Let the plymouth dracut module back into the ppc64 upgrade.img
The 32MiB size limit does not apply to upgrade.img since it's installed
to /boot by redhat-upgrade-tool instead of downloaded through TFTP. The
warning in rebuild_initrds will still be triggered by an upgrade.img
over the limit, but this doesn't halt the compose and it's probably not
a bad thing to know about.
2014-09-15 11:27:58 -04:00
Brian C. Lane
364ce363f7 Add ppc64le arch (#1136490)
basearch is ppc64le so we needs to check for that in addition to ppc64.

Resolves:rhbz#1136490
2014-09-03 10:41:42 -07:00
Brian C. Lane
c8afae35b4 livemedia-creator: Add ppc64 live creation support (#1102318)
The ppc config files were missing from the live config_files directory
and ppc needs the correct lib directory so lmc has been switched to use
ArchData driven from the installed kernel arch.

Resolves: rhbz#1102318
(cherry picked from commit 59f256e989)
2014-08-27 16:40:50 -07:00
Brian C. Lane
bb445e2deb livemedia-creator: Padd disk size by 2MiB
When using GPT it reserves a few more sectors at the end of the disk for
the copy of the GPT so pad the size of the partitions in the kickstart
by 2MiB instead of 1MiB to account for this.
2014-08-08 15:38:33 -07:00
Brian C. Lane
ffa40722dd livemedia-creator: Run setfiles after no-virt installation
Depending on the environment that --no-virt is run inside the resulting
filesystem may need to have the SELinux labels updates. Run setfiles on
the new filesystem after the anaconda run has finished.

eg. when run from inside mock the labels will be incorrect.
2014-08-06 09:11:59 -07:00
Colin Walters
611cef1823 https is a sane package source URL scheme
Add https as a URL source and use list comprehension to check the
supported protocols.
2014-07-31 14:29:02 -07:00
Brian C. Lane
c875a72020 livemedia-creator: close the socket when done
In some cases the socket may not be closed, so make sure it is to
prevent hangs when shutting down the virt.
2014-07-16 11:50:25 -07:00
Brian C. Lane
41b58f8f6c livemedia-creator: Allow the boot.iso to be shared
This allows the boot.iso to be used by multiple instances of lmc (or
virt-install if they also set --disk shareable=on)
2014-07-09 10:05:18 -07:00
Brian C. Lane
5f96701caf livemedia-creator: log more failure information
This switches on the rc checking in execWithRedirect and logs the error
it raises.
2014-07-08 13:24:58 -07:00
Brian C. Lane
fd4afe2530 livemedia-creator: drop console=ttyS0
This no longer seems to be needed, and causes images created without
passing --vnc vnc to start up with a serial console. If you need a
serial console you can pass it using --kernel-args
2014-07-08 13:24:58 -07:00
Brian C. Lane
ee54cc6c31 livemedia-creator: Log the line that caused the failure
Sometimes it can be hard to tell exactly what triggered the error
detection, so log the line that matched.
2014-07-08 13:24:58 -07:00
Brian C. Lane
380a6ddd6d livemedia-creator: add more errors
Add check for running traceback script and when the retry fails.

This also indicates something went wrong with the installation, exit
when they are seen in the logs.

Also drop looking for WARNING in the regex errors, they will be errors
after the syslog level name remap patch goes into anaconda.
2014-07-08 13:24:58 -07:00
Chris Lumens
b7be1d97fe Allow doing non-URL installs if using virt.
In this case, we don't need to pass a repo parameter to anaconda.  It's running
in a VM and knows how to deal with a kickstart file.
2014-07-07 10:01:43 -04:00
Peter Jones
c789f20b66 Don't emit media labels with spaces in them.
Spaces cause various bugs like #923374 and #855849 , and it would be
better if we just didn't use them.

Note that there's a corresponding pungi change to go with this.

Signed-off-by: Peter Jones <pjones@redhat.com>
2014-07-01 11:59:19 -04:00
Brian C. Lane
29de1d43a5 livemedia-creator: Ignore IGNORED errors in anaconda logs 2014-06-26 13:01:59 -07:00
Brian C. Lane
b22a7df476 livemedia-creator: Handle virt-install failure cleanup
Unmount the iso and remove the disk, if it exists.
2014-06-19 16:43:39 -07:00
Brian C. Lane
d79222e8ea livemedia-creator: Fail when there are missing packages
Watch the logs for  WARNING packaging: .* requires .* which indicates
that there are missing packages and it is sitting at a prompt waiting
for user input.
2014-06-19 16:43:39 -07:00
Colin Walters
66359415be Add --add-template{,-var}
What I need is to make something like the traditional DVD which also
includes packages.  At present this is apparently handled by the
entirely separate pungi tool.

At the moment for me, it's the least bad option to modify lorax to
inject data from an external source than to create a new tool, or
attempt to also modify pungi to do this.

This would also allow pungi's DVD creation to eventually be a set of
external templates for Lorax.
2014-05-12 16:04:28 -07:00
Brian C. Lane
d25c0b0594 Update copyright statements 2014-05-09 15:13:39 -07:00
Brian C. Lane
1807a39ace livemedia-creator: Cleanup docstrings
Start using Sphinx style docstrings.
2014-05-09 11:46:37 -07:00
Brian C. Lane
833d64d1f7 livemedia-creator: Cleanup some style issues 2014-05-09 09:28:01 -07:00
Brian C. Lane
0094fab0d4 Cleanup other misc pylint warnings 2014-05-09 08:10:41 -07:00
Brian C. Lane
6d47689a33 Cleanup pylorax pylint warnings 2014-05-09 08:10:41 -07:00
Brian C. Lane
b3e80b7564 livemedia-creator: Copy fsimage if hardlink fails
If the user supplies a fsimage to use for the iso it may not be on the
same filesystem as the working directory. Try to hardlink first, but if
that fails copy the image.
2014-04-28 10:03:11 -07:00
Brian C. Lane
9e15705bb9 Clean up download and install output
Commit d2ae92b4b3 patched up the download counter and progress
display. Yum no longer provides the needed information so now we get the
total number of packages from the start of the transaction.

This also turns off colors when stdout is not a tty, and only prints the
install progress once so that piping to a logfile isn't flooded with
useless characters.
2014-04-25 06:55:56 -07:00
Brian C. Lane
d04a99e8f4 livemedia-creator: Add support for making tarfiles
This adds the --make-tar option which will produce a xz compressed tar
of the root filesystem. This works with either virt-install or no-virt
modes. Use --image-name to set the output filename.

--compression is used to set the compression type to use, which defaults
to xz. Supported types are xz, lzma, gzip and bzip2.

--compress-arg is used to pass arguments to the compression utility.
2014-04-07 10:58:32 -07:00
Brian C. Lane
94e92ee9ea livemedia-creator: Allow disk sizes to be < 1GiB
Anaconda seems to insist on 3G minimum, but that is a different issue.
2014-04-07 10:58:32 -07:00
Brian C. Lane
30591349ca livemedia-creator: Check fsimage kickstart for single partition 2014-04-07 10:58:32 -07:00
Brian C. Lane
39f9e14838 livemedia-creator: Output all the errors at once
Instead of handling one error at a time, gather them all up and print
them all in one block and then exit.
2014-04-04 15:01:09 -07:00
Brian C. Lane
19d8304070 livemedia-creator: Make --make-fsimage work with virt-install
--make-fsimage was only working with --no-virt, this re-structures
things so that virt-install partitioned disk images can be converted to
a fsimage. --make-ami was actually already doing this, so change it to
use --make-fsimage and set the default image name to "ami-root.img" with
a label of "AMI".

This also adds the ability to set the fs label on iso fsimage and
fsimages created with --make-fsimage and --make-ami by passing
--fs-label, but note that bootable iso's expect the Anaconda label.
2014-04-04 15:01:02 -07:00
Brian C. Lane
99f2ab9137 move image-minimizer to lorax (#1082642)
This is used as a kickstart %post interpreter to streamline
modifications to images.

Also adds an example kickstart.

This obsoletes the old appliance-tools-minimizer and includes a Provide
so that the transition will be seamless.
2014-03-31 17:02:55 -07:00
Mark Hamzy
cc2f98bfc5 support ppc64le in lorax
Add support for the ppc64le architecture in lorax.

Signed-off-by: Brian C. Lane <bcl@redhat.com>
2014-03-27 10:06:41 -07:00
Brian C. Lane
b73aeb92a9 livemedia-creator: Add option to create qcow2 disk images
This adds the --qcow2 option to create qcow2 disk images in virt and
no-virt modes. You can pass extra options to qemu-img with --qcow2-arg
2014-03-13 14:10:44 -07:00
Brian C. Lane
07d5cb176d Add support for creating qcow2 images 2014-03-13 09:10:24 -07:00
Brian C. Lane
c95cb07bc3 utf-8 encode yum actions before displaying them (#1072362)
Otherwise running lorax in other locales will crash.

Resolves: rhbz#1072362
2014-03-05 07:40:14 -08:00
Brian C. Lane
0a547d8f2a Use string for releasever not int (#1067746)
environmental variables need to be strings and there is no compelling
reason to force this to an int.

Related: rhbz#1067746
2014-02-28 16:44:56 -08:00
Brian C. Lane
d9eda042f8 livemedia-creator: Set the product and release version env variables (#1067746)
When doing an image install there is no .buildstamp file to pull the
information from so use the cmdline variables (or their defaults) and
pass them to anaconda in the environment.

Resolves: rhbz#1067746
2014-02-21 09:57:47 -08:00
Brian C. Lane
d89f01af21 Check initrd size on ppc64 and warn (#1060691)
ppc64 initrd cannot be larger than 32MiB, so log a warning if it is too
large.

Related: rhbz#1060691
2014-02-13 13:20:16 -08:00
Brian C. Lane
03217e4eee Remove drivers and modules on ppc64 (#1060691)
Remove more drivers and remove plymouth and drm dracut modules. Only on
PPC64 initrd, all other arches have the full set of drivers and modules.

Resolves: rhbz#1060691
2014-02-13 13:20:16 -08:00
Brian C. Lane
04ba927777 livemedia-creator: virt-image needs ram in MiB not KiB (#1061773)
Resolves: rhbz#1061773
2014-02-07 14:19:56 -08:00
Brian C. Lane
9c1372564c Remove floppy and scsi_debug from initrd (#1060691)
ppc64 can't PXE boot a initrd that is > 32M. This removes 2 drivers from
initrd creation to reduce the size.

Resolves: rhbz#1060691
2014-02-05 12:46:41 -08:00
Brian C. Lane
1f8aa84c5f flush data to disk after mkfsimage (#1052175)
Make sure the data is written before we do anything else with the disk
image. This shouldn't be needed, umount should take care of it, but it
also can't hurt.

Resolves: rhbz#1052175
2014-01-17 09:56:56 -08:00
Brian C. Lane
0ae9e79a72 livemedia-creator: Use findkernels instead of KernelInfo
It only uses it for the arch, but findkernels properly excludes rescue
images and handles the new + seperator for kernel flavor.
2014-01-14 16:06:41 -08:00
Brian C. Lane
dc017445ff Print error when kickstart is missing (#1052872) 2014-01-14 11:29:30 -08:00
d.marlin
f0d1c76ea4 Add initial 64-bit ARM (aarch64) support (#1034432)
Signed-off-by: Brian C. Lane <bcl@redhat.com>

Resolves: rhbz#1034432
2013-12-17 10:07:32 -08:00
Brian C. Lane
4b0acdc567 livemedia-creator: Cleanup temp yum files (#1025837) 2013-11-19 10:24:22 -08:00
Brian C. Lane
9e979f760b lorax: pass size from Lorax.run to create_runtime (#903385)
This allows Lorax class users to specify the image size when calling
run()
2013-11-19 10:23:12 -08:00
Vratislav Podzimek
1d7eb09a53 Run compressions in multiple threads
This speeds up compression a lot on multicore systems.
2013-11-14 08:46:01 +01:00
Brian C. Lane
fca6a13875 livemedia-creator: Add minimal disk example kickstart (#1019728)
Also adds a check for a bad url repo, and fix ram calculation for
appliance mode. Updates the README.livemedia-creator documentation.

Resolves: rhbz#1019728
2013-11-01 10:27:24 -07:00
Dennis Gilmore
8d84e9d25a ARM: Don't install or deal with in templates, no longer existing kernels
remove no longer used kernel variants from templates
dont try to install no longer existing kernel-tegra variant
2013-10-16 18:06:20 -05:00
Dennis Gilmore
7d3fafedf3 kernel changed seperator for flavours from . to + update regular expression 2013-10-16 18:05:56 -05:00
Brian C. Lane
5e589be004 Add macboot option (#1012529)
Add a macboot option to lorax and both macboot and nomacboot to lmc.

Related: rhbz#1012529
2013-09-27 08:58:18 -07:00
Brian C. Lane
0319abbb58 Make sure dracut uses no-hostonly mode 2013-08-14 15:22:25 -07:00
Harald Hoyer
2402b6a85f dracut-nohostonly and dracut-norescue got renamed for dracut >= 030 2013-08-01 09:04:29 -07:00
Brian C. Lane
31dd8048ab livemedia-creator: pass inst.cmdline for headless installs (#985487)
Also add console=ttyS0 so you can run virsh console XX to follow the
install/look for errors.
2013-07-25 15:34:23 -07:00
Brian C. Lane
14fa40556c Stop using /usr/bin/env (#987028) 2013-07-24 13:41:03 -07:00
Brian C. Lane
f88d42a03f livemedia-creator: clarify required package errors (#985340) 2013-07-17 10:34:43 -07:00
Brian C. Lane
abf27add37 Bump image size up to 2G (#967556) 2013-05-28 16:29:48 -07:00
Brian C. Lane
23b2ddeb5c livemedia-creator: Fix logic for anaconda test (#958036) 2013-05-24 12:20:56 -07:00
Dennis Gilmore
d751ac82db remove no longer supported arm kernel variants add the new lpae one 2013-04-17 16:21:23 -07:00
Brian C. Lane
67863bbf03 livemedia-creator: Ignore rescue kernels 2013-04-16 16:31:33 -07:00
Brian C. Lane
12bad32223 Fix import of version
If the import fails it wipes out the global pylorax import.
2013-04-03 16:28:29 -07:00
Mark Hamzy
52070f045c fix version query and add one to the log file
Fix "lorax -V" and add a "version is ???" to the log file so we can easily know
what version of lorax is used to build an iso.
Changed to try/import for versioning because the version file is autogenerated.
2013-04-03 15:43:09 -07:00
Will Woods
26c77b4fba Print & log messages on scriptlet/transaction errors
We should probably let the user know if something goes wrong with the
transaction or if a scriptlet fails. So: log the messages so we can find
(and, one hopes, fix) them later.
2013-03-19 15:03:49 -07:00
Will Woods
3a1e176cbb sysutils: add -x to cp in linktree
Since you can't make cross-device links, you'd think that cp -l (make
links) would imply -x (don't cross devices).

You'd be wrong.
2013-03-19 00:47:58 -04:00
Will Woods
ad3d1e6278 treebuilder: fix "Can't stat exclude path "/selinux"..." message
/selinux has been gone for *years*. Drop the exclude.
2013-03-19 00:47:58 -04:00
Brian C. Lane
93c4a8b830 Raise an error when there are no initrds 2013-03-12 15:39:25 -07:00
Brian C. Lane
fd8684f1af Add yum logging to yum.log 2013-03-12 14:09:21 -07:00
Dennis Gilmore
a4cf3c3c7c remove sparc support
Signed-off-by: Dennis Gilmore <dennis@ausil.us>
2013-03-04 14:18:45 +01:00
Brian C. Lane
bcdd43997b Remove some env variables (#907692)
Some package scripts may call utilities using dbus. Since this is just a
chroot that will fail. This unsets DESKTOP and DBUS_SESSION_BUS_ADDRESS
to keep them from crashing.
2013-02-15 05:47:11 -08:00
Brian C. Lane
8e84ef10c1 Add filesystem image install support
This adds support for installing to a filesystem image instead of a
partitioned disk image. It requires Anaconda's --dirinstall support.
Also re-organized the code to break it up into smaller methods.

This speeds up iso creation in no-virt mode by removing the need to copy
the filesystem from the partitioned disk image to the filesystem image
that is used to make the squashfs image.
2013-02-12 10:35:52 -08:00
Brian C. Lane
d2ae92b4b3 yum changed the callback info
It used to give us (x/y) packagename, but now it only sends package
name. This was changed in yum commit 7e8c76173. For now default to
showing the zeros along with the package name so that it doesn't look
like an error.
2013-01-31 10:06:14 -08:00
Brian C. Lane
5afa0c631d livemedia-creator: don't pass console=ttyS0
passing console=ttyS0 makes the virt hang until there is input. Remove
it and now it will run unattended in text mode.
2013-01-09 16:31:49 -08:00
Martin Gracik
62920272c7 Fix rexists 2012-12-19 12:39:39 +01:00
Martin Gracik
a0791d3074 Only run installupgradeinitrd if upgrade 2012-12-18 14:31:45 +01:00
Martin Gracik
263618e12a Add --noupgrade option 2012-12-18 12:04:03 +01:00
Brian C. Lane
665ee8be7e imgutils: use -s for kpartx, wait for device creation
kpartx can return before the devices are created. Use -s to wait.
Also remove -p p and let kpartx handle adding pX if needed, we use
whatever it outputs so there is no need to force a name.
2012-12-14 13:56:36 -08:00
Brian C. Lane
07c99ae8d0 livemedia-creator: Use SELinux Permissive mode 2012-12-13 15:58:18 -08:00
Brian C. Lane
591891c303 livemedia-creator: use cmdline mode 2012-12-13 15:52:08 -08:00
Dennis Gilmore
78e3d0f115 add installupgradeinitrd function and use it to install the upgrade initrds 2012-11-30 13:28:38 -06:00
Will Woods
ff42fbd57e Add the 'fedup' plymouth theme if available 2012-11-30 13:28:38 -06:00
Will Woods
b5eb38ae97 build fedup upgrade.img
Use rebuild_initrds() with prefix='upgrade' to build upgrade.img with
the fedup "system-upgrade" module(s) inside.
2012-11-30 13:28:38 -06:00
Will Woods
1c91eab12b treebuilder: improve findkernels() initrd search
This makes findkernels() look for any image named something like:

  $PREFIX-$KERNELVER.img

and adds a corresponding entry to its returned data like:

  kernel.$PREFIX.path = [path]

As a special backwards-compatibility case we use 'initrd' for the
attribute name if $PREFIX is 'initramfs'.

This gives us any extra initramfs images that may have been built using
the 'prefix' argument to rebuild_initrds().
2012-11-30 13:28:38 -06:00
Will Woods
5b48574d5e treebuilder: add 'prefix' to rebuild_initrds()
If 'prefix' is passed to rebuild_initrds(), it will build a *new*
initramfs with a name like $PREFIX-$KERNELVER.img, rather than
overwriting the existing initramfs.
2012-11-30 13:28:38 -06:00
Martin Gracik
91afe5883f Set permissions on the initrd (#863018)
Dracut now makes the initrd with 600 permissions
for security reasons. These reasons do not apply
to install images, and we want the other tools
that use lorax to be able to read the initrd file.
2012-10-11 10:24:11 +02:00
Brian C. Lane
2b8075af3a use /var/tmp instead of /tmp
Also add a --tmp option so users can specify a top level tmp dir.
2012-10-02 11:35:16 -07:00
Brian C. Lane
a83c8c1df0 remove rv from unmount error log
You obviously cannot reference it when it hasn't been set.
2012-09-21 09:19:09 -07:00
Martin Gracik
fb69670ea8 There's no lang-table in anaconda anymore (#857925) 2012-09-17 11:41:39 -07:00
Brian C. Lane
43bd549480 add convienience functions for running commands
Adds runcmd() and runcmd_output() which set raise_err=True
2012-09-17 11:26:53 -07:00