m (Fix s/26/27/) |
(Update with better instructions) |
||
Line 3: | Line 3: | ||
=='''livemedia-creator'''== | =='''livemedia-creator'''== | ||
+ | === Documentation === | ||
+ | * Livemedia Creator: http://weldr.io/lorax/livemedia-creator.html | ||
+ | * Kickstart: https://github.com/rhinstaller/pykickstart/blob/master/docs/kickstart-docs.rst | ||
− | === | + | === Setup Environment === |
− | |||
− | + | ==== Cloud Base/Vagrant ==== | |
− | + | If using the cloud base or vagrant images, install the needed kernel modules: | |
− | + | # dnf install kernel-modules-$(uname -r) | |
− | |||
− | |||
− | === | + | ==== Install Mock ==== |
You should always do all work in mock, this will allow you to ensure that the compose environment matches the target environment. | You should always do all work in mock, this will allow you to ensure that the compose environment matches the target environment. | ||
− | + | # dnf install mock | |
+ | # usermod -a -G mock <user> | ||
+ | === Setup Build Environment === | ||
+ | To setup a Fedora 27 x86_64 environment use mock to setup and install tools. | ||
+ | |||
+ | ==== Init Environment ==== | ||
$ mock -r fedora-27-x86_64 --init | $ mock -r fedora-27-x86_64 --init | ||
− | $ mock -r fedora-27-x86_64 --install lorax-lmc-novirt | + | $ mock -r fedora-27-x86_64 --install lorax-lmc-novirt vim-minimal pykickstart spin-kickstarts |
If you wanted a different arch or release you would use the correct mock configuration file. | If you wanted a different arch or release you would use the correct mock configuration file. | ||
+ | ==== Enable Networking in Mock ==== | ||
By default there is no network access in mock. Set ''config_opts['rpmbuild_networking']'' to ''True'' if you are using systemd-nspawn. | By default there is no network access in mock. Set ''config_opts['rpmbuild_networking']'' to ''True'' if you are using systemd-nspawn. | ||
$ sudo vi /etc/mock/site-defaults.cfg | $ sudo vi /etc/mock/site-defaults.cfg | ||
− | === | + | ==== SELinux ==== |
− | + | If your system is using SELinux, it needs to be set to Permissive mode while running lorax. | |
$ sudo setenforce 0 | $ sudo setenforce 0 | ||
+ | |||
+ | === Running a Compose === | ||
+ | Go into your prepared environment to do a compose. | ||
+ | |||
$ mock -r fedora-27-x86_64 --shell --old-chroot | $ mock -r fedora-27-x86_64 --shell --old-chroot | ||
− | <mock-chroot> sh-4.3# | + | <mock-chroot> sh-4.3# |
− | === | + | ==== Flatten a Kickstart ==== |
− | + | The official Fedora spins are composed from templates. Flattening fully resolves the templates to a valid kickstart which can be fed to livemedia-creator. | |
− | <mock-chroot> sh-4.3# cd | + | |
+ | <mock-chroot> sh-4.3# cd /usr/share/spin-kickstarts | ||
<mock-chroot> sh-4.3# ksflatten --config fedora-live-soas.ks -o flat-fedora-live-soas.ks --version F27 | <mock-chroot> sh-4.3# ksflatten --config fedora-live-soas.ks -o flat-fedora-live-soas.ks --version F27 | ||
− | ===livemedia-creator | + | ==== Create the Live Image ==== |
− | + | Run livemedia-creator with the flattened kickstart and relevant options. This creates a Sugar on a Stick live iso that also has EFI/Mac booting support. | |
+ | |||
<mock-chroot> sh-4.3# livemedia-creator --ks flat-fedora-live-soas.ks --no-virt --resultdir /var/lmc --project Fedora-soas-Live --make-iso --volid Fedora-SoaS-27 --iso-only --iso-name Fedora-SoaS-27-x86_64.iso --releasever 27 --title Fedora-SoaS-live --macboot | <mock-chroot> sh-4.3# livemedia-creator --ks flat-fedora-live-soas.ks --no-virt --resultdir /var/lmc --project Fedora-soas-Live --make-iso --volid Fedora-SoaS-27 --iso-only --iso-name Fedora-SoaS-27-x86_64.iso --releasever 27 --title Fedora-SoaS-live --macboot | ||
− | === | + | ===== Example Output ===== |
− | + | <mock-chroot> sh-4.4# livemedia-creator --ks flat-fedora-live-soas.ks --no-virt --resultdir /var/lmc --project Fedora-soas-Live --make-iso --volid Fedora-SoaS-27 --iso-only --iso-name Fedora-SoaS-27-x86_64.iso --releasever 27 --title Fedora-SoaS-live --macboot | |
− | : | + | 2018-04-13 01:36:05,320: livemedia-creator v27.11-1 |
− | : | + | 2018-04-13 01:36:05,399: disk_img = /var/lmc/lmc-disk-1t7520xh.img |
− | + | 2018-04-13 01:36:05,400: Using disk size of 5122MiB | |
− | : | + | 2018-04-13 01:36:05,983: Running anaconda. |
− | :'''-''' | + | 2018-04-13 01:36:07,427: Starting installer, one moment... |
− | + | 2018-04-13 01:36:07,428: terminal size detection failed, using default width | |
+ | 2018-04-13 01:36:07,428: anaconda 27.20.4-1 for Fedora-soas-Live 27 (pre-release) started. | ||
+ | 2018-04-13 01:36:07,428: 01:36:07 Not asking for VNC because of an automated install | ||
+ | 2018-04-13 01:36:07,428: 01:36:07 Not asking for VNC because of an automated install | ||
+ | 2018-04-13 01:36:07,428: 01:36:07 Not asking for VNC because we don't have Xvnc | ||
+ | 2018-04-13 01:36:07,428: 01:36:07 Not asking for VNC because we don't have Xvnc | ||
+ | 2018-04-13 01:36:07,597: Processing logs from ('127.0.0.1', 36114) | ||
+ | 2018-04-13 01:37:03,791: Starting automated install........................................................ | ||
+ | 2018-04-13 01:37:03,792: ================================================================================ | ||
+ | 2018-04-13 01:37:03,792: ================================================================================ | ||
+ | 2018-04-13 01:37:03,793: Installation | ||
+ | 2018-04-13 01:37:03,793: | ||
+ | 2018-04-13 01:37:03,793: 1) [x] Language settings 2) [x] Time settings | ||
+ | 2018-04-13 01:37:03,793: (English (United States)) (US/Eastern timezone) | ||
+ | 2018-04-13 01:37:03,793: 3) [x] Installation source 4) [x] Software selection | ||
+ | 2018-04-13 01:37:03,793: (...) (Custom software selected) | ||
+ | 2018-04-13 01:37:03,793: 5) [x] Network configuration 6) [ ] User creation | ||
+ | 2018-04-13 01:37:03,793: (No network devices available) (No user will be created) | ||
+ | 2018-04-13 01:37:03,793: | ||
+ | 2018-04-13 01:37:03,793: ================================================================================ | ||
+ | 2018-04-13 01:37:03,793: ================================================================================ | ||
+ | 2018-04-13 01:37:03,793: Progress | ||
+ | 2018-04-13 01:37:03,793: | ||
+ | 2018-04-13 01:37:03,793: Setting up the installation environment | ||
+ | 2018-04-13 01:37:04,534: Configuring storage | ||
+ | 2018-04-13 01:37:04,535: Running pre-installation scripts | ||
+ | 2018-04-13 01:37:04,627: Running pre-installation tasks | ||
+ | 2018-04-13 01:38:30,542: Installing. | ||
+ | 2018-04-13 01:38:30,542: Starting package installation process | ||
+ | 2018-04-13 01:38:30,542: Downloading packages | ||
+ | 2018-04-13 01:41:39,991: Configuring storage | ||
+ | 2018-04-13 01:41:39,991: Performing post-installation setup tasks | ||
+ | 2018-04-13 01:41:40,670: Configuring installed system | ||
+ | 2018-04-13 01:41:40,723: Creating users | ||
+ | 2018-04-13 01:41:40,724: Configuring addons | ||
+ | 2018-04-13 01:41:58,165: Generating initramfs | ||
+ | 2018-04-13 01:42:11,649: Running post-installation scripts | ||
+ | 2018-04-13 01:42:11,649: Storing configuration files and kickstarts | ||
+ | 2018-04-13 01:42:49,377: Shutting down log processing | ||
+ | 2018-04-13 01:42:50,189: Disk Image install successful | ||
+ | 2018-04-13 01:42:50,190: working dir is /var/tmp/lmc-work-8c_bx5tx | ||
+ | 2018-04-13 01:46:57,049: Rebuilding initrds | ||
+ | 2018-04-13 01:46:57,049: dracut args = ['--xz', '--add', 'livenet dmsquash-live convertfs pollcdrom qemu qemu-net', '--omit', 'plymouth', '--no-hostonly', '--debug', '--no-early-microcode'] | ||
+ | 2018-04-13 01:46:57,050: rebuilding boot/initramfs-4.15.15-300.fc27.x86_64.img | ||
+ | 2018-04-13 01:47:45,442: Building boot.iso | ||
+ | 2018-04-13 01:47:45,528: running x86.tmpl | ||
+ | 2018-04-13 01:48:13,968: Disk image erased | ||
+ | 2018-04-13 01:48:14,709: SUMMARY | ||
+ | 2018-04-13 01:48:14,709: ------- | ||
+ | 2018-04-13 01:48:14,709: Logs are in /usr/share/spin-kickstarts | ||
+ | 2018-04-13 01:48:14,709: Results are in /var/lmc | ||
− | ==== | + | ==== Compose Results ==== |
− | + | The resulting images will be located in the mock chroot. Copy them somewhere outside of the mock-chroot. | |
− | + | $ cp /var/lib/mock/fedora-27-x86_64/root/var/lmc/*.iso $HOME | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Note: The location will be different based on your mock configuration. | |
− | |||
− | |||
− | |||
− | |||
− | : | ||
− | |||
− | |||
− | |||
− | === | + | === Cleanup === |
− | + | We can now safely clean up the build environment and set SELinux back to enforcing. | |
− | |||
− | |||
− | + | $ mock -r fedora-27-x86_64 --clean | |
− | + | $ sudo setenforce 1 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Revision as of 02:15, 13 April 2018
Contents
livemedia-creator
Documentation
- Livemedia Creator: http://weldr.io/lorax/livemedia-creator.html
- Kickstart: https://github.com/rhinstaller/pykickstart/blob/master/docs/kickstart-docs.rst
Setup Environment
Cloud Base/Vagrant
If using the cloud base or vagrant images, install the needed kernel modules:
# dnf install kernel-modules-$(uname -r)
Install Mock
You should always do all work in mock, this will allow you to ensure that the compose environment matches the target environment.
# dnf install mock # usermod -a -G mock <user>
Setup Build Environment
To setup a Fedora 27 x86_64 environment use mock to setup and install tools.
Init Environment
$ mock -r fedora-27-x86_64 --init $ mock -r fedora-27-x86_64 --install lorax-lmc-novirt vim-minimal pykickstart spin-kickstarts
If you wanted a different arch or release you would use the correct mock configuration file.
Enable Networking in Mock
By default there is no network access in mock. Set config_opts['rpmbuild_networking'] to True if you are using systemd-nspawn.
$ sudo vi /etc/mock/site-defaults.cfg
SELinux
If your system is using SELinux, it needs to be set to Permissive mode while running lorax.
$ sudo setenforce 0
Running a Compose
Go into your prepared environment to do a compose.
$ mock -r fedora-27-x86_64 --shell --old-chroot <mock-chroot> sh-4.3#
Flatten a Kickstart
The official Fedora spins are composed from templates. Flattening fully resolves the templates to a valid kickstart which can be fed to livemedia-creator.
<mock-chroot> sh-4.3# cd /usr/share/spin-kickstarts <mock-chroot> sh-4.3# ksflatten --config fedora-live-soas.ks -o flat-fedora-live-soas.ks --version F27
Create the Live Image
Run livemedia-creator with the flattened kickstart and relevant options. This creates a Sugar on a Stick live iso that also has EFI/Mac booting support.
<mock-chroot> sh-4.3# livemedia-creator --ks flat-fedora-live-soas.ks --no-virt --resultdir /var/lmc --project Fedora-soas-Live --make-iso --volid Fedora-SoaS-27 --iso-only --iso-name Fedora-SoaS-27-x86_64.iso --releasever 27 --title Fedora-SoaS-live --macboot
Example Output
<mock-chroot> sh-4.4# livemedia-creator --ks flat-fedora-live-soas.ks --no-virt --resultdir /var/lmc --project Fedora-soas-Live --make-iso --volid Fedora-SoaS-27 --iso-only --iso-name Fedora-SoaS-27-x86_64.iso --releasever 27 --title Fedora-SoaS-live --macboot 2018-04-13 01:36:05,320: livemedia-creator v27.11-1 2018-04-13 01:36:05,399: disk_img = /var/lmc/lmc-disk-1t7520xh.img 2018-04-13 01:36:05,400: Using disk size of 5122MiB 2018-04-13 01:36:05,983: Running anaconda. 2018-04-13 01:36:07,427: Starting installer, one moment... 2018-04-13 01:36:07,428: terminal size detection failed, using default width 2018-04-13 01:36:07,428: anaconda 27.20.4-1 for Fedora-soas-Live 27 (pre-release) started. 2018-04-13 01:36:07,428: 01:36:07 Not asking for VNC because of an automated install 2018-04-13 01:36:07,428: 01:36:07 Not asking for VNC because of an automated install 2018-04-13 01:36:07,428: 01:36:07 Not asking for VNC because we don't have Xvnc 2018-04-13 01:36:07,428: 01:36:07 Not asking for VNC because we don't have Xvnc 2018-04-13 01:36:07,597: Processing logs from ('127.0.0.1', 36114) 2018-04-13 01:37:03,791: Starting automated install........................................................ 2018-04-13 01:37:03,792: ================================================================================ 2018-04-13 01:37:03,792: ================================================================================ 2018-04-13 01:37:03,793: Installation 2018-04-13 01:37:03,793: 2018-04-13 01:37:03,793: 1) [x] Language settings 2) [x] Time settings 2018-04-13 01:37:03,793: (English (United States)) (US/Eastern timezone) 2018-04-13 01:37:03,793: 3) [x] Installation source 4) [x] Software selection 2018-04-13 01:37:03,793: (...) (Custom software selected) 2018-04-13 01:37:03,793: 5) [x] Network configuration 6) [ ] User creation 2018-04-13 01:37:03,793: (No network devices available) (No user will be created) 2018-04-13 01:37:03,793: 2018-04-13 01:37:03,793: ================================================================================ 2018-04-13 01:37:03,793: ================================================================================ 2018-04-13 01:37:03,793: Progress 2018-04-13 01:37:03,793: 2018-04-13 01:37:03,793: Setting up the installation environment 2018-04-13 01:37:04,534: Configuring storage 2018-04-13 01:37:04,535: Running pre-installation scripts 2018-04-13 01:37:04,627: Running pre-installation tasks 2018-04-13 01:38:30,542: Installing. 2018-04-13 01:38:30,542: Starting package installation process 2018-04-13 01:38:30,542: Downloading packages 2018-04-13 01:41:39,991: Configuring storage 2018-04-13 01:41:39,991: Performing post-installation setup tasks 2018-04-13 01:41:40,670: Configuring installed system 2018-04-13 01:41:40,723: Creating users 2018-04-13 01:41:40,724: Configuring addons 2018-04-13 01:41:58,165: Generating initramfs 2018-04-13 01:42:11,649: Running post-installation scripts 2018-04-13 01:42:11,649: Storing configuration files and kickstarts 2018-04-13 01:42:49,377: Shutting down log processing 2018-04-13 01:42:50,189: Disk Image install successful 2018-04-13 01:42:50,190: working dir is /var/tmp/lmc-work-8c_bx5tx 2018-04-13 01:46:57,049: Rebuilding initrds 2018-04-13 01:46:57,049: dracut args = ['--xz', '--add', 'livenet dmsquash-live convertfs pollcdrom qemu qemu-net', '--omit', 'plymouth', '--no-hostonly', '--debug', '--no-early-microcode'] 2018-04-13 01:46:57,050: rebuilding boot/initramfs-4.15.15-300.fc27.x86_64.img 2018-04-13 01:47:45,442: Building boot.iso 2018-04-13 01:47:45,528: running x86.tmpl 2018-04-13 01:48:13,968: Disk image erased 2018-04-13 01:48:14,709: SUMMARY 2018-04-13 01:48:14,709: ------- 2018-04-13 01:48:14,709: Logs are in /usr/share/spin-kickstarts 2018-04-13 01:48:14,709: Results are in /var/lmc
Compose Results
The resulting images will be located in the mock chroot. Copy them somewhere outside of the mock-chroot.
$ cp /var/lib/mock/fedora-27-x86_64/root/var/lmc/*.iso $HOME
Note: The location will be different based on your mock configuration.
Cleanup
We can now safely clean up the build environment and set SELinux back to enforcing.
$ mock -r fedora-27-x86_64 --clean $ sudo setenforce 1