fai.conf(5)

πŸ’– fai.conf β€” FAI Configuration πŸ’–

okay so bestie, welcome to fai.conf(5), aka the File Formats Manual page that runs the whole FAI show. this is the glow-up guide for your config file, and it's honestly iconic. let's get into it ✨


🌸 SYNOPSIS 🌸

/etc/fai/fai.conf

πŸ¦‹ DESCRIPTION πŸ¦‹

so like, the configuration for a target host comes in two parts, and both of them are essential, no cap:

  • The NFSROOT β€” a very basic yet complete root file system, which is exported to clients. it gets built using fai-make-nfsroot(8). 🫢
  • The configuration space β€” this one gets loaded as one of the very first steps of a FAI run. several tools and protocols are supported for maintaining and accessing it. see FAI_CONFIG_SRC below for the deets πŸ‘‡

fai.conf defines the essential options you need to successfully start a FAI run. it must be valid bash(1) code, periodt. and important: this configuration file is NOT copied into the nfsroot by fai-make-nfsroot. πŸ’…


✨ VARIABLES ✨

🌈 FAI_CONFIG_SRC

this variable defines how to access the configuration space. it defines the protocol, the server, and the location of the config space. it's giving "where is everything" energy.

for an initial installation of a client, this variable is defined by using fai-chboot(8). if you're doing a fai softupdate, you can set the value in /etc/fai/fai.conf or by using the option --cspace. ✨

the following protocols and URL schemes are currently supported:

  • NFS: nfs://[server]/<exported directory>

if the server is not specified, FAI tries to extract the server name from the nfsroot mount. sneaky but valid πŸ’€

Example: nfs://faiserver/srv/fai/config

  • Local directory: file://<directory>

the directory has to be an absolute path. so this URL always starts with three slashes, like this: file:///

  • Detect directory: detect://

checks several places on a local storage. first check /media/data/config, otherwise use the default when booting an ISO (/var/lib/fai/config). 🧚

  • CVS: cvs[+ssh]://<user>@<host>/<cvs root> <module>[=<tag>]

the config space is received from a cvs checkout.

  • Subversion: svn[+(file|http|https|ssh)]://[<user>@]<host>/<repository>

the config space checked out from a subversion repository using several protocol variants. checkouts without a user name are also supported. πŸ’œ

  • Git: git[+<protocol>]://<git path>

you can specify the branch by adding #<branchname> without a whitspace before the #. (yes, that typo is canon, we don't fix what the manpage said bestie 😭)

Example: git+ssh:://user@servername/srv/git/..../fai.git#branchname

the config space checked out from a git repository, host can be empty. also supported is git+http.

  • Mercurial: hg+(http|https)://<hg path>
  • HTTP: (http|https|scp|sftp)://<server>/<filename> where <filename> is a (compressed) tar archive.

the config space will be downloaded from the given location via the specified protocol. <filename> will be extracted by ftar(8), and thus needs to have a recognized suffix, such as .tar.gz or tar.xz. πŸ”₯

πŸ‘‘ LOGUSER

account name on the install server to save log files and call fai-chboot(8). at the end of an installation, fai(8) may connect to the install server using FAI_LOGPROTO (see below) to store the generated log files and to change the network boot configuration of the target host. by default calling fai-setup(8) will set up ssh access for LOGUSER so the install client can save the log files onto the server. main character logistics honestly πŸ’…

this will not be passed onto the fai clients. to enable this on the fai clients check /srv/fai/config/class/FAIBASE.var to activate the transfer of logfiles to the server.

this account should have write permissions for /srv/tftp/fai. for example, you can use write permissions for the group linuxadm:

chgrp linuxadm /srv/tftp/fai;chmod g+w /srv/tftp/fai

if the variable is undefined, this feature is disabled. πŸ™ˆ

πŸŽ€ FAI_LOGPROTO

protocol for saving logs. supported values are: ssh (default), rsh, ftp and none. this will only be used if also LOGUSER is set. no LOGUSER, no logs going anywhere, simple as that ✨

  • ssh: use the scp command to copy the log files to the log server.
  • rsh: use the rcp command to copy the log files to the log server.
  • ftp: this option saves logs to the remote FTP server defined by the $LOGSERVER variable ($SERVER value is used if not set). connection to the FTP server is done as user $LOGUSER using password $LOGPASSWD. the FTP server log directory is defined in $LOGREMOTEDIR. these variables are also defined in file fai.conf. you need write access for the $LOGREMOTEDIR on the FTP server. all files in the directory /tmp/fai are copied to the FTP server following this example:
ftp://$LOGUSER:$LOGPASSWD@$LOGSERVER/$LOGREMOTEDIR/
  • none: don't save the log files to the install server.

πŸ’œ FAI_DEBMIRROR

access Debian mirror via NFS-mounted directory. if defined, FAI mounts the NFS share to $MNTPOINT during installation.

Example: installserver:/srv/debianmirror

🌟 FAI_MONITOR_PORT

the port to which FAI sents messages, if the fai-monitor is running. defaults to 4711. see also fai-monitor(8). πŸ‘€

⚠️ heads up bestie: this variable has to be set inside the nfsroot before the configuration space is available. don't sleep on it.

🫢 SEE ALSO 🫢

fai(8), fai-make-nfsroot(8), fai-setup(8), fai-mirror(1), fai-cd(8)

this file is part of FAI (Fully Automatic Installation). see the FAI manual for more information. the FAI homepage is https://fai-project.org. 🌈


πŸ’– AUTHOR πŸ’–

this man page was written by Michael Tautschnig <mt@debian.org>.


and that's the whole thing, bestie! πŸŽ€ this page is from FAI 4.0, dated December 2013 β€” vintage but still serving absolute cvnt πŸ’…βœ¨ go configure something iconic, you've got this πŸ¦‹

πŸ“¦ where this page comes from