On Tue, 2010-02-23 at 13:42 +0100, Frederik Wagner wrote:
> > If you can live with replacing the entire list, you can just use augeas:
> >
> >        augeas { "my_boot_modules":
> >                changes => "set 
> > /files/etc/sysconfig/kernel/MODULES_LOADED_ON_BOOT '$mymodules'"
> >        }
> >
> > If you need to build the list up from something else, you might want to
> > wrap the above into a define that computes $mymodules from that
> > something.
> 
> I would need to append single modules to the list, therefore I was
> thinking to write the provider.

Yes, that's one way to do it - you could base that provider off Augeas;
the heart of it would be a method like (needs to be split up a bit to
mesh with Puppet's notion of checking if a change is needed, reporting
what has changed, and noop mode)

        def append_module(module)
          aug = Augeas::open("/", Augeas::NO_MODL_AUTOLOAD)
          begin
                aug.set("/augeas/load/Xfm/lens", "Shellvars.lns")
                aug.set("/augeas/load/Xfm/incl",
                "/etc/sysconfig/kernel")
                aug.load
                mod_path = "/files/etc/sysconfig/kernel/MODULES_LOADED_ON_BOOT"
                mods = aug.get(mod_path) || ""
                unless mods.split().include?(module)
                  mods = mods.split().push("x").join(" ")
                  aug.set(mod_path, mods)
                  aug.save
                end
       ensure
         aug.close if aug
       end    
        end

> > There's also ways to make this just append a specific module, but that
> > would require some work on the Augeas side.
> 
> does this need new features on the augeas side? Or is it already
> doable with the current augeas?

It doesn't need new features, but it would require that you change the
stock shellvars lens so that it treats the MODULES_LOADED_ON_BOOT
special, and splits it into several tree nodes.

David


-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to