Cfengine2 files owner property

2010-12-07 Thread Will Nowak
Hi There,

I'm trying to use a cfengine2 files stanza to copy some
authorized_keys files out to machines for a set of users.

# id 323_access
uid=40056(323_access) gid=100(users) groups=100(users)


  office_desktops::
$(masterfiles)/ssh_keys/323_access
   dest=/home/323_access/.ssh/authorized_keys
   mode=600
   owner=323_access
   group=users
   type=checksum
   typecheck=off
   server=$(policyhost)

However, this rule results in the file being owned by user id 323:

-rw---  1  323 users 2897 Dec  7 09:29 authorized_keys

Any suggestions on how to make this right?

Thanks,
-Will
___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Re: Unable to delete a directory

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: Unable to delete a directory
Author: berntjernberg
Link to topic: https://cfengine.com/forum/read.php?3,18863,19654#msg-19654

Hi,

I got it working in 3.05p1 with:


bundle agent cleanup(dir)
{
files:
# Delete all files.
"$(dir)"
delete => tidy,
file_select => plain,
depth_search => recurse("inf");

# Delete all subdirectories.
"$(dir)"
delete => tidy,
file_select => dirs,
depth_search => recurse("inf");

# Delete parent.
"$(dir)"
delete => tidy;
}


Regards
/Bernt

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Re: Set class on file changes

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: Set class on file changes
Author: Ferjama
Link to topic: https://cfengine.com/forum/read.php?3,19601,19655#msg-19655

Hi,

I’ve god a similar problem and tried the mentioned solution with "action" but 
it didn't helped. I want to restart a daemon if the configuration changed. Here 
is my old solution from cfe2:

copy:
$(masterfiles)/global/etc/ntp.conf  dest=/etc/ntp.conf rec=inf 
type=checksum server=$(cfe_server) define=ntpRestart

shellcommands:
ntpRestart::
"/etc/init.d/ntp restart"

But how does it have so look in cfe3? Dies doesn't work:

bundle agent ntp {
 files:
  Hr05.Min40_45::
"/etc/ntp.conf"
copy_from   => 
remote_cp("$(g.cfe_server)","$(g.masterfiles)/global/etc/ntp.conf"),
   action  => "if_ntp_update";
}
body action if_ntp_update {
commands:
SuSE::
   "/etc/init.d/ntp restart";
   
!SuSE::
   "/etc/init.d/ntpd restart";
}


I hope somebody can help.

Best regards
 Stephan

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Re: Set class on file changes

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: Set class on file changes
Author: Seva Gluschenko
Link to topic: https://cfengine.com/forum/read.php?3,19601,19656#msg-19656

sometimes reading the reference manual is useful ;> Your code must be rewritten 
like this:

bundle agent ntp {
 files:
  Hr05.Min40_45::
"/etc/ntp.conf"
copy_from   => 
remote_cp("$(g.cfe_server)","$(g.masterfiles)/global/etc/ntp.conf"),
   action  => if_repaired("ntp_update");

commands:
ntp_update.SuSE::
   "/etc/init.d/ntp restart";
   
ntp_update.!SuSE::
   "/etc/init.d/ntpd restart";
}

body action if_repaired(x)
{
  promise_repaired => { "$(x)" };
}


The body action if_repaired can be found in cfengine_stdlib.cf, btw.

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Re: Binaries for 3.1.1?

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: Binaries for 3.1.1?
Author: matter
Link to topic: https://cfengine.com/forum/read.php?3,19642,19657#msg-19657

I think a little blurb about that is new when the release is announced might be 
nice.

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Re: Binaries for 3.1.1?

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: Binaries for 3.1.1?
Author: mark
Link to topic: https://cfengine.com/forum/read.php?3,19642,19658#msg-19658

I think we always paste the change log into the release when we do it. Of 
course, no one is obliged to read it ;-)

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Re: simple edit_line

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: simple edit_line
Author: bidwell
Link to topic: https://cfengine.com/forum/read.php?3,19617,19659#msg-19659

OK here is a simple promise that is wrong somewhere.

bundle agent editmyfiles
{
files:
any::

"/tmp/test"
edit_line => myreplace("line1","line3");

}

bundle edit_line myreplace(oldv,newv)
{
replace_patterns:
 "$(oldv)"

replace_with => "$(newv)";
}

