using nfsroot-hooks

John G Heim jheim at math.wisc.edu
Wed Sep 30 15:42:19 CEST 2015


On 09/30/2015 04:41 AM, Thomas Lange wrote:
>>>>>> On Tue, 29 Sep 2015 08:28:13 -0500, John G Heim <jheim at math.wisc.edu> said:
>
>      > Anybody got some good example scripts for using w/i nfsroot-hooks? Some
>      > things I want to do:
> Hi John,
>
> hooks for fai-make-nfsroot are no that flexible as in a normal FAI
> installation. There are only two placed, where fai-make-nfsroot calls
> hooks. Both are after all packages are already installed into the
> nfsroot. So, it will not help if you want to add apt keys before
> installing more packages. Except of you install those packages in your
> hook but not using /etc/fai/NFSROOT.


Well, it's not a huge thing but my problem is that you get error 
messages during a fai install if you're installing packages from an 
unofficial archive (like fai itself) unless you install the apt key.

I discovered that if you want to install packages from an unofficial 
repository during a normal fai install, you can get the sources file 
into your nfsroot by createing a sources.list.d subdir within 
/etc/fai/apt. So make a subdir /etc/fai/apt/sources.list.d and put them 
in there. The packages from those repositories will be available during 
a fai install but there will be error messages in fai.log about there 
being no key. I don't remember the exact wording of the error message 
but I think we've probably all seen it a gazillion times. The error 
messages don't prevent you from installing the packages though.

Actually, after I posted my question, I solved this particular problem. 
 From an example on the fai wiki page about installing ubuntu, I saw 
that $ROOTCMD works. So you can say something like this in an 
nfsroot-hooks script:

$ROOTCMDwget http://fai-project.org/download/074BCDE4.asc -q -O - | 
apt-key add -

So that would make it possible to install the fai-client package from 
the fai repository w/o generating that annoying error message in your 
fai.log.

> If you want to restore ssh from a previous nfsroot creation, there's
> the option -p. It only restores the $NFSROOT/root/.ssh directory, not
> the host keys inside the nfsroot.
>

Again it's not that big of a deal.  It mostly comes up only in building 
& testing your fai setup. Every time you rebuild your nfsroot, you have 
to delete the old key from your known_hosts file.

I kind of solved this problem too although it's kind of sloppy. I put 
this in an nfsroot-hooks script:

cp /etc/ssh/ssh_host_*  /srv/fai/nfsroot/live/filesystem.dir/etc/ssh/

That copies the ssh keys from the fai server to the nfsroot. So unless 
you build a new fai server, the ssh keys on the nfsroot won't change.

I now have 4 nfsroot-hooks scripts to do the following:

1. Set the locale on the nfsroot. (This was stolen from the regular fai 
hooks example. IIRC, it works unmodified as an nfsroot hook.)
2. Download/install apt keys for fai, macauley, and dropbox.
3. Copy ssh keys from fai host to nfsroot.
4. Install upstart-sysv. (Copied straight from fai wiki.)

I think the main reason I prefer hooks is that they essentially act as 
documentation of everything you have to do to build the nfsroot.


More information about the linux-fai mailing list