line numbers for syntax errors?

8 views
Skip to first unread message

Abe Singer

unread,
Jun 30, 2009, 5:46:05 PM6/30/09
to help-c...@cfengine.org
The syntax error messages cfengine 2.2.10 do not include line numbers
where the offending error occurs, see below. Is this really normal
behavior, is it a bug, or am I missing something? Not having line
numbers can be a real PIA when trying to figure where the mistake is.

Example: these messages are the result of errors on two separate
lines (hostnames changes to protect the innocent). the ":6:" is
not the line number (is it an error number?). In this case it's
pretty easy to find the offending line, but not all error messages
are as useful, I've had to resort to trial and error at times to
resolve errors.

cf:cfengine:example.com:/var/cfengine/inputs/cf.linux:6: scripts or commands must have absolute path names
cf:cfengine:example.com:/var/cfengine/inputs/cf.linux:6: scripts or commands must have absolute path names

Paul Krizak

unread,
Jun 30, 2009, 6:17:39 PM6/30/09
to Abe Singer, help-c...@cfengine.org
In your example there, I believe line 6 is where the problem is...?

Paul Krizak 7171 Southwest Pkwy MS B400.2B
Senior Systems Engineer Austin, TX 78735
Advanced Micro Devices Desk: (512) 602-8775
Linux/Unix Systems Engineering Cell: (512) 791-0686
Silicon Design Division Fax: (512) 602-0468
> _______________________________________________
> Help-cfengine mailing list
> Help-c...@cfengine.org
> https://cfengine.org/mailman/listinfo/help-cfengine
>

Abe Singer

unread,
Jun 30, 2009, 7:13:58 PM6/30/09
to Jesse Becker, help-c...@cfengine.org
There errors are definitely not before line 6, in the example that
generated that error, they were around line 100.

I too have experienced wrong filenames, but I don't have an example
to show right now.


On Tue, Jun 30, 2009 at 06:39:36PM -0400, Jesse Becker wrote:
> To: Paul Krizak <paul....@amd.com>
> Cc: Abe Singer <a...@ligo.caltech.edu>, help-c...@cfengine.org
>
> On Tue, Jun 30, 2009 at 18:17, Paul Krizak<paul....@amd.com> wrote:
> > In your example there, I believe line 6 is where the problem is...?
>
> I've found found that the line numbers reported--"6" in this case--are
> very frequently wrong.
>
> Anecdotal, I've seen that the number reported is an upper limit: the
> error will be at that line or before. I've also seen that the file
> reported is also incorrect, where the *previous* file is actually the
> culprit.

Mark Burgess

unread,
Jul 1, 2009, 12:29:13 AM7/1/09
to Abe Singer, help-c...@cfengine.org

HEllo everyone. I say only this: you should all consider upgrading to
cfengine 3 which does a much better job of everything.
> _______________________________________________
> Help-cfengine mailing list
> Help-c...@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
-------------------------------------------------

Mark Burgess

unread,
Jul 1, 2009, 2:17:56 AM7/1/09
to Tim Cutts, help-cfengine help

Bug fixing support is indeed going on, but no one has shown me a bug
yet to be fixed. The trouble folks are having seem to be the usual
compilation related stuff.

I have pointed out that upgrading has been made as easy as possible,
running cf2 under cf3 so that you can upgrade things like the server
and scheduler without having to rewrite policy straightaway.

No new features will be added to cf2, only genuine bug fixes and of
course priority has to be given to supported customers, who are paying.

M

Tim Cutts wrote:
>
> On 1 Jul 2009, at 5:29 am, Mark Burgess wrote:
>
>>
>> HEllo everyone. I say only this: you should all consider upgrading to
>> cfengine 3 which does a much better job of everything.
>
> ... which is, from my initial investigations, a fairly significant
> undertaking, and therefore not something that can be done at the drop
> of hat. I suspect I am not alone in this view.
>
> Do I take it from this that there is going to be essentially no
> maintenance of the 2.2.x stream any more? I was hoping there would be
> at least some bug-fixing support of it on-going.
>
> Tim