cf-promise -v -f ./test.cf (3.0.5.p1) gives
cf3 Undeclared promise body "$(newv)()" was referenced in a promise

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Re: simple edit_line

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: simple edit_line
Author: neilhwatson
Link to topic: https://cfengine.com/forum/read.php?3,19617,19660#msg-19660

Replace_with should point to a body part not the string.
http://www.cfengine.org/manuals/cf3-reference.html#replace_005fpatterns-in-edit_005fline-promises

$ cf-promises -f ./bar.cf
$ cf-agent -IKf ./bar.cf
 -> Edited file /tmp/test
$ cat /tmp/test
line3
line2
line3
line4
$ cat bar.cf
##
body common control {
bundlesequence => { "test" };
}

bundle common g {
classes:
"all" expression => "any";
}

bundle agent test {

files:

"/tmp/test"
edit_line => myreplace("line1","line3");

}

bundle edit_line myreplace(oldv,newv)
{
replace_patterns:
"$(oldv)"

replace_with => value("$(newv)");
}

# From stdlib
body replace_with value(x)
{
replace_value => "$(x)";
occurrences => "all";
}


___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Re: simple edit_line

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: simple edit_line
Author: Seva Gluschenko
Link to topic: https://cfengine.com/forum/read.php?3,19617,19661#msg-19661

Yep, the one level down is required. Look for body replace_with With(x) in 
cfengine_stdlib.cf

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Re: Binaries for 3.1.1?

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: Binaries for 3.1.1?
Author: matter
Link to topic: https://cfengine.com/forum/read.php?3,19642,19662#msg-19662

How about that, right in front of me. If it was a snake, it would have bitten 
me. 


% head -7 ChangeLog
3.1.1

Memory leaks in server tracked down and fixed.
List expansion bug (one list items not executed) fixed.
Security issue introduced by change of runcommand shell policy fixed. 
If users defined a runcommand for cf-runagent/cf-serverd communication, 
possible to execute commands.
cf-key -s command for showing key hash/IP address identity pairs


Nevermind.

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: templating and need for action

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: templating and need for action
Author: bglomm
Link to topic: https://cfengine.com/forum/read.php?3,19663,19663#msg-19663

Hi all,

I finally understood the benefits of templating/variable expanding only to face 
a new question.
I followed closely
http://www.cfengine.org/manuals/cf3-solutions.html#Templating
but I'm now experiencing the fact that the template get downloaded and expanded 
EACH time
cf-agent is running.
Logically that might make sense but I'm trying to use "if_repaired" in the 
calling methods section of the "test bundle" to determine if there is a class 
to be set to restart a corresponding service... so, since the template get 
always copied, always expanded, this class is always true consequently the 
service always restarted, even if the file doesn't need to be repaired :-(
What am I missing?

thnx for any hint

Bernhard

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Re: templating and need for action

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: templating and need for action
Author: neilhwatson
Link to topic: https://cfengine.com/forum/read.php?3,19663,19664#msg-19664

Please show us a file download and edit promise that exhibits this behavior.  I 
don't have any template promises at the moment but it seems that if the staging 
file is kept then there should be no download.  Similarly edits are supposed to 
be done in memory and only committed if there is a change.

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Re: templating and need for action

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: templating and need for action
Author: bglomm
Link to topic: https://cfengine.com/forum/read.php?3,19663,19665#msg-19665

thnx Neil,

here the three files I'm working with... all works fine except that on each run 
the snmpd.conf gets repaired... even if is not necessary 

the "top layer":

bundle agent sdk_snmpd_config {
vars:
any::
"snmp2cstring"  string  =>  "public";
"nmsaddr"   string  =>  "192.168.10.10/32";

inhouse::
"syslocstring"  string  =>  "home";

outhosuse::
"syslocstring"  string  =>  "outhouse location";

packages:
"snmpd"
comment => "make sure snmpd is installed",
package_policy  => "add",
package_method  => apt;

methods:
"any"
comment =>  "get the snmpd.conf template",
usebundle   =>  
get_template("/etc/snmp/snmpd.conf","400","root","root"),
classes =>  if_repaired("restart_snmpd");

commands:
restart_snmpd::
"/etc/init.d/snmpd restart",
comment =>  "restart snmpd after having reconfigured 
snmpd.conf";
}


