roboinst(1M)
roboinst, roboinst_start, roboinst_check - automatic software installation tool
As shipped in IRIX 6.5.19. Last changed in IRIX 6.5.19.
NAME roboinst, roboinst_start, roboinst_check - automatic software installation tool SYNOPSIS roboinst [ -Lnyx ] [ -b bootdir ] [ -c configdir ] [ -P disk ] [ -t time ] [ -g grace ] [ -f distribution ] [ -s shell ] [ -N netinfomode ] [ -F selectionsfile ] [ -m mailbox ] host ... roboinst [ -rl ] host ... roboinst [ -q ] DESCRIPTION roboinst is a tool to help automate the process of upgrading software on a number of hosts. roboinst can help in automating installing and upgrading operating system and application software, installing patches, repartitioning disks, and other software installation tasks. More complete documentation is provided in the online book IRIX Admin: Software Installation and Licensing. This book can be obtained by installing the eoe.books.sgi_admin subsystem using inst(1M) or Software Manager(1M). Once a boot server, configuration server, and other options have been configured, the superuser executes the roboinst command to actually begin the automatic installation tasks specified in a file called mrconfig residing in the configuration directory (see -c below). roboinst verifies and starts the automatic installation process on the specified host(s). If no host is given on the command line, the current host is assumed. Unless the -L option is specified, each host is restarted in the miniroot. While in the miniroot, the disks may be repartitioned and software may be installed. Once the installation has completed, the host is restarted in normal user mode. roboinst will log into each host using rsh(1C) in order to initiate remote installation requests. This requires an open root account or suitable .rhosts entry on the remote side. The -s option may be used to specify an alternate remote shell program. roboinst verifies and starts the automatic installation process on the specified host(s). If no host is specified on the command line, the current host is assumed. Unless the -L option is specified, each host is restarted in the miniroot. While in the miniroot, the disks may be repartitioned and software may be installed. Once the installation has completed, the host is restarted in normal user mode. Verification is performed by first checking to make sure that boot server and other boot-time information is available, using bootp(1M). The existence of the sa bootfile in the specified bootdir is verified, and the configuration server is checked to make sure that the configuration files can be copied. The loghost is determined from the configuration files and a checkpoint file is created in the /var/inst directory. If the client is not up and running in multi-user mode, or is not accepting remote logins, a roboinst job can be initiated directly from the client's PROM command monitor. See PROM below. OPTIONS The roboinst command accepts the following options: -b server:/bootdir Specifies the network boot directory on the boot server. A boot server delivers the files necessary for an SGI machine to boot into the miniroot across the network. The boot directory must contain the bootfile sa, and also a subdirectory called miniroot that contains miniroot unix kernels for each of the client hardware platforms (unix.IP22, unix.IP32, etc). The sa file contains the miniroot filesystem image which will be loaded onto each client's swap partition. See prom(1M) for more information on specifying a bootfile for a network boot. For example, if the command to boot the host from the prom is specified as boot -f bootp()server:/dir/sa(sashARCS) then the -b argument would be server:/dir. If desired, the boot directory may also contain inst(1M) format software packages. The -b option is required unless -L is specified. The following commands can be used to make the directory /usr/local/boot a valid roboinst boot directory, assuming the IRIX Installation Tools CD is currently inserted and mounted under /CDROM: mkdir -p /usr/local/boot cp /CDROM/dist/sa /usr/local/boot cp -r /CDROM/dist/miniroot /usr/local/boot Note: the directory /usr/local/boot is tftp-accessible by default on SGI systems. However, if the boot directory you choose is not configured for tftp(1C) access, the client will fail to boot the miniroot, and an error message such as "invalid argument" or "not a valid file to boot" may appear on the console. If this happens it may be necessary to edit the /etc/inetd.conf file on the boot server, and restart inetd(1M). If the boot server and client are located on different networks, roboinst will require that bootp forwarding be enabled on routers between the client and the server. See the bootp(1M) manual page, and also the online book IRIX Admin: Software Installation and Licensing. -c configdir Specifies an roboinst configuration server and directory, where the roboinst configuration files and scripts are located. The specified configdir must contain an mrconfig file, specifying automatic installation options (see roboinst_config(1M) for more information). If no configdir is specified, it is assumed to be localhost:/usr/local/boot/roboinst/custom. -P diskpartition Specify a disk or partition other than the current root partition for automatic installation. You can either specify the SCSI id of the desired disk (a number between 1 and 15) or you can specify the full value for OSLoadPartition. SystemPartition will be set accordingly. See prom(1M) for more information on specifying values for OSLoadPartition and SystemPartition. Note: In order for the roboinst -P n command to successfully boot the miniroot, a copy of sash (from the IRIX 6.5 or later release) must be installed into the volume header of the target disk. Once sash has been installed, subsequent partitionings and installations will not remove it, though it may possibly get downgraded. When roboinst.sw.client is installed, it puts a new copy of sash into the volume header of the system disk if the system is running a version of IRIX earlier than 6.5. The following commands (run as superuser) will copy that sash from the default system disk into the volume header on target disk n: dvhtool -v get sash /tmp/sash dvhtool -v creat /tmp/sash sash /dev/rdsk/dks0dnvh rm /tmp/sash See dks(7) for a complete discussion of disk device names. -f distribution Specifies an inst(1M) distribution which contains the roboinst(1M) client software. If roboinst_start does not exist on the specified host(s), inst(1M) is invoked to install the roboinst software from the specified distribution (inst -f). -F selectionsfile Specifies an inst(1M) selectionsfile which specifies the location of the roboinst(1M) client software (see inst(1M) for more information on selections files). If roboinst_start does not exist on the specified host(s), inst(1M) is invoked to install the roboinst software using the specified selectionsfile (inst -F). -L Run roboinst in live mode. Do not bring the machine down to the miniroot in order to perform the automatic installation process. It is not possible to automatically reformat disks or change any networking parameters in live mode (only the "preinst", "inst", and "postinst" keywords in the mrconfig file are processed). Note that any output from a job running in live mode is normally suppressed, unless the -m option is used. -n Run roboinst in test mode. Verify the servers but do not actually start the automatic installation process. -y If no time is specified, force the automatic installation to start now. -t time Specifies a time at which the host should be restarted in automatic installation mode. The time is specified as for at(1). If a time consisting of more than one word is specified, for example, 0815am Jan 24, then that time must be quoted '0815am Jan 24'. If a time is specified, an at(1) job will be submitted, and the host will be restarted at that time. It follows that the at(1) queue must be enabled on the host. Cannot be used with -n. -g grace-period Specifies a grace period in seconds to be passed to the shutdown(1M) command on the client machine. The grace period allows active users some time to save their current work before the machine is shutdown and booted to the miniroot environment. The default grace period is 60 seconds. This option is ignored when -L is specified. -N netinfomode Specifies how the miniroot gets the parameters necessary to connect to the network. Valid values are DHCP, BOOTP1533, LOCAL and its alias NONE (case insensitive). LOCAL uses only the information available in the PROM variables and on the root filesystem, and is really only appropriate for upgrades. The others broadcast a BOOTP packet requesting network configuration from network servers, and DHCP also requests an IP address lease. If configured on the server (see dhcp_bootp for details), roboinst will set netmask, static routes, and a default route in the miniroot. The default if not specified is determined by the miniroot, and is the equivalent of specifying BOOTP1533 in this release. This option is ignored when -L is specified. -r Remove an automatic installation job from the queue for the specified host(s). You cannot cancel an automatic installation in progress. -l List status of any automatic installation job for the specified host(s). This command only works if run on the host specified as the loghost for the specified host(s). See roboinst_config(1M) for more information about loghost. -q List the host(s) for which automatic installation jobs have been submitted. -m mailbox Send the standard output and standard error of the at(1) job to the specified email address. This option is only useful when the job is scheduled to run at a later time (see -t). Without this option, all at-job output is suppressed. This option has no affect on messages generated during the miniroot portion of the job, nor on messages sent to the loghost (see roboinst_config(1M)). -s shell Use the specified shell program to log into and execute commands on each client host. The default remote shell is /usr/bsd/rsh(1C). INITIATING ROBOINST FROM THE PROM If the client is not up and running in multi-user mode, or is not accepting remote logins, a roboinst job can be initiated directly from the client's PROM command monitor. To enter the PROM, shutdown the system, and choose Enter Command Monitor from the system maintenance menu. (See the prom(1M) manual page for complete instructions.) Assuming the boot directory (see -b above) is located at server:/dir and the configuration directory (see -c above) is located at server:/config, then one of the following commands will initiate a roboinst job from the PROM command monitor: boot -f bootp()server:/dist/sa(sashARCS) mrmode=custom mrconfig=server:/config boot -f bootp()server:/dist/sa(sash64) mrmode=custom mrconfig=server:/config The choice of sashARCS (32-bit sash) or sash64 (64-bit sash) will depend on the hardware type of the client system. For example, on Indy and O2 systems, sashARCS is used. On Octane and Origin platforms, sash64 is used. If the boot server (-b) is different than the config server (-c), then the latter should be specified in full IP-address notation, for example: boot -f bootp()server:/dist/sa(sash64) mrmode=custom mrconfig=92.26.80.118:/config The functionality of the -N option is implemented by prepending a special character to the configuration directory string. Each mode is specified by a unique character: ! (exclamation) for LOCAL, % (percent sign) for BOOTP1533, and + (plus sign) for DHCP. Not specifying any character lets the miniroot use its default (as in the above example). For example, to specify the RoboInst 1.0 behavior where DHCP is always used: boot -f bootp()server:/dist/sa(sash64) mrmode=custom mrconfig=+92.26.80.118:/config If disk partitioning of the system disk is to be performed, then an additional disksetup=true argument must be specified, for example: boot -f bootp()server:/dist/sa(sash64) mrmode=custom mrconfig=server:/config disksetup=true As a rule of thumb, the disksetup=true argument should be given whenever the disksetup keyword is specified in the mrconfig file (see roboinst_config(1M)). The PROM has a limit on command-line length, and here are some ways to work around this problem. 1. Set the mrconfig variable on a separate command line. Note that mrconfig, netmask and hostname are volatie - they are not saved across reboot: setenv mrconfig 130.62.41.34:/roboinst/upgrade setenv netmask 0xffffff00 setenv hostname myhost.mydomain boot -f bootp()server:/dir mrmode=custom Setting netmask is only necessary if the default (0xffff0000 in this example) is not desired, and there is no BOOTP 1533 or DHCP server configured to provide the netmask (see -N above.) Setting hostname is optional, this setting will override all other sources (this is useful for confgiuring a bare machine in the postinst phase). 2. Use bootp() as a shorthand for boot -f bootp(). 3. Boot from the default location by putting the the sa file and miniroot subdirectory in /usr/local/boot on the boot server. Extract the the sashARCS and sash64 files into the same directory, and create symlinks that are more easily remembered. Models with 32-bit kernels should link to sashARCS, and models with 64-bit kernels should link to sash64: cd /usr/local/boot mkboottape -x -f sa sashARCS sash64 ln -s sashARCS o2 ln -s sash64 octane Then the PROM boot command will reduce to one of: bootp()server:o2 mrmode=custom mrconfig=... bootp()server:octane mrmode=custom mrconfig=... 4. If you use the default location for your mrconfig file (the /usr/local/boot/roboinst/custom directory on the same server where the sa file is located) then you can omit the mrconfig=server:/dir argument entirely: bootp()server:o2 mrmode=custom Note: if you are performing disk partitioning, you will have to add the disksetup=true argument if the swap partition has not already been moved to the beginning of the disk (see above.) EXAMPLES A set of roboinst examples can be obtained by installing the optional subsystem roboinst.sw.examples using inst(1M) or Software Manager(1M). NOTES roboinst requires a software license in order to operate. Please refer to the roboinst release notes for more information on how to obtain and install software licenses; the release notes are in the roboinst.man.relnotes subsystem. roboinst_start and roboinst_check are called by roboinst to perform various parts of the automatic installation process, do not run either directly. roboinst_start will fail if there is no space in $TMPDIR (/tmp) to create temporary configuration files. FILES /var/adm/roboinst/host File indicating queued status of roboinst for the specified host(s). /var/inst/.roboinst_status A checkpoint file which indicates the loghost and the current state of automatic installation. bootserver:/bootfile The file the host loads when restarting to automatic installation mode, usually the sa file that contains the miniroot. configserver:/usr/local/boot/roboinst The host and directory which contains the configuration files for automatic installations. configdir/mrconfig The configuration file which specifies automatic installation options. /usr/share/src/RoboInst/* RoboInst examples. SEE ALSO roboinst_config(1M), at(1), inst(1M), bootp(1M), dks(7M), dhcp_bootp(1M), inetd(1M), nvram(1M), rsh(1C), shutdown(1M), prom(1M), and the online book IRIX Admin: Software Installation and Licensing. BUGS The new options (-N, -s and -m) are not recognized and the roboinst will fail if the client has an older version of roboinst.sw.client installed. However, roboinst attempts to detect this and, if given the -f option, will attempt to install the most recent version on the client.