Tim Cutts

unread,
Jul 1, 2009, 1:58:59 AM7/1/09
to Mark Burgess, help-cfengine help

On 1 Jul 2009, at 5:29 am, Mark Burgess wrote:

>
> HEllo everyone. I say only this: you should all consider upgrading to
> cfengine 3 which does a much better job of everything.

... which is, from my initial investigations, a fairly significant
undertaking, and therefore not something that can be done at the drop
of hat. I suspect I am not alone in this view.

Do I take it from this that there is going to be essentially no
maintenance of the 2.2.x stream any more? I was hoping there would be
at least some bug-fixing support of it on-going.

Tim


--
The Wellcome Trust Sanger Institute is operated by Genome Research
Limited, a charity registered in England with number 1021457 and a
company registered in England with number 2742969, whose registered
office is 215 Euston Road, London, NW1 2BE.

Tim Cutts

unread,
Jul 1, 2009, 2:44:05 AM7/1/09
to Mark Burgess, help-cfengine help

On 1 Jul 2009, at 7:17 am, Mark Burgess wrote:

>
> Bug fixing support is indeed going on, but no one has shown me a bug
> yet to be fixed. The trouble folks are having seem to be the usual
> compilation related stuff.
>
> I have pointed out that upgrading has been made as easy as possible,
> running cf2 under cf3 so that you can upgrade things like the server
> and scheduler without having to rewrite policy straightaway.

It was the policy rewriting that I was referring to.

> No new features will be added to cf2, only genuine bug fixes and of
> course priority has to be given to supported customers, who are
> paying.

That seems fair enough to me.

Regards,

Jesse Becker

unread,
Jun 30, 2009, 6:39:36 PM6/30/09
to Paul Krizak, Abe Singer, help-c...@cfengine.org
On Tue, Jun 30, 2009 at 18:17, Paul Krizak<paul....@amd.com> wrote:
> In your example there, I believe line 6 is where the problem is...?

I've found found that the line numbers reported--"6" in this case--are
very frequently wrong.

Anecdotal, I've seen that the number reported is an upper limit: the
error will be at that line or before. I've also seen that the file
reported is also incorrect, where the *previous* file is actually the
culprit.


> Abe Singer wrote:
>> The syntax error messages cfengine 2.2.10 do not include line numbers
>> where the offending error occurs, see below. �Is this really normal
>> behavior, is it a bug, or am I missing something? �Not having line
>> numbers can be a real PIA when trying to figure where the mistake is.
>>
>> Example: �these messages are the result of errors on two separate
>> lines (hostnames changes to protect the innocent). �the ":6:" is
>> not the line number (is it an error number?). �In this case it's
>> pretty easy to find the offending line, but not all error messages
>> are as useful, I've had to resort to trial and error at times to
>> resolve errors.
>>
>> � � � cf:cfengine:example.com:/var/cfengine/inputs/cf.linux:6: scripts or commands must have absolute path names
>> � � � cf:cfengine:example.com:/var/cfengine/inputs/cf.linux:6: scripts or commands must have absolute path names
>>
>> _______________________________________________
>> Help-cfengine mailing list
>> Help-c...@cfengine.org
>> https://cfengine.org/mailman/listinfo/help-cfengine
>>
>
> _______________________________________________
> Help-cfengine mailing list
> Help-c...@cfengine.org
> https://cfengine.org/mailman/listinfo/help-cfengine
>



--
Jesse Becker
GPG Fingerprint -- BD00 7AA4 4483 AFCC 82D0 2720 0083 0931 9A2B 06A2

Mark Burgess

unread,
Jul 1, 2009, 3:03:08 AM7/1/09
to Tim Cutts, help-cfengine help


