help-cfengine
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Suggestion for future release


From: Marco van Beek
Subject: Suggestion for future release
Date: Wed, 08 Mar 2006 16:47:50 +0000
User-agent: Thunderbird 1.5 (Windows/20051201)

Hi Everyone,

I have a suggestion for CFengine. It would be nice to be able to have a plain text config file with variables, which could be read by a client on a host by host, and/or class by class basis.

The data would be read in by CFEngine (probably set in cfagent.conf) and would be available to all subsequent cf files being processed.

I did something a while ago because I wanted to read the same data in Perl as PHP for a project I have been dabbling with.

Anyway, an example config plus working Perl code is below. It would save me having to use complicated bash code to extract data from a plain text file. I have a config file per host which means I can define each boxes purpose outside of CFEngine, which makes it easier to maintain.

Cheers,

Marco


==============================================================
EXAMPLE CONFIG FILE
==============================================================

#######################################
# Cross language config file for SSiS #
#######################################
# Comments are allowed    #
# White space is allowed  #
# syntax is 'key = value' #
###########################

...

#########
# MySQL #
#########

mysql_server = localhost
mysql_datasource = dbi:mysql:ssis
mysql_database = ssis
mysql_username = ssis
mysql_password = ssis
mysql_palm_gluetable = PDA_Sync
mysql_ldap_gluetable = LDAP_Sync

########
# LDAP #
########

ou = ou=SSiS
dc = dc=supporting-role,dc=co,dc=uk
ldap_bindas = uid=ssis,ou=People,dc=supporting-role,dc=co,dc=uk
ldap_password = secret
ldap_server = localhost
ldap_port   = 389
ldap_version = 3

===============================================================
PERL CODE TO EXTRACT FROM CONFIG AND DUMP INTO ARRAY
================================================================
my %settings;
open(CONFIG,"/etc/ssis-config");
while(<CONFIG>)
        {
        chomp;                  # no newline
        s/#.*//;                # no comments
        s/^\s+//;               # no leading whitespace
        s/\s+$//;               # no trailing whitespace
        next unless length;     # Anything left?
        my ($var, $value) = split(/\s*=\s*/,$_, 2);
        $settings{$var} = $value;
        }
close CONFIG;

my $mysql_datasource            = $settings{"mysql_datasource"};
my $mysql_username              = $settings{"mysql_username"};
my $mysql_password              = $settings{"mysql_password"};
my $mysql_palm_gluetable        = $settings{"mysql_palm_gluetable"};
my $public_user                 = $settings{"public_user"};
my $Memo_user                   = $settings{"Memo_user"};
my $ToDo_user                   = $settings{"ToDo_user"};
my $Address_user                = $settings{"Address_user"};
my $Datebook_user               = $settings{"Datebook_user"};
==================================================================




reply via email to

[Prev in Thread] Current Thread [Next in Thread]