I want to quiet, full blown PC, without fans nor a harddisk in my living room. See my other blog about this subject
Currently I’m thinking about the following setup:
- NFS4 root
- some sort of configuration management
I wanted to use puppet, but after seeing it use more than 30% of my main memory – This is on a AMD64 Ubuntu server – I was ready to ditch it.
I’ve also have experience with
cfengine, so I’m going to use that. In
svn. I’m going to store all my configs + cfengine
files in one repository. The modus operandi will become:
- edit a file
- check it into subversion
- periodically check out the subversion to a directory where cfengine will look for updates - this will probably happen every 5 minutes
- let cfegine distribute the changes to other machine
- let the
cfagenton the different machine figure out what to do.
So this blog is now becomming a post on how to configure cfengine :)
The shortest none trivial snippet I could think of is
control: actionsequence = ( shellcommands ) shellcommands: !motd:: "/bin/echo Danger Robinson!" define=motd motd:: "/bin/echo Ha ha after the first echo!"
Note: no spaces are allowed in
define=motd. With this you can get
From here we can do wilder stuff, like for instance getting
a copy from the
motd file and running a post processing
which is needed in Debian:
uname -snrvm > /var/run/motd [ -f /etc/motd.tail ] && cat /etc/motd.tail >> /var/run/motd
/etc/motd is a symlink pointing to
All commands in the
shellcommands section should begin with a
/, hence the weird looking:
Going about this, I’m getting to the following snippet:
control: actionsequence = ( copy shellcommands ) copy: /home/miekg/svn/etc/branches/elektron/motd.tail dest=/etc/motd.tail mode=644 owner=root group=root define=motd_copied shellcommands: motd_copied:: "/bin/uname -snrvm > /var/run/motd" "/usr/bin/[ -f /etc/motd.tail ] && /bin/cat /etc/motd.tail >> /var/run/motd"
Which will update
/etc/motd if there is a change.
I’ve created a subversion repository where I’m going to put these files
in. A cronjob will periodically check this out into
cfengine will pick up any new changes automatically.
I’ve found that
sudo cfagent -Hnvf cfagent.conf is a very neat way to
test out any given
cfagent.conf, before deploying it for real.
Later on I will blog some more about the precise setup I’m going to use.