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