the get_template bundle:

bundle agent get_template(final_destination,mode,owner,group) {
vars:
"confmasterfiles"   string => "$(update.masterfiles)/conf_files";
"this_template" string => lastnode("$(final_destination)","/");

files:
"$(final_destination).staging"
comment => "Get template and expand variables for this host",
perms => mog("400","root","root"),
copy_from => 
secure_cp("$(confmasterfiles)/$(this_template)","$(update.cfmaster)"),
action => if_elapsed("60");

"$(final_destination)"
comment => "Expand the template",
create => "true",
edit_line => expand_template("$(final_destination).staging"),
edit_defaults => empty,
perms => mog("$(mode)","$(owner)","$(group)"),
action => if_elapsed("60");
}


finally the template I'm working with

agentAddressudp:$(sys.ipv4):161

viewsystemonly  included   .1.3.6.1.2.1

rocommunity $(sdk_snmpd_config.snmp2cstring)
$(sdk_snmpd_config.nmsaddr) -V systemonly

sysLocation $(sdk_snmpd_config.syslocstring)
sysContact  bglomm 
sysServices 72

includeAllDisks 10%

load12 10 5

master  agentx



and here the output of cf-agent -vIK:
cf3   Done checking packages and patches
cf3  ???
cf3  -> Package version was not specified
cf3  -> Looking for (snmpd,*,*)
cf3  -> Matched name snmpd
cf3  -> Matched version *
cf3  -> Looking for (snmpd,*,*)
cf3  -> Matched name snmpd
cf3  -> Matched version *
cf3  -> 1 package(s) matching the name "snmpd" already installed
cf3  -> 1 package(s) match the promise body's criteria fully
cf3  -> Package promises to refer to itself as "snmpd" to the manager
cf3  -> Package version seems to match criteria
cf3  -> Package already installed, so we never add it again
cf3
cf3=
cf3commands in bundle sdk_snmpd_config (1)
cf3=
cf3
cf3 Verifying SQL table promises is only available with Cfengine Nova or above
cf3
cf3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
cf3 Skipping whole next promise (/etc/init.d/snmpd restart), as context 
restart_snmpd is not relevant
cf3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
cf3
cf3=
cf3methods in bundle sdk_snmpd_config (1)
cf3=
cf3
cf3 Verifying SQL table promises is only available with Cfengine Nova or above
cf3
cf3 .
cf3 Promise handle:
cf3 Promise made by: any
cf3
cf3 Comment:  snmpd.conf is a sensitive file so we keep full control about 
it
cf3 .
cf3
cf3
cf3   * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
cf3   BUNDLE get_template( {'/etc/snmp/snmpd.conf','400','root','root'} )
cf3   * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
cf3
cf3 ? Augment scope get_template with final_destination
cf3 ? Augment scope get_template with mode
cf3 ? Augment scope get_template with owner
cf3 ? Augment scope get_template with group
cf3
cf3=
cf3vars in bundle get_template (1)
cf3=
cf3 Verifying SQL table promises is only available with Cfengine Nova or above
cf3
cf3  +  Private classes augmented:
cf3
cf3  -  Private classes diminished:
cf3
cf3
cf3
cf3

Cfengine Help: Re: Finding "segfault at" error messages in syslog

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: Finding "segfault at" error messages in syslog
Author: Sal
Link to topic: https://cfengine.com/forum/read.php?3,19645,19666#msg-19666

I found the problem. It seems that the task file was edited in masterfiles on 
the policy server while the updates were happening and this var was saved 
without exiting the file.

"svn_hosts" string => { "svnhost.*", "build03" };

This is what was eventually saved as the final/correct version but the damage 
was done.

"svn_hosts" slist => { "svnhost.*", "build03" };

All the cfengine clients that downloaded the first version would segfault 
during what appears to be the "Verifying the syntax of the inputs..." section 
and never go any further so cfengine could not download the right version of 
the file and fix itself.

I was under the impression that if incorrect syntax was detected that it would 
just go to failsafe mode and hopefully check for newer versions of inputs files 
and download those. Any ideas why it didn't behave that way?

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Re: templating and need for action

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: templating and need for action
Author: neilhwatson
Link to topic: https://cfengine.com/forum/read.php?3,19663,19667#msg-19667

