sampledoc

= Setting up Bcfg2 From Scratch =

Ala [[http://blog.conpocococo.org/post/6079832974/managing-etc-motd-with-bcfg2-starting-from-an-empty-vm|Managing /etc/motd with Bcfg2 Starting From an Empty VM]], I’ll be setting up a fresh OS X 10.6 machine to be managed by [[http://bcfg2.org|Bcfg2]].

== Get OS X 10.6 Running ==

Use your favorite provisioning method (e.g. open-box-then-push-power-button, DVD, [[http://www.deploystudio.com/Home.html|DeplyStudio]], etc) to get your operating system running and fully patched.

For this hands on, I’m running OS X 10.6.8 (Build 10K540) with the supplied python 2.6.1. I’ve also turned on Remote Login (i.e. ssh) so I can use my client to write this document going through the steps; having ssh on is not a requirement for this howto.

== Get bcfg2-server Working ==

=== Get bcfg2 package ===

You might be able to get a package already built for you, but it is not hard to build it from the source. You’ll need git (via [[https://code.google.com/p/git-osx-installer/|git-osx-installer]] or [[https://github.com/mxcl/homebrew|homebrew]] the former is easier, the later more developer friendly) and Apple’s [[http://developer.apple.com/xcode/|xcode]].

The first step is to clone the bcfg2 repository into a working directory:

{{{#!highlight bash cd ~/Devloper git clone git://git.mcs.anl.gov/bcfg2.git cd bcfg2 }}}

At this point you will probably want to checkout a release tag (git tag -l to see a list of them). This test is using v1.2.0pre4. Once you’ve done that you can build the server.

{{{#!highlight bash git checkout v1.2.0pre4 cd osx make server }}}

The server package contains both the client and the server. The package is located at ./osx/bcfg2-VERSION.pkg. Copy it to the machine you want to set up from scratch and install it.

THIS NEEDS TO VERIFIED Some of the differences between bcfg2 on Mac OS X and Debian is that the libraries are stored at /Library/Frameworks/Python.framework/Versions/Current/share/bcfg2/ /Library/Python/site-packages/Bcfg2/ instead of /usr/lib/pymodules/ and /usr/share/pyshare/Bcfg2. Also, instead of cron and init.d, `/Library/LaunchDaemons/gov.anl.mcs.bcfg2-daily.plist controls peridic runs and starts and stops. The runtime files are stored in /usr/local/bin under Mac OS X instead of /usr/sbin/ for Debian. VERIFY

Error: bcfg2-admin init “”” 10.6_client :~ user$ sudo /usr/local/bin/bcfg2-admin init Failed to import lxml dependency. Shutting down server. “”“

Try: sudo easy_install lxml. If you don’t have gcc-4.2 installed, you’ll need to install it on a machine that does. Then move /Library/Python/2.6/sites-packages/lxml-2.3-py2.6-macosx-10.6-universal.egg to the client and add the line ”./lxml-2.3-py2.6-macosx-10.6-universal.egg” to /Library/Python/2.6/site-packages/easy-install.pth.

getting a new error:

$ sudo /usr/local/bin/bcfg2-admin init Interactively initialize a new repository.

bcfg2-admin init $

So what is lxml easy_install fully installing? Need to make a package (Lettuce to the rescue!)

This Page