Я надеялся видеть, существует ли какой-либо BDD для серверов, что-то, что было бы подобно в отношениях к Cucumber или Behat? Что-то, что имеет немного синтаксического сахара, такого как:
Feature: jre
In order to use our monitoring software
As a UNIX user
I need to have JRE version at 8
Scenario:
Given I am in the directory "/usr/local/bin"
And I have a file named "java"
When I run "java -version"
Then I should get:
"""
java version "1.8.*"
"""
Это не совсем "простой текст", как Cucumber, но serverspec (Ruby, на базе RSpec) и testinfra (Python) оба обеспечивают возможность написания спецификаций для ваших машин, чтобы подтвердить, что они находятся в том состоянии, в котором вы хотите.
BTW, тестирование для вашей инфраструктуры невероятно важно, хотя и не столько "запуск на каждой машине", сколько проверка того, что ваше управление конфигурацией делает то, что вы ожидаете. Регрессии не редкость, и знание того, что изменение в ваших манифестах не помешало правильно настроить машину, очень обнадеживает.
На удивление легко внести изменение, которое останавливает, скажем, установку пакета, чего вы никогда не узнаете, пока не соберете новую машину, и пакет не появится, даже если он есть на всех остальных машинах. Таким образом, интегрируйте ваш набор тестов инфраструктуры с вашей системой CI, делая инкрементную и чистую (от-scratch) сборку на каждом коммите. Затем, помашите вашим тестовым пакетом машинам, как только они будут собраны. Это подтвердит, что ваше управление конфигурацией всё ещё делает всё, что должно быть.
.Марк Берджесс внес большой вклад в исследования в этой области:
http://markburgess.org/sysadmin.html
В частности, взгляните на http://cfengine.com, подкрепленные его работой.
Я автор testinfra, утилиты для написания инфраструктурных тестов на питоне (на основе pytest). Все функции testinfra могут быть использованы вне pytest через API.
Так что если у вас есть какие-то навыки в python, вы можете подключить testinfra с помощью pytest-bdd или вести себя и добиться поведенческой инфраструктуры.
NB: Как новый пользователь я не могу разместить более 2-х ссылок (потрясающая возможность...)