Setting Up the Server Holding the Installation Sources

Depending on the operating system running on the machine to use as the network installation source for openSUSE, there are several options for the server configuration. The easiest way to set up an installation server is to use YaST on openSUSE 11.1 and higher.

[Tip]

You can even use a Microsoft Windows machine as the installation server for your Linux deployment. See Section 1.2.5, “Managing an SMB Repository” for details.

Setting Up an Installation Server Using YaST

YaST offers a graphical tool for creating network repositories. It supports HTTP, FTP, and NFS network installation servers.

  1. Log in as root to the machine that should act as installation server.

  2. Install the yast2-instserver package.

  3. Start YaST+Miscellaneous+Installation Server.

  4. Select the server type (HTTP, FTP, or NFS). The selected server service is started automatically every time the system starts. If a service of the selected type is already running on your system and you want to configure it manually for the server, deactivate the automatic configuration of the server service with Do Not Configure Any Network Services. In both cases, define the directory in which the installation data should be made available on the server.

  5. Configure the required server type. This step relates to the automatic configuration of server services. It is skipped when automatic configuration is deactivated.

    Define an alias for the root directory of the FTP or HTTP server on which the installation data should be found. The installation source will later be located under ftp://Server-IP/Alias/Name (FTP) or under http://Server-IP/Alias/Name (HTTP). Name stands for the name of the repository, which is defined in the following step. If you selected NFS in the previous step, define wild cards and export options. The NFS server will be accessible under nfs://Server-IP/Name. Details of NFS and exports can be found in Chapter 26, Sharing File Systems with NFS.

    [Tip]Firewall Settings

    Make sure that the firewall settings of your server system allow traffic on the ports for HTTP, NFS, and FTP. If they currently do not, enable Open Port in Firewall or check Firewall Details first.

  6. Configure the repository. Before the installation media are copied to their destination, define the name of the repository (ideally, an easily remembered abbreviation of the product and version). YaST allows providing ISO images of the media instead of copies of the installation CDs. If you want this, activate the relevant check box and specify the directory path under which the ISO files can be found locally. Depending on the product to distribute using this installation server, it might be that more add-on CDs or service pack CDs are required and should be added as extra repositories. To announce your installation server in the network via OpenSLP, activate the appropriate option.

    [Tip]

    Consider announcing your repository via OpenSLP if your network setup supports this option. This saves you from entering the network installation path on every target machine. The target systems are just booted using the SLP boot option and find the network repository without any further configuration. For details on this option, refer to Section 1.4, “Booting the Target System for Installation”.

  7. Upload the installation data. The most lengthy step in configuring an installation server is copying the actual installation CDs. Insert the media in the sequence requested by YaST and wait for the copying procedure to end. When the sources have been fully copied, return to the overview of existing repositories and close the configuration by selecting Finish.

    Your installation server is now fully configured and ready for service. It is automatically started every time the system is started. No further intervention is required. You only need to configure and start this service correctly by hand if you have deactivated the automatic configuration of the selected network service with YaST as an initial step.

To deactivate a repository, select the repository to remove then select Delete. The installation data are removed from the system. To deactivate the network service, use the respective YaST module.

If your installation server needs to provide the installation data for more than one product of product version, start the YaST installation server module and select Add in the overview of existing repositories to configure the new repository.

Setting Up an NFS Repository Manually

Setting up an NFS source for installation is basically done in two steps. In the first step, create the directory structure holding the installation data and copy the installation media over to this structure. Second, export the directory holding the installation data to the network.

To create a directory to hold the installation data, proceed as follows:

  1. Log in as root.

  2. Create a directory that will later hold all installation data and change into this directory. For example:

    mkdir install/product/productversion
    cd install/product/productversion

    Replace product with an abbreviation of the product name and productversion with a string that contains the product name and version.

  3. For each CD or DVD contained in the media kit execute the following commands:

    1. Copy the entire content of the installation CD or DVD into the installation server directory:

      cp -a /media/path_to_your_CD-ROM_drive .

      Replace path_to_your_CD-ROM_drive with the actual path under which your CD or DVD drive is addressed. Depending on the type of drive used in your system, this can be cdrom, cdrecorder, dvd, or dvdrecorder.

    2. Rename the directory to the CD number:

      mv path_to_your_CD-ROM_drive CDx

      Replace x with the actual number of your CD.

