Alok Aggarwal wrote:
> Hi Joe,
> 
> On Fri, 13 Mar 2009, Joseph J VLcek wrote:
> 
>> Alok,
>>
>>  Please advise Regarding bug 5554.
>>
>>  When I helped you merge the AI changes into ICT you had told me not 
>> to alter the /etc/nodename when doing an AI install.
> 
> At the time, we did not support changing the hostname
> in AI (the AI SC manifest had no 'hostname' parameter)
> and so there was no reason to be changing the nodename.
> 
> Even if we did, it seems like a hack at best.
> 
>>  It seems this may not have been the correct thing to do.
>>
>>  Please read William's comment #6 and advise.
> 
> The correct thing to do here would be to infact not
> copy /etc/nodename and /etc/inet/hosts from the
> running system but to get it directly from IPS. And,
> then alter it's contents as part of ict_set_host_node_name().
> 
> Alok


William,

I just spoke to Alok about this. (Thank you Alok.)

A summary:

/etc/inet/hosts is pull from pkg SUNWcs. So the code in ICT should work 
just fine for this file.

/etc/nodename is put into the microroot (boot_archive) by DC in file: 
cmd/distro_const/utils/bootroot_configure

# Set nodename to opensolaris
echo "opensolaris" > $BR_BUILD/etc/nodename

Basically the DC creates the file then for GUI installs ICT modifies the 
file.

The solution Alok and I came up with is to simply have ICT create the 
file for both AI and GUI installs if a hostname is passed down to ICT, 
which would happen if the user provided one.

So the following small change is needed in ICT:
-----------------------------------------------

/usr/src/lib/libict/ict.c

Change from:
------------
         /*
          * Process nodename file.
          *
          * If transfer mode is IPS simply copy the existing file.
          */
         if (transfer_mode == OM_IPS_TRANSFER) {
                 (void) snprintf(cmd, sizeof (cmd), "/bin/cp %s %s%s",
                     NODENAME, target, NODENAME);
                 redirect = B_TRUE;
         } else {
                 (void) snprintf(cmd, sizeof (cmd),
                     "/bin/sed -e 's/%s/%s/g' %s >%s%s",
                     DEFAULT_HOSTNAME, hostname, NODENAME, target, 
NODENAME);
                 redirect = B_FALSE;
         }

Change To:
----------
         /*
          * Process nodename file.
          *
          * If transfer mode is IPS simply copy the existing file.
          */
         (void) snprintf(cmd, sizeof (cmd), "/bin/echo %s > %s%s",
             hostname, target, NODENAME);
         redirect = B_FALSE;




Joe

Reply via email to