I'm not certain about the classes call via methods.  I do not know that does 
what we think it does.  I would set the classes at the expansion promise.

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Re: templating and need for action

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: templating and need for action
Author: neilhwatson
Link to topic: https://cfengine.com/forum/read.php?3,19663,19668#msg-19668

Also, check your if_repaired body an ensure that it is doing what you think it 
should.

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Re: templating and need for action

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: templating and need for action
Author: bglomm
Link to topic: https://cfengine.com/forum/read.php?3,19663,19669#msg-19669

And thnx again Neil.

Brilliant that's it. Works perfect and as generic as before... Now I just set a 
generic class with the expansion promise.
What exact service shall be restarted can stay under control of the calling 
promise.
Thnx also 4 being that quick! chapeau!

Bernhard

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Re: templating and need for action

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: templating and need for action
Author: neilhwatson
Link to topic: https://cfengine.com/forum/read.php?3,19663,19670#msg-19670

"Because a method is just an encapsulation, there is a subtlety about how to 
interpret a successful method invocation. Before version 3.1.0, a method was 
considered repaired if executed (like commands), however this led to 
unnecessary logging of executions, even if not actual encapsulated promise was 
kept. In version 3.1.0 this has been changed so that a method promise is 
considered kept if the method is expanded. A method promise is thus never 
considered repaired. "
http://www.cfengine.org/manuals/cf3-reference.html#methods-in-agent-promises

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Re: templating and need for action

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: templating and need for action
Author: bglomm
Link to topic: https://cfengine.com/forum/read.php?3,19663,19671#msg-19671

if_repaired etc. all comes from cfengine_stdlib.cf 
it was the methods/"set class" thing ...

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Re: Finding "segfault at" error messages in syslog

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: Finding "segfault at" error messages in syslog
Author: bglomm
Link to topic: https://cfengine.com/forum/read.php?3,19645,19672#msg-19672

Are you sure you have configured your failsafe/update promises all correct?
Have you tried them?
As long as I don't brake my update promises, that should (think of it as must) 
not depend on any other code but the update code itself it works for me as you 
expect.
In my testbed it happens too that I don't do a proper cf-promise on the 
new/changed code. Than often it's failsafe that keeps it going smoothly.
If the update depends on anything else than it is easy to brake it I think.

bglomm

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


edit_lines convergence

2010-12-07 Thread Daniel Dehennin
Hello,

I have some troubles with edit_lines convergence:

#v+
body common control
{

bundlesequence => { "filetest" };
version => "0.0.3";
}

bundle agent filetest
{

vars:

"smtp" string => "smtp.example.net";
files:

"/tmp/main.cf"
create => "true",
edit_line => fix_smtp_host("$(smtp)"),
comment => "smpt_host must be $(smtp)";


reports:
SMTPHostFixed::
"I reload the SMTP server";
}

bundle edit_line fix_smtp_host(smtp)
{
replace_patterns:
any::
"^(smtp_host)\s+.*$" replace_with => value("$(match.1) $(smtp)"),
classes => if_ok("SMTPHostOK", "SMTPHostFixed"),
comment => "Replace smtp_host if any";

insert_lines:
"smtp_host $(smtp)",
   classes => if_ok("SMTPHostOK", "SMTPHostFixed"),
   comment => "Add smtp_host if none";
}

body replace_with value(v)
{
replace_value => "$(v)";
occurrences => "all";
}

body classes if_ok(notchanged, changed)
{
promise_kept => { "$(notchanged)" };
promise_repaired => { "$(changed)" };
}
#v-

