Является ли Ansible заменой для инструмента CI, такого как Hudson/Jenkins?



недавно, в нашей компании, мы решили использовать Ansible для развертывания и непрерывной интеграции. Но когда я начал использовать Ansible, я не нашел модулей для создания Java-проектов с Maven или модулей для запуска тестов JUnit или тестов JMeter.



Итак, я нахожусь в сомнительном состоянии: возможно, я использую Ansible неправильно.



когда я посмотрел на Дженкинса, он может делать такие вещи, как сборка, запуск тестов, развертывание. Пропавшая вещь в Гудзоне-это создание / удаление экземпляра в облачных средах, таких как AWS.



Итак, в общем, для каких целей нам нужно использовать Ansible / Jenkins? Для CI мне нужно использовать комбинацию Ansible и Jenkins?



пожалуйста, пролей свет на правильное использование Ansible.

773   2  

2 ответов:

во-первых, Дженкинс и Хадсон в основном один и тот же проект. Я буду называть его Дженкинс ниже. Смотрите Как выбрать между Хадсон и Дженкинс?,Hudson против Дженкинса, в 2012 году и в чем наиболее заметная разница между Дженкинсом и Хадсоном от пользователя в перспективе? дополнительные.

во-вторых, Ansible не должен быть двигателем непрерывной интеграции. Он (как правило) не опрашивает репозитории git и запускает сборки, которые терпят неудачу в здравом уме путь.

когда я могу просто использовать Jenkins?

Если ваша машинная среда и процесс развертывания очень простой (например, Heroku или iron, который настроен за пределами вашей команды), Дженкинс может быть достаточно. Вы можете написать пользовательский сценарий, который выполняет развертывание в качестве последнего шага сборки (или последовательного шага).

когда я могу просто использовать Ansible?

Если вам нужно только "развернуть" без необходимости строить / тестировать, Ansible может быть достаточно. Например, вы можете запустить развертывание из командной строки или с помощью Ansible Tower. Это отлично подходит для небольших проектов, статических сайтов и т. д.

как они работают вместе?

хорошая комбинация-использовать Дженкинса для создания, тестирования и сохранения артефактов. Добавьте шаг для вызова Ansible или Ansible Tower для обработки фактического процесса развертывания. Что позволяет Анзибль, чтобы обрабатывать машина конфигурация и позволяет Дженкинсу обрабатывать процесс CI.

что альтернативы Дженкинсу?

Я настоятельно рекомендую Thoughtworks Go (не путать с Go языком) вместо Дженкинса. Другие включают CruiseControl, TravisCI и целостность.

Ansible-это просто "прославленный цикл SSH". CI - это не только запущенное программное обеспечение, но и весь процесс обработки успеха и сбоя, кто получает уведомление и как изменение объединяется в целевой контроль версий.

Если мы сосредоточимся только на программном обеспечении, CI-это реактивный планировщик, инициируемый изменениями кода и запускающий типичную последовательность "шагов"build-validate-release-deploy.

таким образом, в отношении программного обеспечения Ansible без дополнительного "шугаринга" является просто инструментарий для запуска вещей, которые могут быть теми самыми шагами, но это не CI. Ансибл (без башни) полностью лишен этой реактивной природы.

Если вы хотите жениться на Ansible с CI, вы можете.

Ansible tower-это очень Ansible ориентированный планировщик, но если вам нужно программное обеспечение CI, я думаю, что вам это не обязательно нужно. Любой КИ приложение может запускать скрипт будет способен запустить Анзибль сценарии.

но в отличие от Ansible tower-CI инструменты знают, чтобы отображение отчетов о тестировании всех тестовых платформ, уведомлений о триггерах и т. д.

Ansible tower может иметь смысл в сложной среде с большим количеством групп, затрагивающих Ansible код... По правде говоря, я не видел ни одной реальной причины платить за это. Но если менеджеру понравился веб-интерфейс, ничто не может стоять "но другие используют его" логика.

Я подозреваю, что концепция Ansible tower была в ответ на кукольное предприятие.

:)

Comments

    Ничего не найдено.