Chapter 11. Adding the Kickstart file to a UEFI HTTP or PXE installation source
After your Kickstart file is ready, you can make it available for the installation on the destination system.
11.1. Sharing the installation files on an NFS server
You can store the Kickstart script file on an NFS server. Storing it on an NFS server enables you to install multiple systems from a single source without having to use physical media for the Kickstart file.
Prerequisites
- You have administrator-level access to a server with Red Hat Enterprise Linux 10 on the local network.
- The system to be installed can connect to the server.
Ensure that you use different paths in inst.ks
and inst.repo
. When using NFS to host the Kickstart, you cannot use the same nfs share to host the installation source.
Procedure
Install the
nfs-utils
package by running the following command as root:dnf install nfs-utils
# dnf install nfs-utils
Copy to Clipboard Copied! - Copy the Kickstart file to a directory on the NFS server.
Open the
/etc/exports
file by using a text editor and add a line with the following syntax:/exported_directory/ clients
/exported_directory/ clients
Copy to Clipboard Copied! Replace /exported_directory/ with the full path to the directory holding the Kickstart file. Instead of clients, use the host name or IP address of the computer that is to be installed from this NFS server, the subnetwork from which all computers are to have access the ISO image, or the asterisk sign (
*
) if you want to allow any computer with network access to the NFS server to use the ISO image. See the exports(5) man page for detailed information about the format of this field. A basic configuration that makes the/nfs/rhel10-kickstart/
directory available as read-only to all clients is:/nfs/rhel10-kickstart/ *
/nfs/rhel10-kickstart/ *
Copy to Clipboard Copied! Enable the NFS service in firewalld.
firewall-cmd --permanent --add-service nfs firewall-cmd --permanent --add-service=mountd firewall-cmd --permanent --add-service=rpc-bind firewall-cmd --reload
# firewall-cmd --permanent --add-service nfs # firewall-cmd --permanent --add-service=mountd # firewall-cmd --permanent --add-service=rpc-bind # firewall-cmd --reload
Copy to Clipboard Copied! -
Save the
/etc/exports
file and exit the text editor. Start the nfs service:
systemctl enable --now nfs-server.service
# systemctl enable --now nfs-server.service
Copy to Clipboard Copied! If the service was running before you changed the
/etc/exports
file, enter the following command, in order for the running NFS server to reload its configuration:systemctl reload nfs-server.service
# systemctl reload nfs-server.service
Copy to Clipboard Copied! The Kickstart file is now accessible over NFS and ready to be used for installation.
When specifying the Kickstart source, use nfs:
as the protocol, the server’s host name or IP address, the colon sign (:
), and the path inside the directory holding the file. For example, if the server’s host name is myserver.example.com
and you have saved the file in /nfs/rhel10-kickstart/my-ks.cfg
, specify inst.ks=nfs:myserver.example.com:/nfs/rhel10-kickstart/my-ks.cfg
as the installation source boot option.
11.2. Sharing the installation files on an HTTP or HTTPS server
You can store the Kickstart script file on an HTTP or HTTPS server. Storing the Kickstart file on an HTTP or HTTPS server enables you to install multiple systems from a single source without having to use physical media for the Kickstart file.
Prerequisites
- You have administrator-level access to a server with Red Hat Enterprise Linux 10 on the local network.
- The system to be installed can connect to the server.
Procedure
To store the Kickstart file on an HTTP, install the
httpd
package:dnf install httpd
# dnf install httpd
Copy to Clipboard Copied! Optional: To store the Kickstart file on an HTTPS, install
httpd
andmod_ssl
packages:dnf install httpd mod_ssl
# dnf install httpd mod_ssl
Copy to Clipboard Copied! ImportantIf you use an HTTPS server with a self-signed certificate, you must boot the installation program with the
inst.noverifyssl
option.-
Copy the Kickstart file to the HTTP(S) server into a subdirectory of the
/var/www/html/
directory. Enable the http service in firewalld.
firewall-cmd --permanent --add-service=http firewall-cmd --reload
# firewall-cmd --permanent --add-service=http # firewall-cmd --reload
Copy to Clipboard Copied! Optional: Enable the
https
service in firewalld:firewall-cmd --permanent --add-service=https firewall-cmd --reload
# firewall-cmd --permanent --add-service=https # firewall-cmd --reload
Copy to Clipboard Copied! Start the
httpd
service:systemctl enable --now httpd.service
# systemctl enable --now httpd.service
Copy to Clipboard Copied! The Kickstart file is now accessible and ready to be used for installation.
When specifying the location of the Kickstart file, use
http://
orhttps://
as the protocol, the server’s host name or IP address, and the path of the Kickstart file, relative to the HTTP server root. For example, if you are using HTTP, the server’s host name ismyserver.example.com
, and you have copied the Kickstart file as/var/www/html/rhel10-install/my-ks.cfg
, specifyhttp://myserver.example.com/rhel10-install/my-ks.cfg
as the file location.
11.3. Sharing the installation files on an FTP server
You can store the Kickstart script file on an FTP server. Storing the script on an FTP server enables you to install multiple systems from a single source without having to use physical media for the Kickstart file.
Prerequisites
- You have administrator-level access to a server with Red Hat Enterprise Linux 10 on the local network.
- The system to be installed can connect to the server.
Procedure
Install the
vsftpd
package by running the following command as root:dnf install vsftpd
# dnf install vsftpd
Copy to Clipboard Copied! Open and edit the
/etc/vsftpd/vsftpd.conf
configuration file in a text editor.-
Change the line
anonymous_enable=NO
toanonymous_enable=YES
-
Change the line
write_enable=YES
towrite_enable=NO
. Add lines
pasv_min_port=min_port
andpasv_max_port=max_port
. Replacemin_port
andmax_port
with the port number range used by the FTP server in passive mode, for example,10021
and10031
.This step can be necessary in network environments featuring various firewall/NAT setups.
- Optional: Add custom changes to your configuration. For available options, see the vsftpd.conf(5) man page. This procedure assumes that default options are used.
-
Change the line
Configure the firewall to allow the FTP port and port range from the previous step:
firewall-cmd --add-port min_port-max_port/tcp --permanent
# firewall-cmd --add-port min_port-max_port/tcp --permanent
Copy to Clipboard Copied! Replace min_port-max_port with the port numbers you entered into the
/etc/vsftpd/vsftpd.conf
configuration file.Configure the firewall to allow FTP service.
firewall-cmd --add-service ftp --permanent
# firewall-cmd --add-service ftp --permanent
Copy to Clipboard Copied! Reload the firewall to apply the new rules.
firewall-cmd --reload
# firewall-cmd --reload
Copy to Clipboard Copied! -
Copy the Kickstart file to the FTP server into the
/var/ftp/
directory or its subdirectory. Ensure that the correct SELinux context and access mode is set on the file:
restorecon -r /var/ftp/your-kickstart-file.ks chmod 444 /var/ftp/your-kickstart-file.ks
# restorecon -r /var/ftp/your-kickstart-file.ks # chmod 444 /var/ftp/your-kickstart-file.ks
Copy to Clipboard Copied! Start the
vsftpd
service:systemctl enable --now vsftpd.service
# systemctl enable --now vsftpd.service
Copy to Clipboard Copied! If the service was running before you changed the
/etc/vsftpd/vsftpd.conf
file, restart the service to load the edited file:systemctl restart vsftpd.service
# systemctl restart vsftpd.service
Copy to Clipboard Copied! The Kickstart file is now accessible and ready to be used for installations by systems on the same network.
NoteWhen configuring the installation source, use
ftp://
as the protocol, the server’s host name or IP address, and the path of the Kickstart file, relative to the FTP server root. For example, if the server’s host name ismyserver.example.com
and you have copied the file to/var/ftp/my-ks.cfg
, specifyftp://myserver.example.com/my-ks.cfg
as the installation source.