Управляемая поведением разработка для серверов?

Я надеялся видеть, существует ли какой-либо 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.*"
      """
2
задан 14 September 2015 в 23:56
3 ответа

Это не совсем "простой текст", как Cucumber, но serverspec (Ruby, на базе RSpec) и testinfra (Python) оба обеспечивают возможность написания спецификаций для ваших машин, чтобы подтвердить, что они находятся в том состоянии, в котором вы хотите.

BTW, тестирование для вашей инфраструктуры невероятно важно, хотя и не столько "запуск на каждой машине", сколько проверка того, что ваше управление конфигурацией делает то, что вы ожидаете. Регрессии не редкость, и знание того, что изменение в ваших манифестах не помешало правильно настроить машину, очень обнадеживает.

На удивление легко внести изменение, которое останавливает, скажем, установку пакета, чего вы никогда не узнаете, пока не соберете новую машину, и пакет не появится, даже если он есть на всех остальных машинах. Таким образом, интегрируйте ваш набор тестов инфраструктуры с вашей системой CI, делая инкрементную и чистую (от-scratch) сборку на каждом коммите. Затем, помашите вашим тестовым пакетом машинам, как только они будут собраны. Это подтвердит, что ваше управление конфигурацией всё ещё делает всё, что должно быть.

.
3
ответ дан 3 December 2019 в 12:45

Марк Берджесс внес большой вклад в исследования в этой области:

http://markburgess.org/sysadmin.html

В частности, взгляните на http://cfengine.com, подкрепленные его работой.

-3
ответ дан 3 December 2019 в 12:45

Я автор testinfra, утилиты для написания инфраструктурных тестов на питоне (на основе pytest). Все функции testinfra могут быть использованы вне pytest через API.

Так что если у вас есть какие-то навыки в python, вы можете подключить testinfra с помощью pytest-bdd или вести себя и добиться поведенческой инфраструктуры.

NB: Как новый пользователь я не могу разместить более 2-х ссылок (потрясающая возможность...)

  • Testinfra API: testinfra. readthedocs.org/en/latest/api.html
  • pytest-bdd: github.com/pytest-dev/pytest-bdd
  • behave: pythonhosted.org/behave/
1
ответ дан 3 December 2019 в 12:45

Теги

Похожие вопросы