/jaks

Just Another Kickstart Script

MIT LicenseMIT

jaks - Just Another Kickstart Script

Facilitates automation of any Anaconda based distribution

         ____.  _____   ____  __.  _________
        |    | /  _  \ |    |/ _| /   _____/
        |    |/  /_\  \|      <   \_____  \
    /\__|    /    |    \    |  \  /        \
    \________\____|__  /____|__ \/_______  /
                     \/        \/        \/
          Just Another Kickstart Script

Options

The options listed below are custom arguments which supercede those provided from the installer.

General

The options provided here allow for configuration of the grub boot options.

Option Type Default Description
INSTALL boolean false If specified will skip the safety check regarding installation
DEBUG boolean false Used to display reports for each category of %pre & %post script execution
LANG string en_US.UTF-8 Correlates to the language options found @ /usr/share/system-config-language/locale-list
LOCATION string America/Denver Must be a valid timezone specified by the IANA timezone database
ROOTPW string NULL If not specified will prompt user for input

Networking

While the anaconda API does contain networking, the jaks networking options can be used to supplement them which allows for a temporary build environment.

Option Type Default Description
IP string NULL If specified, this option will set the default IP address of the system and will superceede the default ip option when both are provided. This allows for a possible temporary build environment network configuration.
NETMASK string NULL If specified, this option will set the default subnet of the system and will superceede the default netmask option when both are provided.
GATEWAY string NULL If specified, this option will set the default route of the system and will superceede the default gateway option when both are provided.

Disk(s) configuration

The JAKS LVM disk configuration is based on a configurable template variable. It will detect all non-usb & non-network storage devices and assemble them into the following partition schema.

Path Type Size Filesystem
/boot Physical 500MB ext4
/boot/efi Physical 500MB vfat
swap LVM Physical Memory x 2 swap
/ LVM See Disk sizing ext4
/export/home LVM See Disk sizing ext4
/var LVM See Disk sizing ext4
/tmp LVM See Disk sizing ext4
/opt LVM See Disk sizing ext4

Disk sizing

To accomodate for disks of varying size the following conditionals are used to determine how to assemble the disk(s).

All sizes are represented in bytes

d^n = Number of Physical disks (d=disks, n=number of disks)
m = Physical System Memory
b = 500MB
f = 100GB
pp = 100GB + 40GB + 10GB + 2GB
vp = 40GB + 20GB + 10GB + 20GB
op = 40% + 20% + 10% + 2% (Less than 100GB in size. Allocates by percentages of disk size)

And the decision tree that auto-assembles the disks is shown here. The final result will depend on the size and the number of disk(s) found on the host.

(d^n = 1) ? d0 – (b + m x 1) –
  (d0 > f) && (d0 < pp) ? d0 – (pp + d0 (75%))
  (d0 = f) && (d0 > pp) ? d0 – (vp + d0(75%))
  (d0 < f) ? d0 – (op + d0(75%))
(d^n > 1) ? d0 – (b + m x 1) – (pp + d^n - d0(75%))

Contributing

Contributions are welcome & appreciated. Refer to the contributing document to help facilitate pull requests.

License

This software is licensed under the MIT License.

Copyright Jason Gerfen, 2015 - 2017.