Client DebuggingΒΆ
When working on the Bcfg2 client, it is helpful to employ a few specific techniques to isolate and remedy problems.
First, running the client with the -f flag allows configuration from a
local file, rather than querying the server. This helps rule out server
configuration problems, and allows for rapid development. For example:
bcfg2 -f test-config.conf
with the following test-config.conf:
<Configuration>
<Bundle name="ssh-tests">
<Service type="launchd" name="com.openssh.sshd" status="on" />
</Bundle>
</Configuration>
Next, it is important to look at the interactive mode. This is similar
to the interactive mode on the server and provides an interactive
Python interpreter with which one may manipulate all the objects in
the client. It will setup all the infrastructure so you will have the
appropriate objects to play with. It will run the client through once,
then present you with an interpreter. Try it out with: python -i
/usr/bin/bcfg2
or, for more fun, a local config file and also enable
Debugging and Verbose output with -d and -v, yielding python -i
/usr/bin/bcfg2 -d -v -f test-config.conf
.
Now we just explore; use dir()
to examine different objects in the
client, or run a reconfiguration again by calling client.run()