Creating installation sources for Kickstart installations

This section describes how to create an installation source for the Boot ISO image using the DVD1 ISO image that contains the required repositories and software packages.

Types of installation source

You can use one of the following installation sources for minimal boot images:

  • DVD: Burn the DVD1 ISO image to a DVD. The installation program will automatically install the software packages from the DVD.

  • Hard drive or USB drive: Copy the DVD1 ISO image to the drive and configure the installation program to install the software packages from the drive. If you use a USB drive, verify that it is connected to the system before the installation begins. The installation program cannot detect media after the installation begins.

    • Hard drive limitation: The DVD1 ISO image on the hard drive must be on a partition with a file system that the installation program can mount. The supported file systems are xfs, ext2, ext3, ext4, and vfat (FAT32).

    On Microsoft Windows systems, the default file system used when formatting hard drives is NTFS. The exFAT file system is also available. However, neither of these file systems can be mounted during the installation. If you are creating a hard drive or a USB drive as an installation source on Microsoft Windows, verify that you formatted the drive as FAT32. Note that the FAT32 file system cannot store files larger than 4 GiB.

    In CentOS 8, you can enable installation from a directory on a local hard drive. To do so, you need to copy the contents of the DVD ISO image to a directory on a hard drive and then specify the directory as the installation source instead of the ISO image. For example: inst.repo=hd:<device>:<path to the directory>

  • Network location: Copy the DVD1 ISO image or the installation tree (extracted contents of the DVD1 ISO image) to a network location and perform the installation over the network using the following protocols:

    • NFS: The DVD1 ISO image is in a Network File System (NFS) share.

    • HTTPS, HTTP or FTP: The installation tree is on a network location that is accessible over HTTP, HTTPS or FTP.

Ports for network-based installation

The following table lists the ports that must be open on the server providing the files for each type of network-based installation.

Table 1. Ports for network-based installation
Protocol used Ports to open

HTTP

80

HTTPS

443

FTP

21

NFS

2049, 111, 20048

TFTP

69

Additional resources

Creating an installation source on an NFS server

Follow the steps in this procedure to place the installation source on an NFS server. Use this installation method to install multiple systems from a single source, without having to connect to physical media.

Prerequisites

  • You have administor level access to a server with CentOS 8, and this server is on the same network as the system to be installed.

  • You have downloaded a DVD1 ISO image. See Downloading the installation ISO image for more information.

  • You have created a bootable CD, DVD, or USB device from the image file. See Creating installation media for more information.

  • You have verified that your firewall allows the system you are installing to access the remote installation source. See Ports for network-based installation for more information.

Procedure

  1. Install the nfs-utils package:

    # yum install nfs-utils
  2. Copy the DVD1 ISO image to a directory on the NFS server.

  3. Open the /etc/exports file using a text editor and add a line with the following syntax:

    /exported_directory/ clients
  4. Replace /exported_directory/ with the full path to the directory with the ISO image. Replace clients with the host name or IP address of the target system, the subnetwork that all target systems can use to access the ISO image, or the asterisk sign (*) if you want to allow any system 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 /centos8-install/ directory available as read-only to all clients is:

    /centos8-install *
  5. Save the /etc/exports file and exit the text editor.

  6. Start the nfs service:

    # systemctl start nfs-server.service

    If the service was running before you changed the /etc/exports file, run the following command for the running NFS server to reload its configuration:

    # systemctl reload nfs-server.service

    The ISO image is now accessible over NFS and ready to be used as an installation source.

When configuring the installation source, use nfs: as the protocol, the server host name or IP address, the colon sign (:), and the directory holding the ISO image. For example, if the server host name is myserver.example.com and you have saved the ISO image in /centos8-install/, specify nfs:myserver.example.com:/centos8-install/ as the installation source.

Creating an installation source using HTTP or HTTPS

Follow the steps in this procedure to create an installation source for a network-based installation using an installation tree, which is a directory containing extracted contents of the DVD1 ISO image and a valid .treeinfo file. The installation source is accessed over HTTP or HTTPS.

Prerequisites

  • You have administor level access to a server with CentOS 8, and this server is on the same network as the system to be installed.

  • You have downloaded a DVD1 ISO image. See Downloading the installation ISO image for more information.

  • You have created a bootable CD, DVD, or USB device from the image file. See Creating installation media for more information.

  • You have verified that your firewall allows the system you are installing to access the remote installation source. See Ports for network-based installation for more information.

