Eu trabalhei em um ambiente que estava em processo de migração para um modelo de operações TDD. Para algumas coisas, como monitorar scripts, isso funcionou muito bem. Usamos o buildbot para configurar o ambiente de teste e executar os testes. Nesse caso, você aborda o TDD da perspectiva do "Código herdado". No TDD, "Código Legado" é um código existente que não possui testes. Para que os primeiros testes não falhem, eles definem a operação correta (ou esperada).
Para muitos trabalhos de configuração, a primeira etapa é testar se a configuração pode ser analisada pelo serviço. Muitos serviços fornecem algumas facilidades para fazer exatamente isso. O Nagios possui o modo de comprovação, o cfagent não possui ação, apache, sudo, bind e muitos outros possuem recursos semelhantes. Isso é basicamente uma execução de cotão para as configurações.
Um exemplo seria se você usar o apache e separar arquivos de configuração para partes diferentes, poderá testá-las e apenas usar um arquivo httpd.conf diferente para envolvê-las para execução em sua máquina de teste. Em seguida, você pode testar se o servidor da web na máquina de teste fornece os resultados corretos lá.
A cada passo no caminho, você segue o mesmo padrão básico. Faça um teste, faça o teste passar, refatorar o trabalho que você fez. Como mencionado acima, ao seguir esse caminho, os testes nem sempre podem falhar da maneira aceita pelo TDD.
Rik