Tim Cutts wrote:
>
> On 1 Jul 2009, at 7:17 am, Mark Burgess wrote:
>
>>
>> Bug fixing support is indeed going on, but no one has shown me a bug
>> yet to be fixed. The trouble folks are having seem to be the usual
>> compilation related stuff.
>>
>> I have pointed out that upgrading has been made as easy as possible,
>> running cf2 under cf3 so that you can upgrade things like the server
>> and scheduler without having to rewrite policy straightaway.
>
> It was the policy rewriting that I was referring to.

I know ;-)

Abe Singer

unread,
Jul 1, 2009, 1:02:54 PM7/1/09
to Mark Burgess, help-c...@cfengine.org

On Wed, Jul 01, 2009 at 06:29:13AM +0200, Mark Burgess wrote:
> HEllo everyone. I say only this: you should all consider upgrading to
> cfengine 3 which does a much better job of everything.

Mark,

I tried startingd with cfengine3, and gave up after too many issues
with segfaults. I will be glad to pursue using it when I'm more
convinced of it's stability.

As you probably know, I've lectured at Usenix and other places about
the importance of configuration management for security in addition
to improving overall system administration. I'm sold on its value,
but not everyone I work with has been convinced yet.

I am trying to introduce cfengine and configuration management to
what is essentially a SCADA environment. When our lab is in full
operation (a "science run"), management has an extremely low tolerance
for disruption -- system configurations can be frozen for a couple
of years at a time out of concern over the unintended consequences
of change.

Since we are about to go into a science run again, I had a deadline
for implementation, I had cfengine3 segfaulting, and could not
continue to keep waiting for patches/upgrades, and then worry about
when the next segfault was going to occur. I didn't have a complicated
ruleset, was only doing file copies and restarting processes.

I have generated strong interest in the value of CM and how it can
help minimize disruption, but if the CM tool itself causes disruption
due to its instability, it will be rejected out of hand, and will
probably be impossible for me to re-introduce. I would think that
should be a general rule of CM -- the CM system has to be more
reliable and less disruptive than the "old fashioned" method of
maintaining systems.

In addition to the SCADA environment, I also have to convince
the sysadmins of our general purpose computing environment of the
value of CM. I'm having to fight with a lot of "we know better
than anyone else" and "we don't need to change anything" attitudes,
and if the CM system is too buggy, unpredictable, or difficult to
understand, they will use those as arguments against using it.

Stability and better documentation will be important for succcess
there.

-- Abe

Mark Burgess

unread,
Jul 1, 2009, 4:06:16 PM7/1/09
to Abe Singer, help-c...@cfengine.org

Abe, I am not sure how to respond. I think cfengine 3 is quite stable
these days. And there has never been more rationalized documentation,
more examples.

I am not impartial however. You should ask other users on this list.

M

Mark Burgess

unread,
Jul 1, 2009, 4:39:09 PM7/1/09
to Matt Richards, Abe Singer, help-c...@cfengine.org

That's good to hear. 3.0.2 is basically complete.

Matt Richards wrote:
> Yes, there is a rather large learning curve involved as it is all
> different. But it does gets faster and easier once you get a handle on
> the concepts. As far as manuals go, cf3 is pretty comprehensive (you
> just have to wade through it). If you are looking for examples, check
> out the unit tests in the source code distribution. There are examples
> on how to do just about everything. As far as stability, I can't speak
> of all platforms, but AIX is pretty solid with the svn version. I don't
> experience any core dumps and it behaves as it should. When something is
> not working right, it is usually faulty logic on my part.

Abe Singer

unread,
Jul 1, 2009, 5:08:55 PM7/1/09
to Matt Richards, help-c...@cfengine.org

As Matt says below, there is a large learning curve because it's
all different. His perspective is that of an experienced cfengine
user.

That learning curve is much worse if you're completely new to
cfengine, because, unless there's been a major update in the last
few months, numerous places in the documentation for cf3 simply
refer to differences from cf2. A description of a feature says
something like "this works just like cf2 except for XXX,"
without any more explanation.

