Назад | Перейти на главную страницу

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

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

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

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

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

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

Спасибо,

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

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

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

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

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