Helper scripts: Difference between revisions
Line 90: | Line 90: | ||
<pre> | <pre> | ||
#!/usr/bin/perl | #!/usr/bin/perl | ||
# this will define classes from all kernel parameters that | |||
# appear after a parameter '--', as defined in $separator | |||
use strict; | use strict; | ||
use warnings; | use warnings; | ||
Line 110: | Line 112: | ||
--[[User:iw|Ingo Wichmann / Linuxhotel]] 17 Jan 2006 (CET) | --[[User:iw|Ingo Wichmann / Linuxhotel]] 17 Jan 2006 (CET) | ||
== Define a class for a list of hosts == | |||
This makes it easy to maintain lists of hosts that should share a class. | |||
Just write a list into a file <code>$FAI_CONFIG/class/''FOO''.list</code> and it will define your (arbitrary) class <code>FOO</code> for each host that appears in that file. | |||
Thus, a new class <code>GRONK</code> is created and defined for hosts ''zapp'' and ''whirr'' by simply creating a file <code>GRONK.list</code> that looks like this | |||
foo | |||
bar | |||
<code>class/55-host-lists</code> : | |||
<pre> | |||
#!/bin/sh | |||
# checks for an appearance of this host's name in each list and, if it | |||
# finds this host in any of the lists, will print the name of the | |||
# list (without the postfix '.list') | |||
# | |||
for thislist in *.list ; do | |||
thisclass=$(basename $thislist .list) | |||
egrep -q "\<$HOSTNAME\>" $thislist && echo $thisclass | |||
done | |||
</pre> | |||
--[[User:Sanso|sanso]] 14:27, 30 Aug 2006 (CEST) |
Revision as of 12:27, 30 August 2006
FAI-Tools
Jan Jansen sent me an interesting tool that should help with management of the FAI configdir get the file
his mail:
Hi, As long as there were no responses to this posting, i don't dealed with this idea (GPL) but if some user would find it usefull that would be also nice for me because i don't have that much time anymore now to fix all known (and probably unknown) bugs alone. A problem could also be the currently, only with shell-options available, documentation. So i post some hints here: - if a file doc/<class> exists in your fairep, it will be shown as class-description in info mode - new script styles ([0-9][0-9]-*) can cause little errors - some extravagant string values can cause qouting errors (shell problem) - create mode not fully funtional Installation: Unzip the archive to a directory and adjust the lib and tmp paths in file 'ftool' to the right place. Now the script should be funtional. Keep attention to test it the first times with a copy of your repository to not destroy your classes/files in case of missusing or unexpected errors (which hopefully aren't that much).
FAIlint
failint.sh a lint checker for FAI. (detects common mistakes)
FAI development and testing helpers
I created some scripts that help setting up a FAI developemnt environment, and running builds and tests in there. At the moment it's mostly about creating fai-cd's and testing them in a qemu vm. Eventually I will add functions for network installation testing with a real hardware host and a qemu client, as well as testing network install with a qemu hist and a qemu client. I am quite interested if someboy finds them useful, they are in subversion:
http://svn.debian.org/wsvn/fai/people/lazyboy/fai-dev-helpers/
--lazyboy 11:12, 21 Oct 2005 (CEST)
fast fai-cd creation script
when developing a new fai-cd it can happen that you need to create new fai-cd's very often. It gets annoying that you always need to delete fai-mirror and the old image... unless you use a script like this (change your tmp path for image and mirror):
#!/bin/sh FAI_MIRROR_LOCATION=/data/produktion/tmp/fai-mirror DATE=`date +%Y-%m-%d_%h-%M-%S` if [ -z $1 ];then CDIMAGE=/data/produktion/tmp/fai-cd_${DATE}.iso echo "using default cdimage location $CDIMAGE" else CDIMAGE=$1 fi if [ -z $FAI_MIRROR_LOCATION ]; then echo "error - FAI_MIRROR_LOCATION is empty - exiting" exit 1 else echo "cleaning up fai-mirror at $FAI_MIRROR_LOCATION" rm -r $FAI_MIRROR_LOCATION fi mkdir -p $FAI_MIRROR_LOCATION fai-mirror -a $FAI_MIRROR_LOCATION CDIMAGE_BACKUP=${CDIMAGE}_bak_date +%Y-%m-%d_%h-%M-%S if [ -f $CDIMAGE ];then echo "moving old cd image to $CDIMAGE_BACKUP" fi fai-cd -m $FAI_MIRROR_LOCATION $CDIMAGE
--lazyboy 10:59, 5 Jan 2006 (CET)
turn kernel bootprompt parameters into classes
Every kernel parameter after the -- separator is changed to uppercase and used as a classname.
class/35-bootprompt :
#!/usr/bin/perl # this will define classes from all kernel parameters that # appear after a parameter '--', as defined in $separator use strict; use warnings; my $separator = '--'; my $seen; foreach ( split /\s+/, `cat /proc/cmdline` ) { if ( $_ eq $separator ) { $seen = 1; next; } next unless $seen; print uc $_, "\n" if m/^\w+$/; }
--Ingo Wichmann / Linuxhotel 17 Jan 2006 (CET)
Define a class for a list of hosts
This makes it easy to maintain lists of hosts that should share a class.
Just write a list into a file $FAI_CONFIG/class/FOO.list
and it will define your (arbitrary) class FOO
for each host that appears in that file.
Thus, a new class GRONK
is created and defined for hosts zapp and whirr by simply creating a file GRONK.list
that looks like this
foo bar
class/55-host-lists
:
#!/bin/sh # checks for an appearance of this host's name in each list and, if it # finds this host in any of the lists, will print the name of the # list (without the postfix '.list') # for thislist in *.list ; do thisclass=$(basename $thislist .list) egrep -q "\<$HOSTNAME\>" $thislist && echo $thisclass done
--sanso 14:27, 30 Aug 2006 (CEST)