So the newcomer who wants to use 3 has to go read the docs for 2
and then apply diffs. I don't think they could survive with just
the cf3 doc. That's really a turn off for newcomers.

I can find some particular examples, but it will take me some time
to come up with them as I have me head buried just in dealing with
cf2. But try going through the docs imagining that you are totally
new to it, and don't have a copy of the cf2 docs.


On Wed, Jul 01, 2009 at 04:35:59PM -0400, Matt Richards wrote:
>
> Yes, there is a rather large learning curve involved as it is all
> different. But it does gets faster and easier once you get a handle on
> the concepts. As far as manuals go, cf3 is pretty comprehensive (you
> just have to wade through it). If you are looking for examples, check
> out the unit tests in the source code distribution. There are examples
> on how to do just about everything. As far as stability, I can't speak
> of all platforms, but AIX is pretty solid with the svn version. I
> don't experience any core dumps and it behaves as it should. When
> something is not working right, it is usually faulty logic on my part.
>

Mike Hoskins

unread,
Jul 1, 2009, 5:20:45 PM7/1/09
to Abe Singer, help-c...@cfengine.org
Abe Singer wrote:
> As Matt says below, there is a large learning curve because it's
> all different. His perspective is that of an experienced cfengine
> user.
>
> That learning curve is much worse if you're completely new to
> cfengine, because, unless there's been a major update in the last
> few months, numerous places in the documentation for cf3 simply
> refer to differences from cf2. A description of a feature says
> something like "this works just like cf2 except for XXX,"
> without any more explanation.
>
> So the newcomer who wants to use 3 has to go read the docs for 2
> and then apply diffs. I don't think they could survive with just
> the cf3 doc. That's really a turn off for newcomers.
>
> I can find some particular examples, but it will take me some time
> to come up with them as I have me head buried just in dealing with
> cf2. But try going through the docs imagining that you are totally
> new to it, and don't have a copy of the cf2 docs.

I agree, basically.

I've been sitting back withholding comment (but not thought of course)
over the current state of affairs.

In all fairness 2.x still does anything you need, has great docs, and is
supported by most of the community. As usual, there is always a vendor
push to use the latest code, but also as usual... it is not necessarily
the wisest thing in the real world. Does anyone upgrade to the latest
Solaris the day/week/month/year it comes out? Of course not.

So I would suggest learning and using cf2 as a start, and waiting on cf3
to mature. Mark will have other ideas, but this is based upon the
experience of a cfengine "user" rather than an "expert". I do realize
cf3 has stabilized a lot, and that makes me very excited about the
future, but it is also quite obvious that it could in no way be as
stable as cf2 which has had infinitely more real-world testing.

That said, I have and am one of the strong voices for paid support
within my org. Many things in the past which we "used for free because
that's what a lot of others do" -- MySQL is one -- we have converted to
the highest-level paid support contracts. Not because we have to (we
have actually submitted bug fixes to MySQL), but because we want to
support the community.

cf3 is a little harder for me... because after the openness of cf2, it
somehow feels more forced. E.g. "Upgrade now, sure it's not stable, but
pay us for consulting!" I realize we all need to make a living, but the
drastic change in attitudes between cf2 and cf3 seems to be a but of a
turn-off for newbies.

http://news.cnet.com/8301-13505_3-10219946-16.html?tag=mncol;title

Why aren't there more articles like that about cfengine? Is the
commercial/closed push of cf3 a turnoff for others too? I really hope
that cf3 can create the right mix of free and commercial "services" to
keep both large and small organizations/users interested.

Mark Burgess

unread,
Jul 2, 2009, 12:04:27 AM7/2/09
to Mike Hoskins, Abe Singer, help-c...@cfengine.org

