[augeas-devel] Creation of plugin for Splunk configurations

Raphaël Pinson raphink at gmail.com
Thu Feb 2 09:49:42 UTC 2012


Hi Elias,


See dput.aug, it uses IniFile.title_label to allow / in section names.


Raphaël



On Thu, Feb 2, 2012 at 10:24 AM, Elias Ross <genman at noderunner.net> wrote:
> I ran a problem with needing to change a Splunk configuration file. I
> use Puppet to install Splunk and primarily I'm interested in changing
> just one file using its Augeas support but there is no lens. The
> problem is explained mostly here:
> http://splunk-base.splunk.com/answers/31010/ssl-is-working-for-forwarder-indexer-but-not-deployment-client-server-traffic
>
> Internet search leads me to think people do want to use Augeas for
> this, but it hasn't been written by anybody.
>
> I tried using the default ini format, but this doesn't allow for / in
> the section titles, which breaks things.
>
> IRC chat I had:
>
> genman  I need help matching an .ini file with / in the section title ,
> e.g. [tcp://9997]
>        Dominic genman: sorry, I'm just heading off but will quickly say: you
> won't be able to store that as the node "key", only as a value
>        genman  you can't do some tricky string manipulation I guess to change
> / to _ and visa-versa? hmm
>        Dominic node names/keys can only contain fairly simple strings as
> they're used in paths. Usually the inifile lens will store section
> titles as node names.
>        Dominic no
>        Dominic so you'd do: [ Util.del_str "[" . label "section" . store
> /[^\]]+/ . Util.del_str "]" ] or similar I guess
>        Dominic if nobody else is around, then feel free to e-mail the list
> at augeas-devel at redhat.com
>        genman  okay, thanks ... I think an email would be better
>
> So although I can kind of figure out what to do, if you had a good
> example of how to do this, I would like to try it out.
>
> The grammar is roughly like this:
>
>
> (* Splunk module for Augeas
>  Author: Elias Ross <genman at noderunner.net>
>
>  splunk files are standard INI File.
> *)
>
>
> module Splunk =
>  autoload xfm
>
> (************************************************************************
>  * INI File settings
>  *
>  * splunk.conf only supports "# as commentary and "=" as separator
>  *************************************************************************)
> let comment    = IniFile.comment "#" "#"
> let sep        = IniFile.sep "=" "="
>
> (************************************************************************
>  *                        ENTRY
>  * splunk.conf uses standard INI File entries
>  *************************************************************************)
> let entry   = IniFile.indented_entry IniFile.entry_re sep comment
>
>
> (************************************************************************
>  *                        RECORD
>  * splunk.conf uses standard INI File records
>  *************************************************************************)
> let record_re = /[^]\n]+/
> let title   = IniFile.indented_title record_re
> let record  = IniFile.record title entry
>
>
> (************************************************************************
>  *                        LENS & FILTER
>  * splunk.conf uses standard INI File records
>  *************************************************************************)
> let lns     = IniFile.lns record comment
>
> let filter =
>        (incl "/opt/splunk/etc/system/local/*.conf")
>      . (incl "/opt/splunk/etc/users/*/search/local/*.conf")
>      . (incl "/opt/splunk/etc/apps/*/local/*.conf")
>      . (incl "/opt/splunk/etc/modules/*/classes/deployable/*.conf")
>      . (incl "/opt/splunkforwarder/etc/system/local/*.conf")
>      . Util.stdexcl
>
> let xfm = transform lns filter
>
> _______________________________________________
> augeas-devel mailing list
> augeas-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/augeas-devel




More information about the augeas-devel mailing list