On openSUSE, you can export the repository with NFS using YaST. Proceed as follows:

  1. Log in as root.

  2. Start YaST+Network Services+NFS Server.

  3. Select Start and Open Port in Firewall and click Next.

  4. Select Add Directory and browse for the directory containing the installation sources, in this case, productversion.

  5. Select Add Host and enter the hostnames of the machines to which to export the installation data. Instead of specifying hostnames here, you could also use wild cards, ranges of network addresses, or just the domain name of your network. Enter the appropriate export options or leave the default, which works fine in most setups. For more information about the syntax used in exporting NFS shares, read the exports man page.

  6. Click Finish. The NFS server holding the openSUSE repository is automatically started and integrated into the boot process.

If you prefer manually exporting the repository via NFS instead of using the YaST NFS Server module, proceed as follows:

  1. Log in as root.

  2. Open the file /etc/exports and enter the following line:

    /productversion *(ro,root_squash,sync)

    This exports the directory /productversion to any host that is part of this network or to any host that can connect to this server. To limit the access to this server, use netmasks or domain names instead of the general wild card *. Refer to the export man page for details. Save and exit this configuration file.

  3. To add the NFS service to the list of servers started during system boot, execute the following commands:

    insserv /etc/init.d/nfsserver
    insserv /etc/init.d/portmap
  4. Start the NFS server with rcnfsserver start. If you need to change the configuration of your NFS server later, modify the configuration file and restart the NFS daemon with rcnfsserver restart.

Announcing the NFS server via OpenSLP makes its address known to all clients in your network.

  1. Log in as root.

  2. Enter the directory /etc/slp.reg.d/.

  3. Create a configuration file called install.suse.nfs.reg containing the following lines:

    
    # Register the NFS Installation Server
    service:install.suse:nfs://$HOSTNAME/path_to_repository/CD1,en,65535 
    description=NFS Repository

    Replace path_to_repository with the actual path to the installation source on your server.

  4. Save this configuration file and start the OpenSLP daemon with rcslpd start.

For more information about OpenSLP, refer to the package documentation located under /usr/share/doc/packages/openslp/ or refer to Chapter 22, SLP Services in the Network. More Information about NFS is found in Chapter 26, Sharing File Systems with NFS.

Setting Up an FTP Repository Manually

Creating an FTP repository is very similar to creating an NFS repository. An FTP repository can be announced over the network using OpenSLP as well.

  1. Create a directory holding the installation sources as described in Section 1.2.2, “Setting Up an NFS Repository Manually”.

  2. Configure the FTP server to distribute the contents of your installation directory:

    1. Log in as root and install the package vsftpd using the YaST package manager.

    2. Enter the FTP server root directory:

      cd /srv/ftp
    3. Create a subdirectory holding the installation sources in the FTP root directory:

      mkdir repository 

      Replace replaceable with the product name.

    4. Mount the contents of the installation repository into the change root environment of the FTP server:

      mount --bind path_to_repository /srv/ftp/instsource

      Replace path_to_repository and repository with values matching your setup. If you need to make this permanent, add it to /etc/fstab.

    5. Start vsftpd with vsftpd.

  3. Announce the repository via OpenSLP, if this is supported by your network setup:

    1. Create a configuration file called install.suse.ftp.reg under /etc/slp.reg.d/ that contains the following lines:

      # Register the FTP Installation Server
      service:install.suse:ftp://$HOSTNAME/repository/CD1,en,65535 
      description=FTP Repository

      Replace repository with the actual name to the repository directory on your server. The service: line should be entered as one continuous line.

    2. Save this configuration file and start the OpenSLP daemon with rcslpd start.

[Tip]Configuring an FTP Server with YaST

If you prefer using YaST over manually configuring the FTP installation server, refer to Chapter 29, Setting up an FTP server with YaST for more information on how to use the YaST FTP server module.

