xcat-core/xCAT-server/etc/xcat/postscripts.rules
2008-06-03 14:56:33 +00:00

208 lines
5.2 KiB
Plaintext

# Post Install Scripts
#
# The Post Install Scripts table is a rules-based system for determining
# which install scripts and in what order to execute them.
#
# Rules and actions are formatted:
#
# RULE {
# script [args]
# script [args]
# script [args]
# ...
# }
#
# Rules are defined as VAR=REGEX. Where VAR may be any exported
# environmental variable, ALL, or NODERANGE (special, see below).
#
# Regular expressions (REGEX or regex) are a powerful way to define a match.
# The perl regex engine is used to parse the rules. Please do not confuse
# regex with shell expansion characters.
#
# e.g. compute* does NOT match anything starting with 'compute' as bash
# would. compute.* is the correct regex for a that match. man perlre for
# regex docs. (BTW, regex compute* matches 'comput' with 0 or more 'e's at
# the end.)
#
# There is no need to place beginning and end markers (^$) in your regex.
# They are added automatically.
#
# Actions are defined as: script [optional args]
#
# A special action/script "STOP" will stop processing all rules and exit.
#
# Scripts are run top-down multiples rules can match.
#
# Nesting with () and operators and, or, and not are supported.
#
# The following VARs are exported by xCAT:
#
# OSVER=(rh62|rh70|rh71|rh72|rh73|rh80|suse81|sles8)
# OSVER is the OS that has just been installed. OSVER may be defined by
# regex. (e.g. rh.* is "anything starting with rh")
#
# ARCH=(x86|ia64)
# ARCH is the hardware architecture (uname -m). ARCH may be defined by
# regex.
#
# NODERANGE=(e.g. node1-node10)
# NODERANGE follows the xCAT noderange format as defined by noderange.5
# (man noderange). Regex is supported as part of noderange, however it
# must be prefixed with a '@', e.g. (@node.* is "anything starting with
# node").
#
# ALL (Apply to all)
#
# TABLE:TABLENAME:KEY:FIELD=
#
# The last rule is special and is determined at runtime.
#
# TABLENAME is the name of an xCAT table located in $XCATROOT/etc. You
# may create your own tables.
#
# KEY is the first field of any xCAT table. $NODE is a
# special value for key, usually the key is a fixed name, however many xCAT
# tables start with a node or resource group name.
#
# FIELD is a numeric value for fields associated with KEY. The first field
# is 1. Special names are available (e.g. $nodehm_eth0) and are defined in
# $XCATROOT/lib/functions. Any environmental variable can be used.
#
# e.g.:
#
# TABLE:nodehm.tab:$NODENAME:$nodehm_eth0=e1000
#
# Would only execute scripts where eth0 was defined as e1000 in nodehm.tab
# for any node.
#
# The script $XCATROOT/bin/postage is the master post installation script
# that parses this table and runs the scripts. You can use the script
# $XCATROOT/bin/postrules NODENAME ARCH OSVER to parse this table to test
# your rules.
#
# e.g. postrules node1 x86 rh73
#
# Setup syslog
OSVER=sl[34].* or OSVER=centos.* or OSVER=rh.* or OSVER=sles.* or OSVER=suse.* {
syslog
}
# Setup servicenode
NODERANGE=service {
servicenode
}
# update/add packages
OSVER=sl[34].* or OSVER=centos.* or OSVER=rh.* or OSVER=sles.* or OSVER=suse.* {
updaterpms nodeps
otherrpms
forcerpms
}
# setup NFS mounts
OSVER=sl[34].* or OSVER=centos.* or OSVER=rh.* or OSVER=sles.* or OSVER=suse.* {
nfsmounts
}
# sync clock
OSVER=sl[34].* or OSVER=centos.* or OSVER=rh.* or OSVER=sles.* or OSVER=suse.* {
syncclock
setupntp
}
# Setup PAM
TABLE:noderes:$NODE:access=Y and
(OSVER=sl[34].* or OSVER=centos.* or OSVER=rh.* or OSVER=sles.* or OSVER=suse.*) {
setuppam
}
# Setup PBS
TABLE:noderes:$NODE:pbs=Y and
(OSVER=sl[34].* or OSVER=centos.* or OSVER=rh.* or OSVER=sles.* or OSVER=suse.*) {
openpbs
}
# Setup paths
OSVER=sl[34].* or OSVER=centos.* or OSVER=rh.* or OSVER=sles.* or OSVER=suse.* {
setuppaths
}
# Setup services
OSVER=sl[34].* or OSVER=centos.* or OSVER=rh.* or OSVER=sles.* or OSVER=suse.* {
setupservices
}
# Setup rsh/ssh.
OSVER=sl[34].* or OSVER=centos.* or OSVER=rh.* or OSVER=sles.* or OSVER=suse.* or OSVER=fedora.* {
remoteshell
}
# Enable sysctl
OSVER=sl[34].* or OSVER=centos.* or OSVER=rh.* or OSVER=sles.* or OSVER=suse.* or OSVER=fedora.* {
enablesysreq
}
# Enable debug
OSVER=sl[34].* or OSVER=centos.* or OSVER=rh.* or OSVER=sles.* or OSVER=suse.* {
enabledebug
}
# Setup Myrinet MX
TABLE:noderes:$NODE:install_roll=Y {
setupstage
}
# Re setup syslog, RPM updates may have hosed it.
OSVER=sl[34].* or OSVER=centos.* or OSVER=rh.* or OSVER=sles.* or OSVER=suse.* {
resyslog
}
ALL {
serialconsole
}
#
# Start custom section
#
# Here is a good place to put custom code
#
#
# End custom section
#
# Sync dirs
OSVER=centos.* or OSVER=rh.* or OSVER=sles.* or OSVER=suse.* {
syncdirs
}
# Unmount /post.
ALL {
umountpost
}
# Update remote boot flag. rsh/ssh must be setup first
# unless xcatd is used. To use rsh or ssh, pass as
# option to updateflag else pass xcatd
#
#2nd arg can be Master IP for multiple master IP support.
#
ALL {
updateflag.awk $MASTER 3002
}
# hardcode networking
#OSVER=sl[34].* or OSVER=centos.* or OSVER=rh.* or OSVER=sles.* or OSVER=suse.* {
# hardnis
# hardmodopts options e1000 RxIntDelay=0,0 TxIntDelay=0,0 RxAbsIntDelay=0,0 TxAbsIntDelay=0,0 InterruptThrottleRate=0,0
#}
# SuSE needs an extra reboot.
OSVER=sles.* or OSVER=suse.* {
reboot
}