PDA

View Full Version : PATCH: Adding unique hostname generation with cheatcode



firnsy
12-01-2005, 11:09 AM
PATCH: Adding unique hostname generation with cheatcode

Change Log:
* Version 1.0 - Fri Jan 20, 2006
Added /etc/hosts modification

* Version 1.0 - Thu Dec 01, 2005
Initial design

Disclaimer:
Always needed cause you just never know how people will interpret things. Please people, use this at your own risk. Whilst this method has and continues to work for me, I will not be held responsible for anything that might go wrong, due to an ommision or typo in this document. I too, like you, am human and do make mistakes.

Preface:
This howto assumes an intermediate level of knowledge for bash scripting and knoppix remastering. It was posted becuase a few people asked for an example. There are many ways to do this, and this for the moment satisfies my needs. Note: It may not satisfy yours.

Modification:
To achieve this I modify knoppix-autoconfig in the source directory of the remaster. By default the hostname is set to "Knoppix" by the command at line 493.


hostname "Knoppix"

I replace this line with the following (# Heavily commented for the unsure)


# If booting live and not from an install
if [ -z "$INSTALLED" ]
then

# Check if the hostname cheatcode was passed at the boot prompt
if checkbootparam "hostname"
then

# Grab the value passed with the "hostname" cheatcode
HN="$(getbootparam 'hostname')"

# If it was auto
if [ "$HN" = "auto" ]
then

# Generate the hostname as "Knoppix" and append the Mac Address of eth0
HN="Knoppix-$(ifconfig eth0 | grep HWaddr | awk '{print $5}' | sed s/://g)"
fi

# If no "hostname" cheatcode was supplied then use default "Knoppix"
else
HN="Knoppix"
fi

# If running from a HDD install then grab the hostname from the file /etc/hostname
else
# Get the default hostname from HDD
HN="$(cat /etc/hostname)"
fi

# Update /etc/hostname and /etc/hosts (/etc is writeable live boot, or hdd boot)
echo $HN > /etc/hostname
sed -i s/^127\.0\.0\.1.*/127\.0\.0\.1\t$HN\ localhost/ /etc/hosts

# Set the hostname
hostname $HN


Usage:
If it is not apparent this script will provide some flexability, allowing default, explicit or auto generation of the hostname.

Example of default generation (no "hostname" cheatcode supplied):

boot: knoppix
The hostname for this example is "Knoppix"

Example of explicit generation ("hostname" cheatcode supplied with arbitrary name)

boot: knoppix hostname=computer_1
The hostname for this example is "computer_1"

Example of auto generation ("hostname" cheatcode supplied with "auto" name)

boot: knoppix hostname=auto
The hostname for this example is "Knoppix-MACADDRESS"

Closing:
Please feel free to use and modify this code as you see fit, it can be made more generic, which I will get around to when the need arises. Please let me know if you have any suggestions or improvements.