Setting Up an HTTP Repository Manually

Creating an HTTP repository is very similar to creating an NFS repository. An HTTP repository can be announced over the network using OpenSLP as well.

  1. Create a directory holding the installation sources as described in Section 1.2.2, “Setting Up an NFS Repository Manually”.

  2. Configure the HTTP server to distribute the contents of your installation directory:

    1. Install the Web server Apache as described in Section 28.1.2, “Installation”.

    2. Enter the root directory of the HTTP server (/srv/www/htdocs) and create the subdirectory that will hold the installation sources:

      mkdir repository 
             

      Replace repository with the product name.

    3. Create a symbolic link from the location of the installation sources to the root directory of the Web server (/srv/www/htdocs):

      ln -s /path_to_repository /srv/www/htdocs/repository
    4. Modify the configuration file of the HTTP server (/etc/apache2/default-server.conf) to make it follow symbolic links. Replace the following line:

      Options None

      with

      Options Indexes FollowSymLinks
    5. Reload the HTTP server configuration using rcapache2 reload.

  3. Announce the repository via OpenSLP, if this is supported by your network setup:

    1. Create a configuration file called install.suse.http.reg under /etc/slp.reg.d/ that contains the following lines:

      # Register the HTTP Installation Server
      service:install.suse:http://$HOSTNAME/repository/CD1/,en,65535 
      description=HTTP Repository

      Replace repository with the actual path to the repository on your server. The service: line should be entered as one continuous line.

    2. Save this configuration file and start the OpenSLP daemon using rcslpd restart.

Managing an SMB Repository

Using SMB, you can import the installation sources from a Microsoft Windows server and start your Linux deployment even with no Linux machine around.

To set up an exported Windows Share holding your openSUSE repository, proceed as follows:

  1. Log in to your Windows machine.

  2. Start Explorer and create a new folder that will hold the entire installation tree and name it INSTALL, for example.

  3. Export this share according the procedure outlined in your Windows documentation.

  4. Enter this share and create a subfolder, called product. Replace product with the actual product name.

  5. Enter the INSTALL/product folder and copy each CD or DVD to a separate folder, such as CD1 and CD2.

To use a SMB mounted share as a repository, proceed as follows:

  1. Boot the installation target.

  2. Select Installation.

  3. Press F4 for a selection of the repository.

  4. Choose SMB and enter the Windows machine's name or IP address, the share name (INSTALL/product/CD1, in this example), username, and password.

    After you hit Enter, YaST starts and you can perform the installation.

Using ISO Images of the Installation Media on the Server

Instead of copying physical media into your server directory manually, you can also mount the ISO images of the installation media into your installation server and use them as a repository. To set up an HTTP, NFS or FTP server that uses ISO images instead of media copies, proceed as follows:

  1. Download the ISO images and save them to the machine to use as the installation server.

  2. Log in as root.

  3. Choose and create an appropriate location for the installation data, as described in Section 1.2.2, “Setting Up an NFS Repository Manually”, Section 1.2.3, “Setting Up an FTP Repository Manually”, or Section 1.2.4, “Setting Up an HTTP Repository Manually”.

  4. Create subdirectories for each CD or DVD.

  5. To mount and unpack each ISO image to the final location, issue the following command:

    mount -o loop path_to_iso path_to_repository/product/mediumx

    Replace path_to_iso with the path to your local copy of the ISO image, path_to_repository with the source directory of your server, product with the product name, and mediumx with the type (CD or DVD) and number of media you are using.

  6. Repeat the previous step to mount all ISO images needed for your product.

  7. Start your installation server as usual, as described in Section 1.2.2, “Setting Up an NFS Repository Manually”, Section 1.2.3, “Setting Up an FTP Repository Manually”, or Section 1.2.4, “Setting Up an HTTP Repository Manually”.

To automatically mount the ISO images at boot time, add the respective mount entries to /etc/fstab. An entry according to the previous example would look like the following:

path_to_iso path_to_repository/product
    medium auto loop