IMHO Ruby is better for creating DSLs, so I wrote a small thing to scratch my own itch: https://github.com/marius/koch
This is not meant to scale to more than a handful of machines, but you get the idea how nice straight Ruby is for a machine specification DSL.