> cf3 is a little harder for me... because after the openness of cf2, it
> somehow feels more forced. E.g. "Upgrade now, sure it's not stable, but
> pay us for consulting!" I realize we all need to make a living, but the
> drastic change in attitudes between cf2 and cf3 seems to be a but of a
> turn-off for newbies.
>
> http://news.cnet.com/8301-13505_3-10219946-16.html?tag=mncol;title
>
> Why aren't there more articles like that about cfengine? Is the
> commercial/closed push of cf3 a turnoff for others too? I really hope
> that cf3 can create the right mix of free and commercial "services" to
> keep both large and small organizations/users interested.
>

Mike, I am saddened and hurt to hear this kind of remark. There has
been no "drastic change in attitude", only a new opportunity for
commerical services, which I began in order to improve people's
options. I cannot be everyone's nursemaid for the rest of my life and
it is unreasonable to expect it. If others are to take over the torch,
then it must be self-sustaining.

As for this Puppet nonense, it drives me nuts. If you look at these
articles you'll see that every one of them is based on something I did
for cfengine (semantics now -- the thing that no other tool can do).
Luke has even stolen the cfengine website layout recently! I laughed
loudly when I saw this.

The truth is that the Puppet people are expert media maniplators and
this is what they have been doing for the past three years --
backstabbing me and cfengine and promoting themselves as an answer
that doesn't even work (from what I read elsewhere). I find this
particularly irksome, as I was the one who took Luke Kanies under my
wing at the LISA conferences and introduced him to people. Sewing the
seeds of discontent because of "community love" is a feeble message.
They actually go and contact the press and ask them to write about
Puppet. I would rather spend my time making the technology do what it
claims -- and truly listening to peoples' pain points and coming up
with real solutions. That is what I do, because I am a scientist, not
a D list celebrity trying to get blog space.

I have spent a huge amount of time working directly on the things that
people have had problems with in order to make The Most Powerful and
Simple Configuration System Ever. Cfengine 3 is that system, and I
will not have that effort turned into some kind of cynical attempt to
get out my begging bowl.

Abe Singer

unread,
Jul 2, 2009, 2:14:52 AM7/2/09
to Mark Burgess, help-c...@cfengine.org
On Thu, Jul 02, 2009 at 06:54:39AM +0200, Mark Burgess wrote:
>
> > So the newcomer who wants to use 3 has to go read the docs for 2
> > and then apply diffs. I don't think they could survive with just
> > the cf3 doc. That's really a turn off for newcomers.
> >
> You mispresent the documentation here, I think.

Before I go into the rest, I do want to say I appreciate your
comments below that you are trying to improve the documentation,
so please take my comments seriously. I didn't just take one look
at give up, I spent considerable time trying to get cfengine3
working, including poring over the reference manual. I found myself
numerous times having to go look a the cfengine 2 docs to understand
what was being said.

So I went through the doc and took a close look at this. I'll reword
my statement slightly -- so much of the documentation, especially
at the top, focuses on the differences, and in some cases features
are described more in terms of their differences from cf2 than in
terms of their function, that I think the newcomer can quickly feel
that the reference is a document for experienced cf2 users.

It really reads like someone started writing about cfengine3 as if
he were talking to an audience largely familiar with cf2.

In on case that I found, the reference really does say
"just like XXX in cf2" and the kicker is that there's no documentation
of that feature in the cf2 docs.

Examples below.


Try looking at references to "cfengine 2" in the cfengine 3 doc, and then
delete all sentences which give a comparison, then see if the section
still makes sense and has sufficient information. I think you'll find
numerous places where it doesn't.

I think a large part of that can be addressed by moving all cf2
references to a subsection of each section titles "Differences from
cf2," and then editing the rest of the section for completeness.
If I were a cf2 user, I'd *want* to easily find out about the
differences so I didn't have to read through every part of the doc
to understand cf3. But as a newcomer, I don't want to wade through
the discussion of differences in order to understand what a feature
does.

> I have seen users of cfengine 3 take great strides in just a few days.


