Silicon Graphics

Gettting Started With RoboInst

[Overview]
[Getting Started]
[Examples]
[Mrconfig Syntax]
[RoboInst 1.1]
[Other Documentation]
[Future]
Here are the steps to using RoboInst.
  1. Install roboinst.sw.server subsystem on the server.
  2. Copy the roboinst inst package from the CD to local disk.
  3. Create an mrconfig file.
  4. Run the roboinst_config indexing tool.
  5. Prepare a network software distribution directory from your CDs.
  6. Make your files tftp-accessible
  7. Configure bootp or dhcp_bootp on your network.
  8. Install RoboInst software licenses.
  9. Launch the roboinst job.

Install roboinst.sw.server on your server

The first thing you need to do is install the RoboInst server software on the machine we'll call the server. The server is the machine you'll be using to launch the installations. Specifically, you need to install the roboinst.sw.server subsystem on the server machine, using either inst or Software Manager.

Copy the roboinst inst package from the CD to local disk

The roboinst.sw.client software needs to be installed on each of the clients you plan to roboinst. If this has already been done, you can skip this step. You can either install roboinst.sw.client manually on each of your clients, or you can arrange to have this done automatically when you launch roboinst, by using the -f option of the /usr/etc/roboinst command.

If you decide to use the -f option, you'll probably want to copy the RoboInst installation package from the CD, to a directory on the server. For example, if you have the IRIX 6.5 Installation Tools CD in the CDROM drive, you can issue the following command:

    # mkdir -p /usr/local/boot/roboinst/dist
    # cp /CDROM/dist/roboinst* /usr/local/boot/roboinst/dist
Then later, when you launch roboinst, you can use the -f /usr/local/boot/roboinst/dist option to automatically install the roboinst client software on each of your clients.

Create an mrconfig file

You'll need to create an ascii file called mrconfig, that specifies all the disk partitioning, software installation, and any shell commands to execute as part of the installation. The easiest way to do this is to copy one of the examples.

The syntax of the mrconfig file is somewhat involved, so it is described on it's own web page.

Once you've created your mrconfig file, you should put it in a directory that is tftp-accessible. For example, the default directory is /usr/local/boot/roboinst. Note: the mrconfig file does not have to reside on the same machine as the roboinst server. It can reside on any machine that is not a client.

Run the roboinst_config indexing tool.

In the previous step, you created a mrconfig file, and placed it in a tftp-accessible directory. Now, you need to run the indexing tool called roboinst_config to create a .index file in the same directory.

The .index file contains size and checksum information that will be used by the roboinst software to verify that your mrconfig file has been copied to the client machines without any data corruption. The tool also checks for and reports some types of syntactical errors in the mrconfig file.

For example, if you put your mrconfig file in the directory /usr/local/boot/roboinst, then you would run the command:

     /usr/etc/roboinst_config -c /usr/local/boot/roboinst

Prepare a network software distribution directory from your CDs.

The first step is to determine what host will be the distribution server. This is easiest if it is an SGI machine, as the CDs can be read locally. The directory chosen as the root of the distribution must be accessible both via tftp (for the miniroot boot process) and rsh without a password (for the installation: inst defaults to using the guest account. A ~guest/.rhosts file can be used).

Creating a sub-directory per distribution CD is preferred, as that has 2 benefits over putting it all in one directory:

  1. It is easier to upgrade bits of the distribution (new compiler release, the next quarterly Apps CD, updating patches, etc)
  2. It reduces the time that inst will spend reading ditribution data that it won't use (by selecting just the directories needed in the mrconfig file).
  3. That's the way the examples are written.
See the examples for sample directory naming convention. In particular, notice that there is a directory named "irix_miniroot". This is a copy of the Irix 6.5 Installation Tools CD, and contains the RoboInst software and the boot files. To shorten the path that administrators may need to type in the PROM monitor to boot, it is recommended to symlink the irix_miniroot/sa file and irix_miniroot/miniroot directory to the common parent directory. The file sa contains the boot program (sashARCS and sash64) and the miniroot image file (mr). The miniroot directory contains the unix kernels for the various hardware types (unix.IP32, etc).

See the Installation and Licensing Guide for more information.

This step is not be required if you decide to remote-install from CD by putting the CD's in various drives around your network, and then using the command roboinst -b server:/CDROM/dist as the boot location. Your mrconfig file will have to specify each of the CDROM drives that will be used.

Make your files tftp-accessible

Make sure that the directory containing your mrconfig file can be accessed from other machines using tftp. Also, make sure the file containing the miniroot boot file (called "sa") is also tftp-accessible.

This may involve editing the tftp entry in the /etc/inetd.conf file, and executing a "killall -HUP inetd" command while logged-in as root.

Here's an example. Let's say you create a directory called /var/tmp/roboinst and put your mrconfig file in that directory. Then, you would edit the /etc/inetd.conf file and edit the tftp line to look like this:

tftp    dgram   udp     wait    guest   /usr/etc/tftpd  tftpd -s /usr/local/boot /usr/etc/boot /var/tmp/roboinst
Then, force inetd to re-read the inetd.conf file, by issuing the following command while logged-in as root:
killall -HUP inetd
Alternatively, if you put your mrconfig file in the directory /usr/local/boot/roboinst, then you would probably not have to modify /etc/inetd.conf if the -s /usr/local/boot option is already present in /etc/inetd.conf (which it is by default).

