You should try the current version. 3.0.4 will be released in March Henning Fehrmann wrote: > Hello, > > we tried to use cfengine3 v3.0.2 to update our /etc/passwd. > > The promises.cf reads: > > body common control > { > bundlesequence => { > "handle_passwd" > }; > inputs => { > "passwd.cf" > }; > } > > body agent control > { > ifelapsed => "0"; > } > > body monitor control > { > forgetrate => "0.7"; > histograms => "true"; > } > > body executor control > > { > splaytime => "1"; > mailto => "a...@b"; > smtpserver => "smtpserver"; > mailmaxlines => "30"; > exec_command => "$(sys.workdir)/bin/cf-agent -f failsafe.cf > && $(sys.workdir)/bin/cf-agent"; > } > > body reporter control > { > reports => { "performance", "last_seen", "monitor_history" }; > build_directory => "/tmp/log"; > report_output => "html"; > } > > The passwd.cf is: > > bundle agent handle_passwd > { > vars: > ipv4_10:: > "file_new" string => > "/var/cfengine/inputs/passwd_new"; > "file_obsolete" string => > "/var/cfengine/inputs/passwd_obsolete"; > "newlines" > slist => { > readstringlist($(file_new),"#.*","",2048,65536) }; > "obsolete" > slist => { > readstringlist($(file_obsolete),"#.*","",2048,65536) }; > > files: > ipv4_10:: > "/var/cfengine/inputs/passwd" > edit_line => addline($(newlines)), > comment => "add new lines", > action => immediate; > > "/var/cfengine/inputs/passwd" > edit_line => remove($(obsolete)), > comment => "removed obsolete users $(obsolete)", > action => immediate; > > reports: > ipv4_10:: > "passwd updated"; > } > > > bundle edit_line addline(newline) > { > insert_lines: > "$(newline)"; > > } > > bundle edit_line remove(obsolete) > { > delete_lines: > "$(obsolete):.*"; > } > > > > We start with the following /var/cfengine/inputs/passwd: > org:a:b:c > obs:a:b:c > > /var/cfengine/inputs/passwd_obsolete: > obs > > and > /var/cfengine/inputs/passwd_new: > new:a:b:c > > After launching 'cf-agent -v -f /tmp/promises.cf' I get for the > /var/cfengine/inputs/passwd: > org:a:b:c > obs:a:b:c > new:a:b:c > > > Apparently the deletion of the 'obs:.*' line failed. There is also an empty > line after the 'new:a:b:c' line. > > Here are some snippets of the verbose output: > > : > cf3 ......................................................... > cf3 > cf3 -> This promise has already been verified > cf3 -> Saving edit changes to file /var/cfengine/inputs/passwd > cf3 Edited file /var/cfengine/inputs/passwd > cf3 > cf3 ......................................................... > cf3 Promise handle: > cf3 Promise made by: /var/cfengine/inputs/passwd > cf3 > cf3 Comment: removed obsolete users obs > cf3 ......................................................... > cf3 > cf3 -> Using literal pathtype for /var/cfengine/inputs/passwd > cf3 -> Handling file existence constraints on /var/cfengine/inputs/passwd > cf3 -> Handling file edits in edit_line bundle remove > cf3 > cf3 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * > cf3 BUNDLE remove( {'obs > '} ) > cf3 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * > cf3 > cf3 ? Augment scope remove with obsolete > cf3 ?? Private class context > cf3 > cf3 > cf3 = = = = = = = = = = = = = = = = = = = = = = = = = = = = > cf3 delete_lines in bundle remove > cf3 = = = = = = = = = = = = = = = = = = = = = = = = = = = = > cf3 > cf3 > cf3 ......................................................... > cf3 Promise handle: > cf3 Promise made by: obs > :.* > cf3 ......................................................... > cf3 > cf3 ?? Private class context > cf3 > cf3 > cf3 = = = = = = = = = = = = = = = = = = = = = = = = = = = = > cf3 delete_lines in bundle remove > cf3 = = = = = = = = = = = = = = = = = = = = = = = = = = = = > cf3 > cf3 > cf3 ......................................................... > cf3 Promise handle: > cf3 Promise made by: obs > :.* > cf3 ......................................................... > cf3 > cf3 -> This promise has already been verified > cf3 ?? Private class context > cf3 > cf3 > cf3 = = = = = = = = = = = = = = = = = = = = = = = = = = = = > cf3 delete_lines in bundle remove > cf3 = = = = = = = = = = = = = = = = = = = = = = = = = = = = > cf3 > cf3 > cf3 ......................................................... > cf3 Promise handle: > cf3 Promise made by: obs > :.* > cf3 ......................................................... > cf3 > cf3 -> This promise has already been verified > cf3 -> No edit changes to file /var/cfengine/inputs/passwd need saving > cf3 > cf3 ========================================================= > cf3 reports in bundle handle_passwd (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: passwd updated > cf3 ......................................................... > cf3 > cf3 R: passwd updated > cf3 > cf3 + Private classes augmented: > cf3 > cf3 - Private classes diminished: > cf3 > cf3 > cf3 > cf3 ========================================================= > cf3 files in bundle handle_passwd (2) > cf3 ========================================================= > : > cf3 > cf3 Verifying SQL table promises is only available with Cfengine Nova or above > cf3 Outcome of version (not specified) (agent-0): Promises observed to be > kept 33%, Promises repaired 67%, Promises not repaired 0% > > > There are strange line breaks like > cf3 Promise made by: obs > :.* > > Do you have an idea why the the 'obs' lines are not deleted? > > Thank you. > > Cheers, > Henning > > _______________________________________________ > Help-cfengine mailing list > Help-cfengine@cfengine.org > https://cfengine.org/mailman/listinfo/help-cfengine
-- Mark Burgess ------------------------------------------------- Professor of Network and System Administration Oslo University College, Norway Personal Web: http://www.iu.hio.no/~mark Office Telf : +47 22453272 ------------------------------------------------- _______________________________________________ Help-cfengine mailing list Help-cfengine@cfengine.org https://cfengine.org/mailman/listinfo/help-cfengine