sixtyPercent: Cochlear Implants, Aviation, Technlology, and Philosophy 2005/05/02
Setting Up Shop
I'm at a new (tiny) startup now, and decided that since I'm in charge of the technology (more or less), I try to start things out right.
We're relying heavily on open source software both for our internal IT infrastructure, and for components of the product we're building. I've been a fan and user of Debian Linux for a long time -- it's stable and easy to maintain. However as many have noted, the current stable release of Debian (Woody) is getting a bit long in the tooth. Sarge will be here real-soon-now, but in the mean time I can't wait.
So like many others in this situation, I was drawn to Ubuntu and haven't looked back. We've install the 5.04 Hoary release on three workstantions and two servers so far with excellent results.
Adapting the directions from this Howto and this one too was straightforward, and without too much trouble we now have LDAP-based single sign on for network accounts, file serving, wiki and subversion authorization, and email. Very nice!
Having done all this on commodity PC class server hardware, and also having worked for a while in Apple's Mac OS X Server engineering group, I can say that all this would have been much easier under Mac OS X Server -- the GUI administration tools are very well done, but to be fair I suppose I should compare with Red Hat or SuSE's commercial offerings.
There were a couple of annoyances along the way. Ubuntu doesn't seem to have an Apache2 mod_auth_ldap available. I could have just built it, but I also wanted to learn a bit about the Python LDAP module. One apt-get later, and I had mod_python and python-ldap installed, and wrote a 20-line script to do Apache2 LDAP authentication:
from mod_python import apache
import ldap
def authenhandler(req):
pw = req.get_basic_auth_pw()
user = req.user
# open connection to server -- change as necessary
l = ldap.open( '127.0.0.1' )
base = 'ou=People,dc=example,dc=com'
try:
# attempt to auth bind to the server
l.simple_bind_s( 'uid=' + user + ',' + base, pw )
return apache.OK
except ldap.LDAPError:
return apache.HTTP_UNAUTHORIZED
***
highlight file error
***
After acquiring, installing, and configuring PC's and laptops running Ubuntu Linux, Windows XP Pro, and Mac OS X, I find myself using Ubuntu for my servers and development platform, and my Apple iBook for everything else. Though Mac OS X is UNIX at its core, I find it easier to develop on a platform very close to our production environment. The iBook G4 12" however is just a heck of a great personal computer. It's tough, light, very functional, and Mac OS X is dream to use. My old 15" Aluminum Powerbook had a great screen and other nifty features, but it seems fragile by comparison.
by David Creemer : 2005/05/02 : Categories technology python : 0 trackbacks : 1 comment (permalink)