Kickstart Infrastructure SOP

Kickstart scripts provide our install infrastructure. We have a plethora of different kickstarts to best match the system you are trying to install.

Contact Information

Owner

Fedora Infrastructure Team

Contact

#admin, sysadmin-main

Location

Everywhere we have machines.

Servers

batcave01 (stores kickstarts and install media)

Purpose

Provides our install infrastructure

Introduction

Our kickstart infrastructure lives on batcave01. All install media and kickstart scripts are located on batcave01. Because the RHEL binaries are not public we have these bits blocked. You can add needed IPs to (from batcave01):

ansible/roles/batcave/files/allows

kickstarts are setup in the ansible kickstarts role. This role is deployed on batcave01, so if you make any changes be sure to run the ansible playbook for batcave.

Passwords for vnc and initial root password and initial luks passphrase are all in ansible-private repo.

Guests are installed via the 'kvm*' kickstarts (or openqa* for openqa). Hardware machines use the hardware-$OS-$version-$numberofdisks kickstarts.

Physical Machine (kvm virthost)

PXE Booting: If PXE booting just follow the prompt after doing the pxe boot (most hosts will pxeboot via console hitting f12). All hosts in rdu3 will do this.

Prep

This only works on an already booted box, many boxes at our colocations may have to be rebuilt by the people in those locations first. Also make sure the IP you are about to boot to install from is allowed to our IP restricted infrastructure.fedoraproject.org as noted above (in Introduction).

Download the vmlinuz and initrd images.

For a rhel10 install:

wget https://infrastructure.fedoraproject.org/repo/rhel/RHEL10-x86_64/images/pxeboot/vmlinuz -O /boot/vmlinuz-install
wget https://infrastructure.fedoraproject.org/repo/rhel/RHEL10-x86_64/images/pxeboot/initrd.img -O /boot/initrd-install.img
grubby --add-kernel=/boot/vmlinuz-install \
       --args="ks=https://infrastructure.fedoraproject.org/repo/rhel/ks/hardware-rhel-10-nodisk \
       repo=https://infrastructure.fedoraproject.org/repo/rhel/RHEL10-x86_64/ \
       net.ifnames=0 biosdevname=0 bridge=br0:eth0 ksdevice=br0 \
       ip={{ br0_ip }}::{{ gw }}:{{ nm }}:{{ hostname }}:br0:none" \
       --title="install el10" --initrd=/boot/initrd-install.img

Fill in the br0 ip, gateway, etc

The default here is to use the hardware-rhel-10-nohd config which requires you to connect via VNC to the box and configure its drives. If this is a new machine or you are fine with blowing everything away, you can instead use https://infrastructure.fedoraproject.org/rhel/ks/hardware-rhel-10-NNdisk as your kickstart, where NN is the number of disks in the system.

Double and triple check your configuration settings (cat /boot/grub2/grub.cfg), especially your IP information. In some places, machines may not have the same netmask or gateway. Once everything you are ready to run the commands to get it set up to boot next boot.

RHEL-7+:

grub2-reboot 0
shutdown -r now

Installation

Once the box logs you out, start pinging the IP address. It will disappear and come back. Once you can ping it again, try to open up a VNC session. It can take a couple of minutes after the box is back up for it to actually allow vnc sessions. The VNC password is in ansible-private on batcave01:

vncviewer $IP:1

If using the standard kickstart script, one can watch as the install completes itself, there should be no need to do anything. If using the hardware-rhel-10-nohd script, one will need to configure the drives. The password is in ansible-private.

Post Install

Run ansible on the box asap to set root passwords and other security features. Don’t leave a newly installed box sitting around.