Procedure

  1. Install the httpd package:

    # yum install httpd

    If your Apache web server configuration enables SSL security, verify that you enable only the TLSv1 protocol, and disable SSLv2 and SSLv3. This is due to the POODLE SSL vulnerability (CVE-2014-3566). See https://access.redhat.com/solutions/1232413 for details.

    If you use an HTTPS server with a self-signed certificate, you must boot the installation program with the noverifyssl option.

  2. Copy the DVD1 ISO image to the HTTP(S) server.

  3. Mount the DVD1 ISO image, using the mount command, to a suitable directory:

    # mkdir /mnt/centos8-install/
    # mount -o loop,ro -t iso9660 /image_directory/image.iso /mnt/centos8-install/

    Replace /image_directory/image.iso with the path to the DVD1 ISO image.

  4. Copy the files from the mounted image to the HTTP(S) server root. This command creates the /var/www/html/centos8-install/ directory with the contents of the image.

    # cp -r /mnt/centos8-install/ /var/www/html/

    This command creates the /var/www/html/centos8-install/ directory with the content of the image. Note that some copying methods can skip the .treeinfo file which is required for a valid installation source. Running the cp command for whole directories as shown in this procedure will copy .treeinfo correctly.

  5. Start the httpd service:

    # systemctl start httpd.service

    The installation tree is now accessible and ready to be used as the installation source.

    When configuring the installation source, use http:// or https:// as the protocol, the server host name or IP address, and the directory that contains the files from the ISO image, relative to the HTTP server root. For example, if you are using HTTP, the server host name is myserver.example.com, and you have copied the files from the image to /var/www/html/centos8-install/, specify http://myserver.example.com/centos8-install/ as the installation source.

Additional resources

Creating an installation source using FTP

Follow the steps in this procedure to create an installation source for a network-based installation using an installation tree, which is a directory containing extracted contents of the DVD1 ISO image and a valid .treeinfo file. The installation source is accessed over FTP.

Prerequisites

  • You have administor level access to a server with CentOS 8, and this server is on the same network as the system to be installed.

  • You have downloaded a DVD1 ISO image. See Downloading the installation ISO image for more information.

  • You have created a bootable CD, DVD, or USB device from the image file. See Creating installation media for more information.

  • You have verified that your firewall allows the system you are installing to access the remote installation source. See Ports for network-based installation for more information.

Procedure

  1. Install the vsftpd package by running the following command as root:

    # yum install vsftpd
  2. Open and edit the /etc/vsftpd/vsftpd.conf configuration file in a text editor.

    1. Change the line anonymous_enable=NO to anonymous_enable=YES

    2. Change the line write_enable=YES to write_enable=NO.

    3. Add lines pasv_min_port=min_port and pasv_max_port=max_port. Replace min_port and max_port with the port number range used by FTP server in passive mode, e. g. 10021 and 10031.

      This step can be necessary in network environments featuring various firewall/NAT setups.

    4. Optionally, add custom changes to your configuration. For available options, see the vsftpd.conf(5) man page. This procedure assumes that default options are used.

      If you configured SSL/TLS security in your vsftpd.conf file, ensure that you enable only the TLSv1 protocol, and disable SSLv2 and SSLv3. This is due to the POODLE SSL vulnerability (CVE-2014-3566). See https://access.redhat.com/solutions/1234773 for details.

  3. Configure the server firewall.

    1. Enable the firewall:

      # systemctl enable firewalld
      # systemctl start firewalld
    2. Enable in your firewall the FTP port and port range from previous step:

      # firewall-cmd --add-port min_port-max_port/tcp --permanent
      # firewall-cmd --add-service ftp --permanent
      # firewall-cmd --reload

      Replace min_port-max_port with the port numbers you entered into the /etc/vsftpd/vsftpd.conf configuration file.

  4. Copy the DVD1 ISO image to the FTP server.

  5. Mount the DVD1 ISO image, using the mount command, to a suitable directory:

    # mkdir /mnt/centos8-install
    # mount -o loop,ro -t iso9660 /image-directory/image.iso /mnt/centos8-install

    Replace /image-directory/image.iso with the path to the DVD1 ISO image.

  6. Copy the files from the mounted image to the FTP server root:

    # mkdir /var/ftp/centos8-install
    # cp -r /mnt/centos8-install/ /var/ftp/

    This command creates the /var/ftp/centos8-install/ directory with the content of the image. Note that some copying methods can skip the .treeinfo file which is required for a valid installation source. Running the cp command for whole directories as shown in this procedure will copy .treeinfo correctly.

  7. Make sure that the correct SELinux context and access mode is set on the copied content:

    # restorecon -r /var/ftp/centos8-install
    # find /var/ftp/centos8-install -type f -exec chmod 444 {} \;
    # find /var/ftp/centos8-install -type d -exec chmod 755 {} \;
  8. Start the vsftpd service:

    # systemctl start vsftpd.service

    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

    The installation tree is now accessible and ready to be used as the installation source.

    When configuring the installation source, use ftp:// as the protocol, the server host name or IP address, and the directory in which you have stored the files from the ISO image, relative to the FTP server root. For example, if the server host name is myserver.example.com and you have copied the files from the image to /var/ftp/centos8-install/, specify ftp://myserver.example.com/centos8-install/ as the installation source.