Система автоматического тестирования для развертывания сервера

Я все время развертываю серверы Linux и хотел бы проверить каждую установку. Как системный тест.

Для приложений существует множество тестовых сред, но я не могу найти ничего для тестирования установки сервера.

Чтобы быть более конкретным: используя Puppet, я развертываю различные комбинации Ubuntu, такие как LAMP, LNMP, Solr, Elasticsearch, Nodejs и т. Д. На более позднем этапе кто-то еще добавляет приложение в эти установки. Чтобы обеспечить наилучшее качество, насколько это возможно, я теперь запускаю Jenkins с матрицей, в которой тестовые прогоны запускают каждую возможную комбинацию манифестов Puppet, которую я использую. Это гарантирует, что Puppet не потерпит неудачу во время развертывания.

Проблема в том, что даже если Puppet преуспевает, нет гарантии, что, например, ElasicSearch действительно работает, или что iptables блокирует правильные порты и так далее. Конечно, я мог бы написать кучу сценариев bash для тестирования, но это просто неправильный путь.

Вопрос в том, есть ли рамки для этого уже (но я пропустил это)? Или есть еще какие-нибудь хорошие предложения, как действовать здесь? Цель состоит в том, чтобы иметь возможность проверить работающие процессы, подключиться к портам и т. Д.

Спасибо,

2 ответа

Решение

Я нашел совпадение префекта (для меня по крайней мере).

Сейчас я использую ServerSpec. Вы запускаете его локально или удаленно на целевой машине, и контрольные примеры выглядят примерно так:

describe port(80) do
  it { should be_listening }
end

Здесь описаны тонны тестовых ресурсов. Вы можете проверить существующих пользователей, файлы, записи в crontab, правила iptables и многое другое.

Вы ищете что-то под названием мониторинг. Вы просто настраиваете некоторые тесты, и программное обеспечение для мониторинга запускает его и сообщает о результатах. Существует много таких программ, например, zabbix или nagios.

Другие вопросы по тегам