I'm sure some do make great strides quickly just as you say -- there
are always people at the high end of the bell curve, but what you
don't know for comparison is how many people got frustrated and quit.
And there's no way of collecting that data, so it'll just remain
an unresolvable debate.

But consider whether you're just too close to the project to see
how the documentation looks to an outsider. I've dealt numerous
times with programmer and admins who thought that their documentation
was just fine because it made perfect sense to them, but only because
they knew the system so well to begin with. They would leave out
critical steps because they were *so* obvious that everyone should
know them, but everyone didn't. Debugging docs is as valuable as
debugging code.

FYI, I'm originally a cfegine 1 user, which we had been using at SDSC
for well over a decade. We did run cfengine 2, but just the agent,
in the same mode as cfengine 1. So I'm not a total newbie user.


----

Here's some examples and commentary (I've edited out some irrelevant
parts to save space):

* The first section, after an introductory sentence, starts talking about
how cf3 differs from cf2. Then some description, and then another
paragraph how about how cf3 is different. Then section 1.1 is entirely
about how cf3 differs from cf2.

Now those aren't exactly "go read cf2 manuals" but the reader starts to with
the impression that the documentation is really for the cf2 user who wants
to upgrade.

* Section 1.3, the second sentence starts talking about differences. Then
there's this:

The environment variable CFINPUTS still overrides this
default location, as before, but in its absence or when
called from the scheduler, this becomes the location of
trusted files.

The use of the word "still" implies that one was supposed to know
this already.

Unlike cfengine 2, cfengine 3 does not recognize the CFINPUTS
environment variable.

And this completely conflicts with the previous statement. Does CFINPUTS
still do what it did, or is it not recognized?

* then we quickly come to section 1.7, Upgrading to cfengine 3.

* section 4.2, the working bundle example is for converting cfengine 2 to
cfengine 3! A working bundle example for a new installation would be
much more newcomer oriented.

* Section 5.3:

5.4.3 histograms

Synopsis: true/false store signal histogram data
<snip>
Notes:

This is like the ‘-H’ option to cfenvd in cfengine 2. It
causes cfengine to learn the conformally transformed
distributions of fluctuations about the mean

This is even worse than just referring to cf2 -- there's no documentation
in the cf2 reference to the "-H" option to cfenvd. In fact, it took
me some time to figure out what cfenvd actually *does,* because there's
no explanation of it in the cf2 docs except that it's for "anomaly detection."
I had to google cfenvd to get a useful description.

The explanation provided after that cf2 reference is pretty useless
-- fluctuations about the mean of *what*?!?!


* Section 7.3

File copying

