On 2010-10-01 at 08:39, David Bear ( [email protected] ) said:
It seems that once a year I end up getting a kernel update that breaks afs
and then I need to install again... but with a fixed kmod -- or something
else. I know a lot can and should be scripted -- but I've never taken the
time. So I was hoping someone on the list may have a scripted install of afs
for a Red Hat system -- actually, I run CentOS but they are the same enough
that it shouldn't matter. Preferably, the script should look at the
currently running kernel, then know enough to grab the latest stable openafs
rpms and install them -- A followup script would be nice the would either
update the kmod or the dkms afs package as well...  Any pointers, code,
adivce would be helpful.

Here's what we do, which isn't quite what you're asking for, but might give you some ideas.

First, We use cfengine2 to handle all of our config management. We have everything set up in such a way that cf2 will do /everything/ necessary after the initial kickstart, where %post installs cfengine and pulls down a basic update.conf to bootstrap cf2.

We publish our own yum repos. We exclude=kernel* in the Base and Updates repos. We then place corresponding kmod-openafs and kernel packages in the repo. In this way, we can handle exactly when kernels are updated, and can be sure that we'll never be in a situation where there aren't kmod-openafs packages yet for new kernel packages. We've been in that situation before, it sucks ;)

We then have something like this in cfengine:

classes:
        centos::
                # do we have openafs.ko for the running kernel?
                app_openafs_has_module = ( ReturnsZeroShell(/sbin/modinfo openafs 
>/dev/null 2>&1) )
                app_openafs_has_kmod_installed = ( ReturnsZeroShell(/bin/rpm -q 
kmod-openafs >/dev/null 2>&1) )

shellcommands:
        # dangerous: if kmod-openafs is installed but modinfo openafs returns 
nothing,
        # assume kmod-openafs was not installed for the currently running 
kernel and reboot
        # with the hopes of booting into a kernel with openafs.ko
        centos.app_openafs_has_kmod_installed.!app_openafs_has_module::
                "/sbin/shutdown -r +5 \"cfengine\: reboot in 5 minutes to try and fix 
openafs\"" ifelapsed=10 useshell=true

That just handles the state after initial install. There are other fairly standard entries in the editfiles, copy, and packages section to make sure everything else (ThisCell, /etc/sysconfig/openafs, etc) are in the desired state.

As far as rebooting machines to upgrade kernels, people reboot our workstations often enough that there's a pretty good chance they're running the latest installed kernel. Otherwise we know for sure when there's a new kernel to upgrade to, as we'll have dropped the appropriate packages in the yum repo, so we can do various things to reboot machines after they've done their nightly updates, assuming nobody is logged in.

Hopefully that gives you /some/ idea of how one site handles openafs on centos. We've gotten away from using scripts to handle things in favour of doing things the cfengine way: defining the desired system state, and allowing the machines to converge on their own.

--andy
_______________________________________________
OpenAFS-info mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-info

Reply via email to