Verbose output produce:
#v+
cf3 Promise handle: 
cf3 Promise made by: ^(smtp_host)\s+.*$
cf3 
cf3 Comment:  Replace smtp_host if any
cf3 .
cf3 
cf3  -> Looking at pattern ^(smtp_host)\s+.*$
cf3  -> Verifying replacement of "^(smtp_host)\s+.*$" with "smtp_host 
smtp.example.net" (2)
cf3  -> Verifying replacement of "^(smtp_host)\s+.*$" with "smtp_host 
smtp.example.net" (3)
[...]
cf3  -> Verifying replacement of "^(smtp_host)\s+.*$" with "smtp_host 
smtp.example.net" (21)
cf3  !! Too many replacements on this line
cf3  -> Replaced pattern "^(smtp_host)\s+.*$" in /tmp/main.cf
cf3  ?> defining promise result class SMTPHostFixed
cf3  -> << (22)"smtp_host smtp.example.net"
cf3  -> >> (22)"smtp_host smtp.example.net"
cf3  -> Promised replacement "smtp_host smtp.example.net" for pattern 
"^(smtp_host)\s+.*$" is not properly convergent while editing /tmp/main.cf
cf3 Because the regular expression "^(smtp_host)\s+.*$" still matches the 
end-state replacement string "smtp_host smtp.example.net"
cf3 Promise (version 0.0.3) belongs to bundle 'fix_smtp_host' in file 
'/home/dad/.cfagent/inputs/promises.cf' near line 31
cf3 Comment: Replace smtp_host if any
#v-

The pattern to replace must not match the replacement string, I think
that if I use delete_lines/insert_lines I will always reload my SMTP
server.

I want to 
- insert the line if it's not defined
- replace previous setting with the new one

If I change the "smtp" variable, I end with two "smtp_host" lines in my
file.

Regards.
-- 
Daniel Dehennin
Récupérer ma clef GPG:
gpg --keyserver pgp.mit.edu --recv-keys 0x6A2540D1


pgplZV6yw19h2.pgp
Description: PGP signature
___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Re: edit_lines convergence

2010-12-07 Thread Michael Potter
I believe the problem is this expression:

"^(smtp_host)\s+.*$" replace_with => value("$(match.1) $(smtp)"),

Because you use a .* after the whitespace, the regex will continue to match
after any replacement occurs.

Try using a negative lookahead assertion:

"^(smtp_host)\s+(?!$(smtp))$"

This will ensure the pattern only matches when smtp_host is *not* followed
by $(smtp), so after the first replacement occurs, the regex will no longer
match and will be convergent.

On Wed, Dec 8, 2010 at 9:13 AM, Daniel Dehennin <
daniel.dehen...@baby-gnu.org> wrote:

> Hello,
>
> I have some troubles with edit_lines convergence:
>
> #v+
> body common control
> {
>
>bundlesequence => { "filetest" };
>version => "0.0.3";
> }
>
> bundle agent filetest
> {
>
>vars:
>
>"smtp" string => "smtp.example.net";
>files:
>
>"/tmp/main.cf"
>create => "true",
>edit_line => fix_smtp_host("$(smtp)"),
>comment => "smpt_host must be $(smtp)";
>
>
>reports:
>SMTPHostFixed::
>"I reload the SMTP server";
> }
>
> bundle edit_line fix_smtp_host(smtp)
> {
>replace_patterns:
>any::
>"^(smtp_host)\s+.*$" replace_with => value("$(match.1)
> $(smtp)"),
>classes => if_ok("SMTPHostOK",
> "SMTPHostFixed"),
>comment => "Replace smtp_host if any";
>
>insert_lines:
>"smtp_host $(smtp)",
>   classes => if_ok("SMTPHostOK", "SMTPHostFixed"),
>   comment => "Add smtp_host if none";
> }
>
> body replace_with value(v)
> {
>replace_value => "$(v)";
>occurrences => "all";
> }
>
> body classes if_ok(notchanged, changed)
> {
>promise_kept => { "$(notchanged)" };
>promise_repaired => { "$(changed)" };
> }
> #v-
>
> Verbose output produce:
> #v+
> cf3 Promise handle:
> cf3 Promise made by: ^(smtp_host)\s+.*$
> cf3
> cf3 Comment:  Replace smtp_host if any
> cf3 .
> cf3
> cf3  -> Looking at pattern ^(smtp_host)\s+.*$
> cf3  -> Verifying replacement of "^(smtp_host)\s+.*$" with "smtp_host
> smtp.example.net" (2)
> cf3  -> Verifying replacement of "^(smtp_host)\s+.*$" with "smtp_host
> smtp.example.net" (3)
> [...]
> cf3  -> Verifying replacement of "^(smtp_host)\s+.*$" with "smtp_host
> smtp.example.net" (21)
> cf3  !! Too many replacements on this line
> cf3  -> Replaced pattern "^(smtp_host)\s+.*$" in /tmp/main.cf
> cf3  ?> defining promise result class SMTPHostFixed
> cf3  -> << (22)"smtp_host smtp.example.net"
> cf3  -> >> (22)"smtp_host smtp.example.net"
> cf3  -> Promised replacement "smtp_host smtp.example.net" for pattern
> "^(smtp_host)\s+.*$" is not properly convergent while editing /tmp/main.cf
> cf3 Because the regular expression "^(smtp_host)\s+.*$" still matches the
> end-state replacement string "smtp_host smtp.example.net"
> cf3 Promise (version 0.0.3) belongs to bundle 'fix_smtp_host' in file
> '/home/dad/.cfagent/inputs/promises.cf' near line 31
> cf3 Comment: Replace smtp_host if any
> #v-
>
> The pattern to replace must not match the replacement string, I think
> that if I use delete_lines/insert_lines I will always reload my SMTP
> server.
>
> I want to
> - insert the line if it's not defined
> - replace previous setting with the new one
>
> If I change the "smtp" variable, I end with two "smtp_host" lines in my
> file.
>
> Regards.
> --
> Daniel Dehennin
> Récupérer ma clef GPG:
> gpg --keyserver pgp.mit.edu --recv-keys 0x6A2540D1
>
> ___
> Help-cfengine mailing list
> Help-cfengine@cfengine.org
> https://cfengine.org/mailman/listinfo/help-cfengine
>
>
___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Re: Finding "segfault at" error messages in syslog

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Re: Finding "segfault at" error messages in syslog
Author: Sal
Link to topic: https://cfengine.com/forum/read.php?3,19645,19675#msg-19675

I have on more than one occasion had to rely on the failsafe to fix broken 
configs. Some of our new tasks are tested live, so to speak, by some of our 
sysads that have not gotten into the habit of running cf-promises before 
pushing the changes/additions. That's why I thought it was odd that I saw a 
segfault then nothing. I ran a manual run with 

cf-execd -F -K -v

on one of the instances that was segfaulting to watch the output and I saw it 
get to that bundle then it segfaulted and exited. Never got past that so it 
couldn't get to the failsafe portion of the process.

Correct me if I'm wrong but I believe that cf-execd verifies the syntax of the 
current local copy of the input files then starts the cf-agent failsafe and 
cf-agent standard run. It appeared that cf-execd was exiting before it could 
start the cf-agent failsafe run.

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Cfengine Help: Does anyone know how to make cfengine report from only one network interface?

2010-12-07 Thread no-reply
Forum: Cfengine Help
Subject: Does anyone know how to make cfengine report from only one network 
interface?
Author: Sal
Link to topic: https://cfengine.com/forum/read.php?3,19676,19676#msg-19676

We have several servers with multiple NIC's configured live. Cfengine will send 
out email from all NICs when reporting an error and the lastseen report shows 
the server reporting from all configured NICs. Is there a way to tell cfengine 
to only report from the primary interface, eth0 for example?

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine


Re: Cfengine Help: Does anyone know how to make cfengine report from only one network interface?

2010-12-07 Thread Mike Svoboda
Check out "bindtointerface" in the reference guide.

5.2.8 bindtointerface
Type: string Allowed input range: .* Synopsis: Use this interface for
outgoing connections Example:
bindtointerface => "192.168.1.1";
Notes: On multi-homed hosts, the server and client can bind to a specific
interface for server traffic.
The IP address of the interface must be given as the argument, not the
device name.


On 12/7/10 7:23 PM, "no-re...@cfengine.com"  wrote:

> Forum: Cfengine Help
> Subject: Does anyone know how to make cfengine report from only one network
> interface?
> Author: Sal
> Link to topic: https://cfengine.com/forum/read.php?3,19676,19676#msg-19676
> 
> We have several servers with multiple NIC's configured live. Cfengine will
> send out email from all NICs when reporting an error and the lastseen report
> shows the server reporting from all configured NICs. Is there a way to tell
> cfengine to only report from the primary interface, eth0 for example?
> 
> ___
> Help-cfengine mailing list
> Help-cfengine@cfengine.org
> https://cfengine.org/mailman/listinfo/help-cfengine

___
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine