Variables: Difference between revisions

From FAIWiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(125 intermediate revisions by 7 users not shown)
Line 1: Line 1:
The following Variables do exist in FAI (example values included):
The following Variables do exist in FAI (example values included):


BASH=/bin/bash
Please do not edit that much, without contacting Mrfai. Currently it's
BASH_VERSION='2.05b.0(1)-release'
my private list of variable and comments.
BOOT_DEVICE=/dev/sda
 
BOOT_IMAGE=workgroup.opteron
type: int = internal use only; CS used in config space (often defined by *.var)
BOOT_PARTITION=/dev/sda1
 
BROADCAST=192.168.0.127
Which variables are needed inside the nfsroot, so the install clients
COLOR_FAI_LOGO=1
can use them? (maybe write them into fai-client.var or
CONSOLE=/dev/console
nfsroot.var). Then do not copy fai.conf into the nfsroot any more.
DEBIAN_FRONTEND=noninteractive
 
DIRSTACK=()
{|border=1 class="wikitable sortable"
DNSDOMAIN=workgroup.uni-jena.de
!name!!type!!default value!!example value!!created by!!used by !!comments
DNSSRVS=192.168.1.16
|-
DNSSRVS_1=192.168.1.16
| -- || |||| || || ||
DOMAIN=workgroup.uni-jena.de
|-
DO_INIT_TASKS=1
|FAI_CONFIG_SRC||||||nfs://faiserver/srv/fai/config||different sources||get-config-dir|| fai-chboot -u, fai -s
FAI=/fai
|-
FAI_ACTION=install
|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_CONSOLEFONT=
|-
FAI_FLAGS='createvt sshd'
|FAI_SENDID||||||mac|| kernel command line, fai-chboot ||task_confidir|| ID which is sent to fai monitor: host, mac or pxe
  FAI_KEYMAP=de
|-
FAI_LOCATION=192.168.0.8:/usr/share/fai
| -- || |||| || || ||
FAI_LOGPROTO=
|-
FAI_REMOTECP=scp
|FAI||||||/var/lib/fai/config||[[fai.conf]]||''almost every function''||location of the CS on the client||
FAI_REMOTESH=ssh
|-
FAI_ROOT=/tmp/target
|LOGUSER|||||| fai ||[[fai.conf]] ||[[fai-setup]], fai-savelog, fai-savelog-ftp,task_chboot()||empty LOGUSER will disable logging
FAI_RUNDATE=20060123_163824
|-
FAI_VERSION='FAI 2.8.4, 25 May 2005'
|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
FUNCNAME=task_defvar
|-
GATEWAYS=192.168.0.1
|TFTPROOT||||||/srv/tftp/fai||[[nfsroot.conf]] || [[fai-make-nfsroot]], [[fai-chboot]] || not needed in $NFSROOT, only needed on the install server
GATEWAYS_1=192.168.0.1
|-
GROUPS=()
|FAI_CONFIGDIR||||||/srv/fai/config||[[nfsroot.conf]]||*.postinst, [[fai-setup]], [[fai-cd]], [[fai-mirror]], [[fai-make-nfsroot]] ||configs space on the server||
HOSTNAME=192.168.0.14
|-
  HOSTTYPE=x86_64
|FAI_ALLOW_UNSIGNED||CS|||| 1 ||class/*.var||prepareapt||allow installation of packages from unsigned repositories
IFS=$' \t\n'
|-
INIT_VERSION=sysvinit-2.86
|FAI_BASEFILEURL||CS||||https://fai-project.org/download/basefiles/ ||class/*.var|| task extrbase||download base.tar.xz using a class name via HTTP or FTP
INSTALL=all-install
|-
IPADDR=192.168.0.14
|LOGDIR||||||/tmp/fai|| fai ||''very often''|| mostly set to /var/log/fai/$HOSTNAME/....||
LOGDIR=/tmp/fai
|-
LOGPASSWD=
|LOGPASSWD||CS|||| || class/*.var ||fai-savelog-ftp|| moved from fai.conf to CS
LOGREMOTEDIR=upload
|-
LOGSERVER=
|LOGREMOTEDIR||CS||||upload|| class/*.var||fai-savelog, fai-savelog-ftp || moved from fai.conf to CS
LOGUSER=
|-
MACHTYPE=x86_64-pc-linux-gnu
|LOGSERVER||CS|||| || class/*.var || fai-savelog, fai-savelog-ftp|| default: LOGSERVER=$SERVER, moved from fai.conf to CS
MNTPOINT=/mnt2
|-
NETMASK=255.255.255.128
|MNTPOINT||||||/media/mirror||||[[fai-make-nfsroot]], [[fai-mirror]], task_mirror()|| influences entries in sources.list, may become a fixed path
NETWORK=192.168.0.0
|-
OLDPWD=/
|STOP_ON_ERROR|||||| 99999 || class/*.var || task_error() || errors greater STOP_ON_ERROR will cause fai to stop the installation
OPTERR=1
|-
OPTIND=1
|SERVERINTERFACE||||||eth0|| [[nfsroot.conf]]|| [[fai-setup]]|| used to specify interface when building exportfs line, only needed when install server has multiple interfaces
OSTYPE=linux-gnu
|-
OS_TYPE=linux
|FAI_DEBMIRROR|||||| $mirrorhost:/srv/debmirror||[[fai.conf]]|| || move to nfsroot.conf, but needed in $NFSROOT/../fai.conf
PATH=/usr/local/sbin:/usr/local/bin:/usr/lib/fai:/bin:/sbin:/usr/bin:/usr/sbin:
|-
PIPESTATUS=([0]="0")
|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)
PREVLEVEL=N
|-
PS4='+ '
|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)
ROOTCMD='chroot /tmp/target'
|-
ROOT_PARTITION=/dev/sda1
| duration || int |||| || || if set to 1 every task prints its execution time||
RUNLEVEL=S
|-
SERVERINTERFACE=eth0
| -- || || || || ||
SHELL=/bin/bash
|-
SHLVL=1
|target||||||/target|| || || same as $FAI_ROOT
TEMP=' --'
|-
TERM=linux
|ROOTCMD||||||'chroot /tmp/target'||||''almost every script''||
UTC=yes
|-
addpackages=
|FAI_RUNDIR||||||cwd where fai was called||fai||scripts/LAST/50-misc||used for copying the kernel and initrd to the outside world
backup=true
|-
bserver=watchtower
|CONSOLEFONT||CS|||| ||class/*.var || ||
cfclasses=DEFAULT.AMD64.LINUX.BOOT.WORKGROUP.CLUSTERMASTER.all-install.SCSI.GRUB.OPTERON.141.LAST
|-
classes=$'DEFAULT\nAMD64\nLINUX\nBOOT\nWORKGROUP\nCLUSTERMASTER\nall-install\nSCSI\nGRUB\nOPTERON\n141\nLAST'
|KEYMAP||CS||||de||class/*.var||||
console=tty0
|-
createvt=1
|SS_IGNORE_VG|| ||||vg1 vg2|| setup-storage ||used by fai-disimage||
device_size='sda 71687372'
|-
disklist=sda
|BOOT_PARTITION||CS||||/dev/sda1|| setup-storage ||grub/menu.lst/postinst||
diskvar=/tmp/fai/disk_var.sh
|-
faimond=0
|ROOT_PARTITION||CS||||/dev/sda1||setup-storage ||LILO/20-create-liloconf||
files=/fai/files
|-
force=true
|UTC||CS||||yes||class/*.var || example/simple/scripts||
fstab=fstab
|-
hdparm=
|TIMEZONE||CS||||Europe/Berlin|| class/*.var || example/simple/scripts ||
hserver=watchtower
|-
ip=dhcp
|MODULESLIST||CS||||psmouse||class/*.var ||scripts/FAIBASE/10-misc||
kernelimage=kernel-image-2.6.14.0.3_amd64.deb
|-
kernelversion=2.6.14
|MAXPACKAGES||CS||||300||||fai-mirror, install_packages || limit the number of packages installed in one run
liloappend=
|-
lpipe=/tmp/fai/logfifo
|FAI_DISABLE_PACKAGE_NAME_CHECK||CS|||||||| install_packages || does the same as -N
mirrorhost=192.168.0.8
|-
moduleslist=psmouse
|FAI_BACKUPDIR||CS||||||class/*.var ||[[fcopy]]|| directory used by fcopy for backup files
moduleslog=/tmp/fai/modules.log
|-
monserver=
|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
netdevices=eth0
|-
netdevices_all=$'eth0\neth0\neth1\neth1\neth0\neth0\neth0 eth0 eth1'
| -- || |||| || || ||
netdevices_up=eth0
|-
  nfsroot=192.168.0.12:/usr/lib/fai/nfsroot-amd64/
|-
noexec=off
|FAI_ETC_DIR ||int||/etc/fai|||/etc/fai||fai -C|| [[fai-make-nfsroot]], [[fai-mirror]], [[fai-cd]], [[fai]] via fai_init() -> /usr/lib/fai/subroutines (task_debconf, task_repository) ||
  printers=lw
|-
rcslog=/tmp/fai/fai.log
|FAI_ROOT||const||||/target||bin/fai||''almost every script''|| directory where the new system will be installed to, $target has the same value
renewclass=1
|-
  romountopt='-o async,noatime,nolock,ro,actimeo=1800'
|APTPROXY|| ||||http://127.0.0.1:3142||set by admin on cmdline or CS ||[[fai-make-nfsroot]], updatebase.DEBIAN||
rundir=/var/run/fai
|-
sndhostname
|fai_rundate||int||||20060123_163824||task_setup()||fai-savelog||
sshd=1
|-
stamp=/var/run/fai/FAI_INSTALLATION_IN_PROGRESS
|FAI_VERSION||const||||FAI 5.3||||[[fai]], prcopyleft()||
target=/tmp/target
|-
taskname=defvar
|HOST|||||| demohost || given on kernel command line || || can redefine host name
terror=0
|-
time_zone=Europe/Berlin
|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
|-
|cmdlineclasses|| |||| || fai -c || task_defclass()||
|-
|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 4.0 versions of FAI:
 
{|border="1" class="wikitable sortable"
!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 ==
* [https://lists.uni-koeln.de/pipermail/linux-fai/2010-February/007684.html "Re: How to use task_error ? (Writing pretty hooks)"] (discussion on linux-fai mailing list, 04-Feb-2010)
 
 
[[Category:Development]]
[[Category:User Manual]]
[[Category:Tutorial]]

Latest revision as of 09:55, 12 February 2020

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 default value 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 https://fai-project.org/download/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
FAI_RUNDIR cwd where fai was called fai scripts/LAST/50-misc used for copying the kernel and initrd to the outside world
CONSOLEFONT CS class/*.var
KEYMAP CS de class/*.var
SS_IGNORE_VG vg1 vg2 setup-storage used by fai-disimage
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_DISABLE_PACKAGE_NAME_CHECK CS install_packages does the same as -N
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 /etc/fai fai -C fai-make-nfsroot, fai-mirror, fai-cd, fai via fai_init() -> /usr/lib/fai/subroutines (task_debconf, task_repository)
FAI_ROOT const /target bin/fai almost every script directory where the new system will be installed to, $target has the same value
APTPROXY http://127.0.0.1:3142 set by admin on cmdline or CS fai-make-nfsroot, updatebase.DEBIAN
fai_rundate int 20060123_163824 task_setup() fai-savelog
FAI_VERSION const FAI 5.3 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
cmdlineclasses fai -c task_defclass()
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 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