Manucomp Systems
Hours of Operation

Monday to Friday:
9am - 6pm EST

Saturday & Sunday:

If you would like additional information please contact us toll-free at :


Can't find the product you are looking for?
Request a quote.
NIS and Jumpstart
Back to Sun Tips

NIS and Jumpstart

Once you have JumpStart working, you probably want to bring NIS into the picture, since NIS is widely employed for user authentication and the distribution of system files. The integration of NIS with JumpStart requires some modifications to the default installation of Solaris.

The basic way to tell the client to use NIS to perform the JumpStart installation is to add the option "-n :nis" to the add_install_client command. If you use the hostname of the server, then JumpStart may bomb with the error "ypbind cannot communicate with ypserv on ". So, use the IP address of the server rather than the hostname.

The best way to determine whether you have succeeded (other than the fact that the JumpStart works) is to tell the client not to use the sysidcfg file that you prepared before, and then start the JumpStart and see whether you are prompted to enter any information or if the install proceeds without user intervention (which is the objective, of course). So, do not use the "-p :" option. The complete command would be like the following:

# ./add_install_client -c : -n :nis

As we will see, even if you have configured everything properly, you will nevertheless be prompted for some information if you have decided to use Solaris 2.8, but we will deal with that later. Of course, you must do "cd /var/yp; make bootparams" to push the new map.

Next, you must create the file /etc/timezone. Here is an example:

US/Pacific localdomain

The value "US/Pacific" specifies the timezone (no surprise there) and "localdomain" specifies your NIS domainname from the file /etc/defaultdomain.

You must modify /etc/hosts to add the word "timehost" following the name of your network timeserver. Ensure that the lines for "time" have not been commented out from /etc/inetd.conf on that server. Another way to check whether your timehost works is to telnet to port 37 and check that you see "connection closed by foreign host" rather than "unable to connect to remote host". Once more, cd to /var/yp, and then do "make hosts".

Fortunately, the default Solaris NIS Makefile has instructions for how to make the hosts and timezone maps, but we need to add another map called locale so that the new client will know its locale without prompting us. The source file /etc/locale should look something like the following:

C localdomain

where "localdomain" represents your NIS domainname.

Now backup your current Makefile and add the following section (taken from the Advanced Installation Guide):

locale.time: $(DIR)/locale

-@if [ -f $(DIR)/locale ]; then \

sed -e "/^#/d" -e s/#.*$$// $(DIR)/locale \

| awk '{for (i = 2; i<=NF; i++) print $$i, $$0}' \

| $(MAKEDBM) - $(YPDBDIR)/$(DOM)/locale.byname; \

touch locale.time; \

echo "updated locale"; \

if [ ! $(NOPUSH) ]; then \

$(YPPUSH) locale.byname; \

echo "pushed locale"; \

else \

: ; \

fi \

else \

echo "couldn't find $(DIR)/locale"; \


A word of warning: the Makefile is extremely sensitive to syntax, and any typos or spaces where it expects tabs may cause it to fail. Then add the word "locale" to the "all:" definition and the line "locale: locale.time" below that so that the Makefile knows to use the lines above to make the new map. (You will know where to add these lines when you look over the file.)

To simplify your life, add the following lines to /var/yp/nicknames:

timezone timezone.byname

netmasks netmasks.byaddr

locale locale.byname

If you have done everything correctly, you should be able to cd to /var/yp and do "make all" with no errors.

Now try another "boot net - install". The install should now start successfully, but you will be prompted to enter manually whether or not to use IPv6 and Kerberos. IPv6 and Kerberos are new to Solaris 2.8, and I am not aware of any NIS map capable of propagating information about them to clients. Accordingly, you will have to use a sysidcfg file to tell the client whether or not to use IPv6 or Kerberos. The major disadvantage of the sysidcfg file that we used before is that it specifies the hostname, IP address, and so on of one particular client, and so has to be modified for every new client. For that reason, if we have to use sysidcfg with NIS, we want the sysidcfg file to be as generic and minimal as possible. The following file should work:

network_interface=PRIMARY {protocol_ipv6=no}


You will now have to rerun the "add_install_client" command and restore the "-p :" option to specify the location of the sysidcfg file. As always, cd to /var/yp and execute "make bootparams" afterwards.

If everything has been done correctly, the JumpStart should now complete successfully on the client with no user intervention whatsoever after "boot net - install".