This shows you the differences between two versions of the page.
— |
fai [2011/10/13 21:55] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== FAI @ grml ====== | ||
+ | |||
+ | ===== Install packages ===== | ||
+ | |||
+ | <code> | ||
+ | aptitude install fai-server fai-doc | ||
+ | </code> | ||
+ | |||
+ | ===== Adjust FAI server ===== | ||
+ | |||
+ | Adjust configuration: | ||
+ | |||
+ | <code> | ||
+ | /etc/fai/fai.conf -> adjust FAI_CONFIGDIR | ||
+ | /etc/fai/make-fai-nfsroot.conf -> adjust NFSROOT and FAI_DEBOOTSTRAP | ||
+ | /etc/fai/apt/sources.list -> adjust mirrors | ||
+ | |||
+ | mkdir -p /grml/fai/config | ||
+ | cp -a /usr/share/doc/fai-doc/examples/simple/* /grml/fai/config/ | ||
+ | </code> | ||
+ | |||
+ | Invoke fai dirinstall: | ||
+ | |||
+ | <code> | ||
+ | mount -o remount,suid,dev,rw /dev/shm | ||
+ | fai -v -cFAIBASE -u grml dirinstall /dev/shm/fai | ||
+ | chroot /dev/shm/fai bash | ||
+ | </code> | ||
+ | |||
+ | ===== Adjust for GRML ===== | ||
+ | |||
+ | Package selection example: | ||
+ | |||
+ | <code> | ||
+ | cd /grml/fai/config/package_config | ||
+ | cat > GRML << EOF | ||
+ | PACKAGES aptitude | ||
+ | |||
+ | vim-full | ||
+ | EOF | ||
+ | </code> | ||
+ | |||
+ | Adjust stuff like TIMEZONE=Europe/Vienna, ROOTPW='x',... for GRML-class: | ||
+ | |||
+ | <code> | ||
+ | cd /grml/fai/config/class | ||
+ | cp FAIBASE.var GRML.var | ||
+ | vim GRML.var | ||
+ | </code> | ||
+ | |||
+ | Execute scripts during fai dir-install: | ||
+ | |||
+ | <code> | ||
+ | cd /grml/fai/config/scripts/ | ||
+ | mkdir GRML | ||
+ | cat > 10-helloworld << EOF | ||
+ | #!/bin/sh | ||
+ | echo Hello World | ||
+ | EOF | ||
+ | chmod 755 10-helloworld | ||
+ | </code> | ||
+ | |||
+ | Don't forget to invoke fai with GRML class: | ||
+ | |||
+ | <code> | ||
+ | fai -v -cFAIBASE,GRML -u grml dirinstall /dev/shm/fai | ||
+ | </code> | ||
+ | |||
+ | Check log files of GRML: | ||
+ | |||
+ | <code> | ||
+ | root@grml ~log/fai/dirinstall/grml # l | ||
+ | total 204 | ||
+ | -rw-r--r-- 1 root root 235 2007-08-26 11:20 cfagent.log | ||
+ | -rw-r--r-- 1 root root 1255 2007-08-26 11:19 debconf.log | ||
+ | -rw-r--r-- 1 root root 40393 2007-08-26 11:19 debconf.new | ||
+ | -rw-r--r-- 1 root root 40393 2007-08-26 11:19 debconf.old | ||
+ | -rw-r--r-- 1 root root 54444 2007-08-26 11:20 fai.log | ||
+ | -rw-r--r-- 1 root root 33 2007-08-26 11:20 fcopy.log | ||
+ | -rw-r--r-- 1 root root 971 2007-08-26 11:20 shell.log | ||
+ | -rw-r--r-- 1 root root 36375 2007-08-26 11:20 software.log | ||
+ | -rw-r--r-- 1 root root 156 2007-08-26 11:20 status.log | ||
+ | -rw-r--r-- 1 root root 4390 2007-08-26 11:17 variables.log | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ===== Tips ===== | ||
+ | |||
+ | [[http://fai-project.org/download/mkdebmirror|mkdebmirror]]: create local Debian mirror | ||
+ | |||
+ | Important variables for scripts: | ||
+ | |||
+ | <code> | ||
+ | $ROOTCMD => execute command inside target chroot | ||
+ | $target => points to target chroot | ||
+ | </code> | ||
+ | |||
+ | Important commands for scripts: | ||
+ | |||
+ | <code> | ||
+ | fcopy => copy files to target chroot | ||
+ | ainsl => append if no such line (in file) | ||
+ | </code> | ||
+ | |||
+ | Adjust 'PACKAGES $COMMAND', check possible values via: | ||
+ | |||
+ | <code> | ||
+ | install_packages -H | ||
+ | </code> | ||
+ | |||
+ | Create tarball for basic chroot: | ||
+ | |||
+ | <code> | ||
+ | mkdir /dev/shm/deboot | ||
+ | debootstrap etch /dev/shm/deboot http://ftp.de.debian.org/debian | ||
+ | cd /dev/shm/deboot && tar zcf base.tgz ./ | ||
+ | |||
+ | grep NFS /etc/fai/make-fai-nfsroot.conf | ||
+ | NFSROOT=/grml/fai/nfsroot | ||
+ | |||
+ | mkdir -p /grml/fai/nfsroot/live/filesystem.dir/var/tmp | ||
+ | mv /dev/shm/deboot/base.tgz /grml/fai/nfsroot/live/filesystem.dir/var/tmp/ | ||
+ | |||
+ | Now you should see | ||
+ | |||
+ | Extracting /grml/fai/nfsroot/live/filesystem.dir/var/tmp/base.tgz | ||
+ | |||
+ | when invoking: | ||
+ | |||
+ | fai -v -cFAIBASE,GRML -u grml dirinstall /dev/shm/fai | ||
+ | </code> | ||
+ | |||
+ | Build NFS-root (uses NFSROOT from /etc/fai/make-fai-nfsroot.conf) and bootable CD-ISO: | ||
+ | |||
+ | <code> | ||
+ | make-fai-nfsroot -v | ||
+ | mkdir /grml/tmp_mirror | ||
+ | fai-mirror -c DEFAULT,I386,FAIBASE,GRML -v /grml/tmp_mirror | ||
+ | fai-cd -m /grml/tmp_mirror /grml/fai.iso | ||
+ | </code> | ||