Came across an intriguing problem today. Whilst trying to develop a generic Solaris PXE boot solution for x86 Solaris installs I was having a problem with enabling NIS post install.

Having chosen to use a very stripped out sysidcfg, with no name services, enabling NIS after installation should have been as simple as setting up the ypservers, nsswitch.conf and hosts files, then starting the svc:/network/nis/client SMF service.

This last point can be achieved with a site.xml file, which is processed by SMF on boot to make any changes to services listed in it. So I had an enabled svc:/network/nis/client in there, but it was never starting.

Running svccfg apply site.xml after boot would happily start the service as I intended. Then a colleague discovered this thread on OpenSolaris.org.

It would appear that svc:/system/manifest-import:default is run before svc:/system/sysidtool:system, which entails a sysidcfg setting overriding the master override site.xml! Well done Sun.

In summary, sysidtool:system checks how the system was configured with sysidcfg and if no name services were listed it applies an SMF manifest with all name services set to disabled. Since it runs after manifest-import though, anything you configure in site.xml gets overwritten.

I think this is backwards logic, as the site.xml file is supposed to be an override, and in my mind should be applied last.

There's a dirty fix listed in the OpenSolaris thread mentioned above, and I chose to take that route too. During JumpStart I simply move the /var/svc/profile/ns_none.xml file out of the way (I actually rename it), then it can't get applied.


Comments

comments powered by Disqus