When Solaris 11 was released more configurations were moved into the service management framework, and moved out of configuration files, one of these changes was the hostname/nodename.

View Hostname in SMF

This will read back the configuration out of the SMF.

bash
svccfg -s system/identity:node listprop config
config           application
config/nodename astring     solaris11box
config/loopback astring     solaris11box

Change Hostname in SMF

We have two separate settings, which need to be updated.

bash
svccfg -s system/identity:node setprop config/nodename = astring: newname
svccfg -s system/identity:node setprop config/loopback = astring: newname

Review the Changes

bash
svccfg -s system/identity:node listprop config
config           application
config/nodename astring     newname
config/loopback astring     newname

Restart the Service to Reflect Changes

The system is now aware of the change, however it doesn’t use the change until the next reboot.  We can accelerate this by restarting the system/identity:node service.

bash
svccfg -s system/identity:node refresh
svcadm restart system/identity:node

This will then show a system message reflecting the new hostname, to see the change in your shell prompt, you can spin off a child bash shell.  You can also use the hostname command to view the current hostname.

UPDATEDecember 30, 2012

Included an update based on Mark’s comment below to account for the refresh which needs to take place.