Performing scripted Linux installations is a bit more involved than scripted Windows installations. Network Linux installations require the OS source files to be available on a network share, and require more alterations to the answer file. This article explains how to set up your network so you can perform scripted installations using Linux. You'll be surprised by how well the Linux scripted installation process works. Once your network is properly configured, scripted installations of Linux are easy!
The general contents of this article are applicable to most distributions of Linux that support scripted network installations. Since DS for Dell 2.0 only supports Red Hat Enterprise Linux and SUSE Enterprise Linux, I will focus on those.
Setting up a network share
The first step is to set up a network share. Most distributions of Linux support HTTP, FTP, or NFS. For HTTP or FTP we'll use Microsoft's IIS, but you can use any HTTP or FTP server.
HTTP
Internet Information Services needs to be installed on the server hosting the files. This can be the same server as the Deployment Server and point to the [DS share]\Dell\OSSup directory where you can copy the source files using the Configuration Utility.
The HTTP Server can be accessed as either a web site or a virtual directory. If you set it up as its own web site, the files can be accessed directly from the IP address of the host server (e.g. http://192.168.0.100). If you set it up as a virtual directory of an existing web site, the files will be accessed as a directory off of the IP address (example: http://192.168.0.100/Linux). In our example we will set up a web site, and use the structure in the [DS share]\Dell\OSSup folder.
To set up a Web Site Using IIS
- Open ISS Manager, right-click on Web Sites and select New > Web Site.
- Follow the Wizard by entering a description
- Pick the IP address to associate with this web site
- Enter the path to the source files and check the box to allow anonymous access.
- Assign permissions, read is the only one needed.
To access the files you just need to add the correct entry to the answer file. We'll cover that in the Editing answer file section.
FTP
Setting up an FTP server in Windows to access your Linux source files is fairly straight forward.
Internet Information Services needs to be installed on the server from which you are hosting the source files and the File Transfer Protocol (FTP) component needs to be installed along with it (this isn't installed by default). This can be the same server as the Deployment Server and point to the [DS share]\Dell\OSSup directory where you can copy the source files using the Configuration Utility. The source files can be accessed as its own FTP site (e.g. ftp://192.168.0.100), or as a virtual directory of an existing FTP site (e.g. ftp://192.168.0.100/Linux). In our example we will set up a FTP site, and use the structure in the [DS share]\Dell\OSSup folder.
To Set Up an FTP Site Using IIS
- Open ISS Manager, right-click on FTP Sites and select New > FTP Site.
- Follow the Wizard by entering a description
- Picking the IP address to associate with this FTP site
- Choose your FTP user isolation, how you configure this is up to you, I chose not to isolate users.
- Enter the path to the source files
- Assign Read/Write permissions.
By default, anonymous access to the FTP server is allowed. However, you can require authentication to the server by right-clicking on the FTP Site in IIS and selecting properties. Click on the Security Accounts tab and uncheck the box labeled Allow anonymous connections. Again, we'll cover the entries you need to add to the answer file in the Editing answer file section.
NFS
Software
To run an NFS server you will need a Linux server. Any distribution should work. You will need to download and install the NFS software if you do not already have it. The process of doing this is different for each distribution. Try using apt-get, yum, or another package manager to install the NFS software. A simple Internet search with your distribution name and NFS will probably lead you in the right direction.
Configuration
- Edit /etc/exports and add entries to this file to share out directories and set permissions. Entries are in the format:
directory computer1(optionA, optionB, ...) computer2(optionA, optionB, ...)
- directory: The directory you want to share.
- computer: The client computers that will have access to the directory. This can be DNS name, or IP address. This can also cover a range of addresses.
- (optionA, optionB, ...): Describes the level of access to the directory. Valid values are as follows:
- ro: Directory is read only (default).
- rw: Directory is read write.
- no_root_squash: Sets permissions such that root on the client computer has the same rights to the directory as root does on the server. Not recommended unless you have a good reason for needing this.
- no_subtree_check: Disables a check on subtree checking that can speed up transfers.
- sync: Prevents reboot of server until all file system writes have completed, default is async.
Example:
/share/rhel3as *(ro,sync)
/share/rhel4as 192.168.(ro,sync)
/share/rhel3es 192.168.0.0/255.255.255.0(rw,sync)
/share/rhel4es 192.168.0.1(ro) 192.168.0.2(rw)
- The first entry will share out the directory /share/rhel3as to anyone, and will give it read only access.
- The second entry will share out /share/rhel4as to any computer whose IP address starts with 192.168. with read only access.
- The third entry will share out /share/rhel3es to any computer in the same subnet as 192.168.0.0 with read write access.
- The fourth entry will share out /share/rhel4es to just the computer with the IP address 192.168.0.1 with read only access, and to the computer with the IP address 192.168.0.2 with read write access.
- Edit /etc/hosts.allow and /etc/hosts.deny.
Editing your hosts.allow and hosts.deny files will help your server be more secure. Your NFS server should work even if these files are blank, but it is a good idea to add entries to theses files so unauthorized users can't access your system.
When a system first attempts to access the server, the server checks the hosts.allow file to see if the computer is listed there. If so, it is allowed access. If not, then the hosts.deny file is checked, and if the computer is listed there it is denied access. If the computer is not listed in either file then the computer is allowed access.
- Start services.
All that should be required is restarting your server. The start up scripts should detect the changes made to your set up files and start the needed services. If you don't want to reboot your system, you can manually restart the applicable services. Again, this varies by distribution. I use the following script, it may or may not work for your distribution (I'm running Ubuntu Dapper Drake).
#!/bin/bash
exportfs -ra
/etc/init.d/portmap restart
/etc/init.d/nfs-common restart
/etc/init.d/nfs-kernel-server restart
exit
If you run into problems, or if you need more information, search the Web for "NFS tutorial."
Copy Source files to network share
If you are hosting your source files on the deployment share you can use the configuration utility to copy the files. From the DS console click Tools > Dell Tools > Configuration Utility. Click the OS Deployment tab and select the OS you want to add files for and click the Copy button. If you have more than one CD you will be asked if you want to copy another CD each time the copy operation completes.
If you are not hosting your source files on the deployment share, or you don't want to use the Configuration Utility, you can simply use a utility such as Windows Explorer to copy the files. For Red Hat simply copy the entire first CD, and only copy the contents of the RedHat\RPMS folder of subsequent CDs (to avoid overwriting files and directories with the same name).
Copy boot files to DS server
If the server hosting the OS source files is not the same as your Deployment Server, or you chose to store the files in a location other than the Deployment share, you will need to copy two files to the Deployment share. These files are used during the scripted installation process to load the OS and launch the install. The files needed depend on the OS. For Red Hat you need the files vmlinuz and initrd.img. For SUSE you need the files linux and initrd. These are also located in different places depending not only on the OS, but the CPU type. Here's a quick list:
OS Type |
Boot files location |
Requires files |
Red Hat Enterprise Linux 3 & 4, 32-bit & 64-bit |
\isolinux |
vmlinux, initrd.img |
SUSE Enterprise Linux Server 10 32-bit |
\boot\i386\loader |
linux, initrd |
SUSE Enterprise Linux Server 10 64-bit |
\boot\x86_64\loader |
linux, initrd |
The paths listed are relative to the root of the CD. The required files should be placed in the same directory structure as they are found on the CD. These files can be placed anywhere on the Deployment share, but by default the scripts point to [Deployment Share]\Dell\OSSup\[OS NAME] where [OS NAME] is RHEL, RHEL64, SUSE, or SUSE64. If you want to change this location you can use the OS Deployment tab in the configuration utility to do so.
For example, if we were setting up 32-bit RHEL, we'd copy vmlinuz and initrd.img from D:\isolinux (if D is my CD drive) to [Deployment share]\Dell\OSSup\RHEL\isolinux.
Note: The required files are specific to the version of the OS you are installing. Even though the file names are the same that doesn't mean you can use the same files for any version of Linux. You have to use the ones that are found on the CD of the version you are installing.
Edit answer file
You shouldn't need to make very many changes to the answer file. The two important items are: the OS files location (Red Hat only), and the credentials for downloading the agent.
- OS Files location (Red Hat only)
Open the kick start file and find the section labeled "Installation Source". The entry to add here depends on the method you used to distribute your OS files. I'll provide an example line for each of the three possibilities:
- HTTP: url --url http://192.168.0.111/rhel3as
- FTP: url --url ftp://<username>:<password>@192.168.0.111/rhel3as (if you left anonymous login enabled omit the "<username>:<password>@" part).
- NFS: nfs --server=192.168.0.30 --dir=/share/rhel3as
Note: To specify the path to the OS files for a SUSE installation you must edit the variable OS_NETWORK_PATH in the last script of the SUSE installation job.
- Agent download credentials
Find the section labeled: "Mount the eXpress share to the mount point /mnt/ddp". You will need to enter credentials that will allow the system to contact your DS server (or wherever adlagent is available) and download the agent. This can be a limited access account that only has permissions to read the file. The downside is that the username and password must be stored in plain text. Alternatively you could host the agent file on an ftp or http server and download it using wget. I'll cover the details of doing this in another article.
Conclusion
That should be all you have to do. Now you can just drag and drop the scripted installation job onto the system(s) you want to install Linux on and it should work. If something goes wrong run through these steps again to make sure you didn't miss anything.
Note: You may run into a small problem when installing Linux on a Dell 9th generation server. A combination of the way the Linux kernel iterates through devices at start up and the design of the 9g servers causes the network devices to be reversed (i.e. eth0 is nic2 and eth1 is nic1). As a result when the installer launches it may not be able to get an IP address or be able to connect to your OS source files server (because your answer file specifies eth0 as the interface to use during the install). A simple solution is to disable the second nic in the BIOS until the installation of the OS has completed. Many distributions of Linux have this problem including Red Hat, but I have never had this problem with SUSE.