For more information, see the tftp manual page, and the comments about tftp in the /etc/inetd.conf file.

Configure bootp or dhcp_bootp on your network.

When started from a running system, RoboInst passes down enough information into the miniroot to be able to perform an installation without DHCP, but the PROM does not allow long enough command lines to do this in the general case. When DHCP is configured on the network, these values are used as defaults, that may be overridden by DHCP.

DHCP is the Dynamic Host Configuration Protocol, described in RFC 2131. DHCP allows you to allocate hostnames and network addresses automatically. See the dhcp_bootp man page and the IRIX Admin: Networking and Mail online book for DHCP server configuration instructions.

RoboInst can determine the configuration server:/directory from DHCP. It uses tftp to fetch the host:/file pointed to by the ExtensionsPathname DHCP tag. This is the pro_extensions_pathname item in the Proclaim configuration file, and should reference a tftp-able file that contains lines like:

# SGI extensions to dhcp_bootp attributes

pro_roboinstdir : 10.62.51.86:/var/tmp/roboinst

For miniroot installations with RoboInst you'll need to make sure bootp is operating on your network. Specifically, bootp will be used to load the miniroot ("sa" file) and the miniroot kernels (miniroot/unix.* files) that are distributed on the Irix 6.5 Installation Tools CD, under /CDROM/dist/sa and /CDROM/dist/miniroot/unix.*.

If you are loading the miniroot across networks, bootp forwarding must be enabled on your routers.

Install RoboInst software licenses

Licenses are not required during the Irix 6.5 Beta evaluation period. You may see a notice about a license not being available, but roboinst will still continue to operate without a license.

Launch the roboinst job.

Once you've prepared your mrconfig file, and setup BOOTP and TFTP on your network, you're ready to initiate the install, in one of three ways:

1. Initiate the install from a server

The server machine can be any machine that has the roboinst.sw.server subsystem installed. If the client machine is up and running on the network, has a .rhosts entry or no root password, and is running IRIX 5.3 or later, you can initiate the installation as follows while logged-in as root on the server:

    roboinst -b dist:/CDROM/dist -c server:/configdir \
      -f dist2:/CDROM/dist/roboinst -t now \
      client1 client2 ...
Where the -b argument is the directory where you are booting the sa file from, and the -c argument is the directory containing your "mrconfig" file. The -t argument specifies when to the install should begin.

The -f argument causes the RoboInst client software (roboinst.sw.client subsystem) to be installed on the client machine if necessary.

More information about the /usr/etc/roboinst script is provided in the roboinst(1m) manual page that is included in the roboinst.man inst package.

Before attempting this, you must run the roboinst_config program to generate a .index file in your configuration directory on the server:

    roboinst_config -c /configdir
Note: you must re-run this command each time you change the contents of your configuration directory, unless you disable checksum- and size- checking by removing the "checksum" and "size" attributes from the the .index file.

2. Initiate the install from the client

You can initiate RoboInst from the client machine itself, as long as you have installed the roboinst.sw.client subsystem as described above. The only difference is that the client name is omitted.

    roboinst -b dist:/CDROM/dist -c server:/configdir \
      -f dist2:/CDROM/dist/roboinst -t now

3. Initiate the install from the PROM monitor of the client

Finally, if the client is not up and running on the network, you can initiate a roboinstall from the PROM monitor of the client as follows, with a boot command and the argument mrmode=custom.

Note: pay special attention to the disksetup keyword. Use the disksetup keyword only if you plan to repartition the disk drive since it will normally cause all current contents of the root drive to be lost.

The final argument, mrconfig=addr:/pathname is used to specify the ip address and pathname of the directory containing your mrconfig file.

    boot -f bootp()server:/path/sa(sashARCS) mrmode=custom disksetup=true mrconfig=130.62.51.86:/var/tmp/roboinst
    boot -f bootp()server:/path/sa(sashARCS) mrmode=custom mrconfig=130.62.51.86:/var/tmp/roboinst
    boot -f bootp()server:/path/sa(sashARCS) mrmode=custom
    boot -f bootp()server:/path/sa(sash64) mrmode=custom mrconfig=130.62.51.86:/var/tmp/roboinst
    boot -f bootp()server:/path/sa(sash64) mrmode=custom
In the examples above, it is only necessary to use an ip-address for the configuration server if it is different from the boot server. If these two servers are the same, then a hostname can be specified:
    boot -f bootp()server:/path/sa(sashARCS) mrmode=custom mrconfig=server:/var/tmp/roboinst

Note: the boot command may fail if you have not properly set your netaddr nvram variable. Use this prom command to display the current value:

>> printenv netaddr
netaddr=130.62.51.201
If it is not set correctly, or if it is set to 192.0.2.1, you will need to set it to the appropriate value for your network, with a command such as:
>> setenv netaddr 143.69.51.201
Contact your network administrator if you are not sure what the appropriate address is. On some networks, if you have a properly configured bootp server with your machine listed in its /etc/bootptab file, your netaddr variable will be set automatically if you first unset it with this command:
>> unsetenv netaddr
and then use the boot command described above.
Please send us your comments, questions and bugs so we can improve the product.
Silicon Graphics/ $Date: 1998/03/20 23:58:51 $