THIS APPENDIX HAS BEEN DEPRECATED. Updated instructions are in the Admin Guide.

Appendix: Using Red Hat KickstartΒΆ

Scyld ClusterWare supports using Red Hat kickstart to install full distributions on a diskful compute node. We provide examples for CentOS and Ubuntu.

Steps:

1. Enable clusterware compute node Internet access, which allows for network installation. See Configure IP Forwarding for details.

  1. Download the proper netboot installer kernel and initramfs.

The Ubuntu 18.04 netboot kernel and initramfs links:

http://archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz

http://archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux

The CentOS 7 netboot kernel and initramfs links:

http://mirror.centos.org/centos-7/7/os/x86_64/isolinux/initrd.img

http://mirror.centos.org/centos-7/7/os/x86_64/isolinux/vmlinuz

  1. Create a kickstart file for the intended installation.

An Ubuntu 18.04 example:

lang en_US
langsupport en_US
keyboard us
mouse
timezone America/New_York
rootpw --disabled
user ubuntu --fullname "Ubuntu User" --password root4me2
poweroff
text
install
url --url http://us.archive.ubuntu.com/ubuntu
bootloader --location=mbr
zerombr yes
clearpart --all --initlabel
part / --fstype ext4 --size 1 --grow --asprimary
part swap --size 1024
part /boot --fstype ext4 --size 256 --asprimary
auth  --useshadow  --enablemd5
network --bootproto=dhcp
firewall --enabled
skipx
%packages
openssh-server
apt-transport-https
gnupg2

A CentOS 7 example:

install
text
url --url http://mirror.centos.org/centos-7/7/os/x86_64
lang en_US.UTF-8
keyboard us
network --bootproto=dhcp --device=eth0
rootpw --plaintext root4me
firewall --enabled
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone America/New_York
bootloader --location=mbr
zerombr
clearpart --all --initlabel
part /boot --fstype=ext4 --asprimary --size=1023
part swap --asprimary --size=1024
part / --fstype=ext4 --grow --asprimary --size=200
poweroff
%packages --nobase
@core
%end

After the Ubuntu or CentOS installation completes, you can install the clusterware-node package and the node configuration (see Booting Diskful Compute Nodes) using the kickstart %post script:

An Ubuntu example:

%post
apt-key adv --fetch-keys \
https://updates.penguincomputing.com/DEB-GPG-KEY-scyld-clusterware
echo "deb https://<AUTH_TOKEN>:@updates.penguincomputing.com/clusterware/12/deb/ /" \
                   > /etc/apt/sources.list.d/clusterware.list
apt-get update
apt install -y clusterware-node
echo "base_url=http://<HEADNODE_IP>/api/v1" \
                   > /opt/scyld/clusterware-node/etc/node.sh
echo "iface=ens3" >> /opt/scyld/clusterware-node/etc/node.sh
%end

A CentOS 7 example:

%post
cat <<-"EOF" >/etc/yum.repos.d/clusterware-node.repo
[scyld-el7]
name=Scyld el7
baseurl=https://<AUTH_TOKEN>:@updates.penguincomputing.com/clusterware/12/el7/$basearch/
enabled=1
gpgcheck=1
priority=3
gpgkey=https://updates.penguincomputing.com/RPM-GPG-KEY-scyld-clusterware
EOF
yum -y install clusterware-node
echo "base_url=http://<HEADNODE_IP>/api/v1" > /opt/scyld/clusterware-node/etc/node.sh
echo "iface=eth0" >> /opt/scyld/clusterware-node/etc/node.sh
%end

Note: Replace <HEADNODE_IP> from the above examples with the appropriate head node's IP address, and replace <AUTH_TOKEN> with the appropriate customer authentication token.

  1. Host kickstart on a web server.

The ClusterWare head node can be used for this purpose. Then simply copy the kickstart file to /var/www/html/netboot/kickstart.

5. Create a boot configuration using the downloaded kernel and initramfs, and assign boot configuration to the compute node. For example, for node n10:

scyld-bootctl create name=NetBoot initramfs=@initrd.gz kernel=@linux image=None
scyld-bootctl -i NetBoot up \
     cmdline="enforcing=0 ks=http://<HEADNODE_IP>/netboot/kickstart"
scyld-nodectl -i n10 set _boot_config=NetBoot

Again, replace <HEADNODE_IP> from the above example with the appropriate head node's IP address.

6. Set the compute node to network boot, then power on the compute node. The kickstart file should be able to automate all installation, and then shutdown the compute node. Then change the compute node to hard drive boot and power on the compute node again.

If you have not installed clusterware-node and created /opt/scyld/clusterware-node/etc/nodes.sh in the kickstart %post script, you may do so manually now, then reboot compute node again.

These "diskful" nodes can be managed by the same scyld-nodectl command as the PXEboot nodes. See Booting Diskful Compute Nodes for details.