ROCKS FAQs
Introduction
FAQs are divided into groups...
Database management using ROCKS command
Add an appliance
This will add new entries in the membership and appliance tables for the new appliance.
bash-3.00# rocks add appliance fss-dcache compute=no graph=default membership="FS-server-dcache" short-name=fss-dcache node=fss-dache
Client Management
Try ROCKSDEBUG
Some of the ROCKS code will emit debugging info if the environment variable "ROCKSDEBUG" is set:
export ROCKSDEBUG=1
Error Generating Kickstart
kgen XML parse exception: <stdin>:2:0: no element found
Just manually added node without doing "rocks sync config" ?
Change Membership
Use the rocks command. You will likely need to clear partition info from the database as well.
rocks set host membership {host} {membership}
rocks remove host partition {host}
Note if there are partitions on the system, ROCKS will leave them in place during installs. You need to remove them somehow, to get ROCKS to create the new partition scheme. You have to do both, delete partitions on node and remove partitions from database.
Client Installs
Forcing repartitioning
A common reason for install failures is that ROCKS refuses to redo the partitioning or does the partitioning, but then ignores the new partitions.
Try clearing old partition information from the database:
rocks remove host partition {host}
Client Install Errors
Node doesn't reboot at end
It seems that little errors in post sections can result in the minilogd running and not exiting. This prevents the normal reboot at end of install (installer keeps running). Instead of trying to debug problem with post scripts (should be done, but don't have useful error output), simply kill the minilogd. You can logon to the node and run
killall -9 minilogd
, or do this:
mkdir /home/install/site-profiles/4.3/include/installclass
cd /home/install/site-profiles/4.3/include/installclass
cp /home/install/rocks-dist/wan/x86_64/build/include/installclass/base.py .
Then make this change, add the killall at end:
else:
time.sleep(60)
os.kill(pid, 9)
os.system('killall -9 minilogd')
return
Rebuild the dist and base.py will be a link to this modified copy.
Complains that / is not large enough
This is a partitioning problem. Try clearing partitions from database (and possibly) manually blanking the partition table with the dd command.
Installer can't bring up Ethernet
If the Ethernet isn't started right, the kickstart file can't be loaded and you'll land at the "Pick and Language" screen.
If the hardware is new, the install image may not have the right driver. In this case, there will never be a "Requesting IP for Eth0" screen shown. Get a new installer.
If the did see the driver load and try to get an IP for Eth0, you may need to turn-off spanning tree on the switch port(s) that servers the node. The Anaconda installer cycles the Ethernet port up and down rapidly and expects connectivity quickly when the port is brought up. If the switch doesn't activate the port immediately (because it is waiting to check spanning-tree) anaconda may give up. Set the switch port to "edge" mode (spanning-tree off).
Installer doesn't run
Try telling rocks to set the installer as the PXE boot image instead of booting from the harddrive:
rocks set host pxeboot {host} action=install
Frontend Config
Mail relaying through frontend
There are probably a few ways to do this, but if you need your headnode to deliver mail from private IP addresses, you will need to re-write sender addresses. Here's a sample. I believe the only difference from Rocks default is the map statements.
# Rocks Postfix configuration for mail server. /etc/postfix/main.cf
#
mydomain = local
mydestination = $mydomain, $myhostname, localhost.$mydomain
mynetworks = 10.10.0.0/23, 127.0.0.0/8
# inet_interfaces = all
append_dot_mydomain = no
sender_canonical_maps = hash:/etc/postfix/sender-canonical
recipient_canonical_maps = hash:/etc/postfix/recipient-canonical
sender-canonical:
@local @umopt1.aglt2.org
@[10.10.1.3] @umopt1.aglt2.org
recipient-canonical:
root@aglt2.org root
Once files are in place, you need to make the hash: postmap hash:sender-canonical. Restart postfix then. Maybe you can do it without a hash, lookup directly in plain-text files. I've never tried.
--
TomRockwell - 16 Nov 2007