One of the first things users of cfengine 2 will notice is
that copying is now `backwards'. Instead of the default
object being source and the option being the destination,
in cfengine 3 the destination is paramount and the source
is an option. This is because the model of voluntary
cooperation tells us that it is the object that is changed
which is the agent making the promise. One cannot force
change onto a destination with cfengine, one can only invite
change from a source.

So if I'm not a user of cfengine 2, what am I supposed to understand
from this? I might think the paragraph does't even apply to me.

* Section 7.12

Storage promises refer to disks and filesystem properties.

<snip>

In cfengine 2, storage promises were divided into disks or
required, and misc_mounts types. The old mount-models for
binary and home servers has been deprecated and removed
from cfengine 3. Users who use these models can reconstruct
them from the low-level tools.

This is all the text from this section, the rest is examples. Note that
the only really descriptive part of this is about how it differs from cf2.
As a newcomver, I feel that I have to go look at cf2 to see what it means.






> It will help when the website is reorganized. Obviously there is more
> documentation for cfengine 2 at present.
>
> > I can find some particular examples, but it will take me some time
> > to come up with them as I have me head buried just in dealing with
> > cf2. But try going through the docs imagining that you are totally
> > new to it, and don't have a copy of the cf2 docs.
>
> There is no tutorial yet, for which I apologize. On the other hand,
> the docs we have are better than most I have seen for other programs.
>
> Everything is improving all the time.

Mark Burgess

unread,
Jul 2, 2009, 12:54:39 AM7/2/09
to Abe Singer, help-c...@cfengine.org


Abe Singer wrote:
> As Matt says below, there is a large learning curve because it's
> all different. His perspective is that of an experienced cfengine
> user.
>

I disagree with this. The learning curve for cfengine 3 is much
smaller than for cfengine 2, because there are simple patterns to copy
for most tasks.

>
> So the newcomer who wants to use 3 has to go read the docs for 2
> and then apply diffs. I don't think they could survive with just
> the cf3 doc. That's really a turn off for newcomers.
>

You mispresent the documentation here, I think. I have seen users of
cfengine 3 take great strides in just a few days.

It will help when the website is reorganized. Obviously there is more
documentation for cfengine 2 at present.

> I can find some particular examples, but it will take me some time
> to come up with them as I have me head buried just in dealing with
> cf2. But try going through the docs imagining that you are totally
> new to it, and don't have a copy of the cf2 docs.

There is no tutorial yet, for which I apologize. On the other hand,
the docs we have are better than most I have seen for other programs.

Everything is improving all the time.

Mark Burgess

unread,
Jul 2, 2009, 2:38:10 AM7/2/09
to Abe Singer, help-c...@cfengine.org

Abe, thank you very much for these detailed comments. This feedback is
very helpful.

As you rightly observe, so far the documentation has been "getting
started" docs for existing users, and since there are millions of
cfengine installations we have to pay more than lip service to these
users.

Writing a tutorial is one of my priorities, and I have now spent some
weeks developing training materials for course (as we are getting a
lot of requests -- fyi we'll be in SF at the end of this month with 3
day training). So much of this will help to write the tutorial.

I just need a few days holiday now, so I don't burn out. Then we can
get back to the business of supporting everyone. I have to recharge by
battery -- especially when these few frustrations bubble up to the
surface.

It might seem as though I am not as helpful as I could be, but a lot
of unseen work goes into making cfengine. And a lot of offline
communication and development. We have come a long way in the past
year -- and I am serious about the commercial services. These have
been designed to help people, not to suck their blood. And the company
framework has already benefitted the community - although we don't
blow our trumpet as much as some. e.g. We have a knowledge base that
adds a lot to simple printed manuals and it is being developed
constantly. It's not too expensive, and the income helps to sustain
the improvements for everyone.

I hope you will not be disappointed by the results in the second half
of this year. You know my style -- I don't pander to media or sudden
whim. I listen to everything, think things through and then I commit
to do the best I know how. This is why cfengine is still way ahead of
the competition, no matter what you might read in various blogs.

M

Neil Watson

unread,
Jul 2, 2009, 6:22:49 PM7/2/09
to help-c...@cfengine.org
I did find the cf3 reference material quite hard to follow. In some
cases I surmise that the authors, being somewhat close to the product,
may have over looked some things that while obvious to them would be
less so to a newcomer. I had to do some trial and error myself to begin
to understand how things work. The examples at cfengine.com are a good
help if you know they are there. I can also say that a tutorial is in
the works and that a draft is complete and under review.

--
Neil Watson
Linux/UNIX Consultant
http://watson-wilson.ca

Matt Richards

unread,
Jul 1, 2009, 8:57:56 PM7/1/09
to Mike Hoskins, Abe Singer, help-c...@cfengine.org
Not that I am a shill for cfengine or anything..... but

I wouldn't say that I was a cf3 (or cf2, for that matter) expert. I
have been using cf3 for about two months or so, and here is my
opinion.

It was a difficult at first as I was learning the syntax and trying to
figure out if my syntax was wrong, or was there a bug in cfengine
itself. It went both ways. Mark has been extremely responsive in
fixing bugs.

I would have to disagree about learning cf2 first. I find it nothing
like cf3. I think that knowing cf2 makes in a little harder to use
cf3. Why? Because the thought process is focused on cf2 syntax and
structure like "do this" then "do that". cf3 is a promise engine with
reusable containers where things are more "non-linear". Sure it looks
weird, but once you get used to it and start thinking in that way, the
possibilities open up. I can see why the rewrite was needed as cf2
code sometimes needed a brutal attack approach to accomplish certain
tasks. cf3 code is very logical in a "non-hacky" type of way. It
follows rules and laws (promises) which is much closer to a truly
autonomic computing structure. Sometimes I am impressed that I throw
all this promise logic in many layers at cf3, and cf3 actually parses
it and does the right thing. I am having a hard time in trying to
break it.

I usually prescribe to the theory that I don't want to be the first to
upgrade, let someone else work out the bugs. But in my case, I was
rewriting everything, why not start off with something that is being
developed, rather than a bug-fix only version. Yes it was painful at
first, but now I can do everything I did in cf2, but more and better.
If I find myself backed into a corner with a hacky configuration, I
tend to rewrite the whole thing. Which I did several times as I
learned cf3. But now I have a very clean and elegant configuration,
scalable and resilient.

Not to bring up the P*ppet word again (from that url in the last
post). I prefer cfengine over p*ppet for one reason only. Too many
dependencies. I like the fact that cfengine only needs cfengine to
run. Puppet may be an excellent engine, but when I want to maintain
systems of several different platforms, I don't want to have to worry
about do I have this installed and at what level and so on. I just
want to install one product and let that do the work. But that is me,
your opinion may differ, and that is fine. Go with what you know. You
know your environment better than me.

So what does this all mean?

cf3, yes it is just starting out, but it learned its lessons from cf2.

Should you upgrade? If cf2 or another configuration engine is working
for you, maybe not, it is all about a return on investment. I find cf3
faster to develop new features in my environment, but you may not. The
standard sysadmin answer - it depends.

Free vs. Commerical? cf3 does everything cf2 can in the community
version. The pay version does so much more. Would I like the Nova to
be free? Certainly, but Mark has spent years developing this. Have I
done anything for that many years for free? Nope. Has cfengine saved
me a lot of time/money? Yep.

Summation - it depends. I may or may not a have a clue. In either
case, give cf3 a try. You many be like me and find it pretty cool.

Wow, reading this back to myself...geeez, get a room already.

Matt Richards

unread,
Jul 1, 2009, 4:35:59 PM7/1/09
to Mark Burgess, Abe Singer, help-c...@cfengine.org

Todd R Palmer

unread,
Jul 6, 2009, 8:44:27 AM7/6/09
to help-c...@cfengine.org

help-cfengine-bounces+trpalmer=us.ib...@cfengine.org wrote on 07/01/2009 04:06:16 PM:

> From:

>
> Mark Burgess <Mark.B...@iu.hio.no>

>
> To:

>
> Abe Singer <a...@ligo.caltech.edu>

>
> Cc:

>
> help-c...@cfengine.org

>
> Date:

>
> 07/01/2009 04:06 PM

>
> Subject:

>
> Re: line numbers for syntax errors?


>
>
> Abe, I am not sure how to respond. I think cfengine 3 is quite stable
> these days. And there has never been more rationalized documentation,
> more examples.
>
> I am not impartial however. You should ask other users on this list.
>
> M

Abe I think what you have seen is similar to what I have been running through on RHEL5 and Centos5. There has been some issues which I think Andrew sorted out with Mark the other week. I know there has been a lot of mail on this thread but to address the actual stability comments yes I agree on some OS's there has been some growing pains. But Mark and the team have always been quick to respond on any issue raised.
In supporting this effort of community and commercial solutions I think Matt addresses that in a latter part of this thread.

Regards,
Todd

Reply all
Reply to author
Forward
0 new messages