Variables

From FAIWiki
Revision as of 12:00, 26 October 2015 by Mrfai (talk | contribs) (fix FAI_CONFIG_SRC)
Jump to navigation Jump to search

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
--
FAI_CONFIG_SRC nfs://faiserver/srv/fai/config different sources get-config-dir fai-chboot -u, fai -s
FAI_ACTION install, sysinfo, softupdate, inventory 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_SENDID mac kernel command line, fai-chboot task_confidir ID which is sent to fai monitor: host, mac or pxe
--
FAI /var/lib/fai/config fai.conf almost every function location of the CS on the client
LOGUSER fai fai.conf fai-setup, fai-savelog, fai-savelog-ftp,task_chboot() empty LOGUSER will disable logging
NFSROOT /srv/fai/nfsroot/ nfsroot.conf fai-setup, fai-make-nfsroot, fai-cd, fai-mirror, make-fai-bootfloppy not needed in $NFSROOT, only needed on the install server
TFTPROOT /srv/tftp/fai nfsroot.conf fai-make-nfsroot, fai-chboot not needed in $NFSROOT, only needed on the install server
FAI_CONFIGDIR /srv/fai/config nfsroot.conf *.postinst, fai-setup, fai-cd, fai-mirror, fai-make-nfsroot configs space on the server
FAI_ALLOW_UNSIGNED CS 1 class/*.var prepareapt allow installation of packages from unsigned repositories
FAI_BASEFILEURL CS http://faiserver/basefiles. class/*.var task extrbase download base.tar.xz using a class name via HTTP or FTP
LOGDIR /tmp/fai fai very often mostly set to /var/log/fai/$HOSTNAME/....
LOGPASSWD CS class/*.var fai-savelog-ftp moved from fai.conf to CS
LOGREMOTEDIR CS upload class/*.var fai-savelog, fai-savelog-ftp moved from fai.conf to CS
LOGSERVER CS class/*.var fai-savelog, fai-savelog-ftp default: LOGSERVER=$SERVER, moved from fai.conf to CS
MNTPOINT /media/mirror fai-make-nfsroot, fai-mirror, task_mirror() influences entries in sources.list, may become a fixed path
STOP_ON_ERROR 99999 class/*.var task_error() errors greater STOP_ON_ERROR will cause fai to stop the installation
SERVERINTERFACE eth0 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 nfsroot.conf, but needed in $NFSROOT/../fai.conf
monserver kueppers task_confdir sendmon() name of host where faimond is running. default: monserver=$SERVER, but must be set before CS is available (e.g in fai.conf, kernel command line)
FAI_MONITOR_PORT 4711 task_confdir sendmon() port of the fai-monitor, must be set before CS is available (e.g in fai.conf inside the nfsroot or on the kernel command line)
duration int if set to 1 every task prints its execution time
--
target /target same as $FAI_ROOT
ROOTCMD 'chroot /tmp/target' almost every script
CONSOLEFONT CS class/*.var
KEYMAP CS de class/*.var
BOOT_PARTITION CS /dev/sda1 setup-storage grub/menu.lst/postinst
ROOT_PARTITION CS /dev/sda1 setup-storage LILO/20-create-liloconf
UTC CS yes class/*.var example/simple/scripts
TIMEZONE CS Europe/Berlin class/*.var example/simple/scripts
MODULESLIST CS psmouse class/*.var scripts/FAIBASE/10-misc
MAXPACKAGES CS 300 fai-mirror, install_packages limit the number of packages installed in one run
FAI_BACKUPDIR CS class/*.var fcopy directory used by fcopy for backup files
FAI_RAMDISKS CS $target/var/lib/dpkg class/*.var mkramdisk a space-separated list of a directories that gets a ramdisks, use NONE to disable this feature
--
FAI_ETC_DIR int /etc/fai fai -c fai-make-nfsroot, fai-mirror, fai-cd, task_prepareapt, fai_init()
FAI_ROOT const /target bin/fai almost every script directory where the new system will be installed to, $target has the same value
fai_rundate int 20060123_163824 task_setup() fai-savelog
FAI_VERSION const FAI 3.2 fai, prcopyleft()
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
disklist int sda set_disk_info() setup-storage, fai-mount-disk
faimond int 0 determines if faimond is running
ip int dhcp fai-chboot via kernel append parameter get-boot-info
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
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 int 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
sendhostname int task_confdir() sendmon() 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
stamp int ..._IN_PROGRESS
DEBIAN_FRONTEND int noninteractive dpkg -i
do_init_tasks int boolean fai, task_confdir(), prcopyleft() 1 if doing net or CD installations
--
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


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
FAI_LOCATION faiserver:/srv/fai/config fai-make-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_REMOTECP 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
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 fai-make-nfsroot removed
DNSDOMAIN workgroup.de task_setup() removed
installserver kueppers fai.conf only for building FAI_LOCATION removed
mirrorhost 192.168.0.8 fai.conf 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


Variables that are unused since 4.0 versions of FAI:

name type example value created by used by comments
FAI_NORAMDISK CS class/*.var mkramdisk if set to 1, no ramdisk will be created
USE_SETUP_STORAGE CS 1 class/*.var when set to 1, FAI will use the new partition tool setup-storage


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' {} \; 

See also