Variables
The following Variables do exist in FAI (example values included):
Please do not edit that much, without contacting Mrfai. Currently it's my private list of variable and comments.
type: int = internal use only; CS used in config space (often defined by *.var)
Which variables are needed inside the nfsroot, so the install clients can use them? (maybe write them into fai-client.var or nfsroot.var). Then do not copy fai.conf into the nfsroot any more.
name | type | example value | created by | used by | comments | |
---|---|---|---|---|---|---|
BROADCAST | 192.168.0.127 | get-boot-info | scripts/FAIBASE/30-interface | |||
DNSSRVS | 192.168.1.16 | get-boot-info | create_resolv_conf | |||
DNSSRVS_1 | 192.168.1.16 | get-boot-info | first element of DNSSRV | |||
DOMAIN | workgroup.de | get-boot-info | task_setup() task_prepareapt() | |||
NETMASK | 255.255.255.128 | get-boot-info | ||||
NETWORK | 192.168.0.0 | get-boot-info | ||||
IPADDR | 192.168.0.14 | get-boot-info | ||||
GATEWAYS | 192.168.0.1 | get-boot-info | ||||
GATEWAYS_1 | 192.168.0.1 | get-boot-info | ||||
SERVER | kueppers | get-boot-info | ||||
-- | ||||||
DEBIAN_FRONTEND | int | noninteractive | dpkg -i | |||
do_init_tasks | int | boolean | fai, task_confdir(), prcopyleft() | 1 if doing net or CD installations | ||
-- | ||||||
FAI | /var/lib/fai/config | fai.conf | almost every function | |||
FAI_ETC_DIR | /etc/fai | fai -c | make-fai-nfsroot, fai-mirror, fai-cd, task_prepareapt, fai_init() | |||
FAI_ACTION | install, sysinfo, softupdate | fai-chboot via kernel command line | save_log_local() save_log_remote_shell() save_log_remote() get_bootp_info() task_action(), fai-savelog-ftp, updatebase | |||
FAI_FLAGS | 'createvt sshd' | kernel command line, fai-chboot | define_fai_flags() | rename flags, e.g $flag_sshd | ||
FAI_CONFIG_SRC | nfs://faiserver/srv/fai/config | make-fai-nfsroot | get-config-dir | m-f-n writes its value to $NFSROOT/etc/fai/fai.conf | ||
FAI_LOCATION | faiserver:/srv/fai/config | make-fai-nfsroot | get_bootp_info() get_fai_dir() get_fai_cvs() | replaced by FAI_CONFIG_SRC | ||
FAI_LOGPROTO | ftp | fai.conf | fai-setup, save_log_remote() | replaces FAI_REMOVECP and FAI_REMOTESH, may be removed from fai.conf, should be defined in class/*.var, but fai-setup needs this too, maybe add option to fai-setup that determines if ssh/rsh should be set up | ||
FAI_ROOT | const | /target | bin/fai | almost every script | $target has the same value | |
fai_rundate | int | 20060123_163824 | task_setup() | fai-savelog | ||
FAI_VERSION | const | FAI 3.2 | fai, prcopyleft() | |||
FAI_CONFIGDIR | int | /srv/fai/config | make-fai-nfsroot.conf | *.postinst, fai-setup, fai-cd, fai-mirror, make-fai-nfsroot | ||
HOSTNAME | demohost | very often | may the hostname change during installtion? Is the hostname FQDN in some cases? numeric hostname if host-decl-name off in dhcpd.conf | |||
HOSTTYPE | int | x86_64 | bash variable | prcopyleft | ||
FAI_ALLOW_UNSIGNED | *.var | prepareapt | allow installation of packages from unsigned repositories | |||
LOGDIR | /tmp/fai | fai | very often | |||
LOGPASSWD | CS | *.var | fai-savelog-ftp | moved from fai.conf to CS | ||
LOGREMOTEDIR | CS | upload | *.var | fai-savelog-ftp | moved from fai.conf to CS | |
LOGSERVER | CS | *.var | fai-savelog, fai-savelog-ftp | default: LOGSERVER=$SERVER, moved from fai.conf to CS | ||
LOGUSER | fai | fai.conf | fai-setup, fai-savelog, fai-savelog-ftp,task_chboot() | default: LOGUSER= will disable logging | ||
MNTPOINT | /media/mirror | make-fai-nfsroot, fai-mirror, task_mirror() | influences entries in sources.list, may become a fixed path | |||
NFSROOT | /srv/fai/nfsroot/ | make-fai-nfsroot.conf | fai-setup, make-fai-nfsroot, fai-cd, fai-mirror, make-fai-bootfloppy | not needed in $NFSROOT, only needed on the install server | ||
STOP_ON_ERROR | int | 99999 | *.var | task_error() | errors greater STOP_ON_ERROR will cause fai to stop the installation | |
TFTPROOT | /srv/tftp/fai | make-fai-nfsroot.conf | make-fai-nfsroot, fai-chboot | not needed in $NFSROOT, only needed on the install server | ||
PATH | int | /usr/local/sbin:... | fai | |||
SERVERINTERFACE | eth0 | make-fai-nfsroot.conf | fai-setup | used to specify interface when building exportfs line, only needed when install server has multiple interfaces | ||
FAI_DEBMIRROR | $mirrorhost:/srv/debmirror | fai.conf | move to make-fai-nfsroot.conf, but needed in $NFSROOT/../fai.conf | |||
-- | ||||||
HOST | demohost | given on kernel command line | can redefine host name | |||
cfclasses | int | DEFAULT.LINUX.LAST | task_defclass() | cfagent scripts | ||
classes | int | DEFAULT LINUX LAST | task_defclass() | almost every script | ||
device_size | int | 'sda 71687372' | set_disk_info() | all disks and their sizes; may become local variable | ||
disklist | int | sda | set_disk_info() | setup_harddisks, fai-mount-disk | ||
faimond | int | 0 | determines if faimond is running, merge $faimond and $monserver | |||
monserver | kueppers | task_confdir | sndmon() | default: monserver=$SERVER, may be removed, but must be set very early (e.g in fai.conf) | ||
ip | int | dhcp | fai-chboot via kernel append parameter | get-boot-info | ||
-- | ||||||
netdevices | int | eth0 | get-boot-info | get-boot-info, task_sysinfo, dhclient-fai-script | ||
netdevices_all | int | eth0 eth1 | get-boot-info | get-boot-info, task_sysinfo | ||
netdevices_up | eth0 | get-boot-info | get-boot-info, task_sysinfo | |||
nfsroot | int | /srv/fai/nfsroot/ | fai-chboot via kernel append parameter | kernel | may contain server's IP address, may contain nfs parameters like: v2,rsize=32768,wsize=32768 | |
renewclass | int | boolean | task_defclass() | on softupdate recalculate the list of classes, unset after use | ||
romountopt | int | -o async,noatime,ro | unset after use | |||
sndhostname | task_confdir() | sndmon() | sndhostname=$HOSTNAME; client's hostname, do not replace with $HOSTNAME, since HOSTNAME may change during installation | |||
flag_sshd | int | boolean | define_fai_flags() | |||
flag_createvt | int | boolean | define_fai_flags() | |||
task_error | int | integer | every task can set it | formerly $terror | ||
target | /tmp/target | same as $FAI_ROOT | ||||
ROOTCMD | 'chroot /tmp/target' | almost every script | ||||
stamp | int | ..._IN_PROGRESS |
| |||
CONSOLEFONT | CS | class/*.var | ||||
KEYMAP | CS | de | class/*.var | |||
BOOT_PARTITION | CS | /dev/sda1 | setup_harddisks | grub/menu.lst/postinst | ||
ROOT_PARTITION | CS | /dev/sda1 | setup_harddisks | LILO/20-create-liloconf | ||
UTC | CS | yes | class/*.var | example/simple/scripts | ||
TIMEZONE | CS | Europe/Berlin | class/*.var | example/simple/scripts | ||
liloappend | CS | class/*.var | 20-create-liloconf | |||
MODULESLIST | CS | psmouse | class/*.var | scripts/FAIBASE/10-misc | ||
MAXPACKAGES | CS | 300 | install_packages | limit the number of packages install added to apt-get or aptitude | ||
USE_SETUP_STORAGE | CS | 1 | *.var | when set to 1, FAI will use the new partition tool setup-storage | ||
FAI_BACKUPDIR | CS | *.var | fcopy | directory used bu fcopy for backup files |
Variables that are unused since 3.x versions of FAI:
name | type | example value | created by | used by | comments |
---|---|---|---|---|---|
FAI_REMOTECP | scp | fai.conf | fai-savelog | replaced by FAI_LOGPROTO | |
FAI_REMOTESH | ssh | fai.conf | fai-savelog, task_chboot() | replaced by FAI_LOGPROTO | |
diskvar | int | $LOGDIR/disk_var.sh | removed, replace with "$LOGDIR/diskvar" | ||
lpipe | int | /tmp/fai/logfifo | variable removed, try to remove the ugly hack using it | ||
FAI_BOOT | dhcp bootp | make-fai-nfsroot | removed from fai.conf, now using default value, BOOTP is not supported any more | ||
DNSDOMAIN | workgroup.de | task_setup() | removed | ||
installserver | kueppers | fai.conf | only for building FAI_LOCATION | removed | |
mirrorhost | 192.168.0.8 | fai.conf | make-fai-nfsroot.conf,$FAI_DEBOOTSTRAP, $FAI_DEBMIRROR, NFSROOT_ETC_HOSTS | removed | |
fstab | int | fstab | was used for solaris, fstab -> vfstab | removed | |
VIDEODRIVER | CS | mga | 20-hwdetect.source | scripts/DEMO/10-misc | removed with Xorg |
useful oneliners
find all files not under a ".svn" directory and replace the string '$diskvar' with '$LOGDIR/diskvar'
Test:
find -name '.svn' -prune -o -type f -exec perl -n -e 's/\$diskvar/\$LOGDIR\/diskvar/g && print' {} \;
find -name '.svn' -prune -o -type f -exec perl -p -e 's/\$diskvar/\$LOGDIR\/diskvar/g' {} \; | less
Really replace: ( same, but "i" added )
find -name '.svn' -prune -o -type f -exec perl -pi -e 's/\$diskvar/\$LOGDIR\/diskvar/g' {} \;
More info:
perldoc perlrun
man find