Я создаю многосерверный сайт электронной коммерции с использованием Django и PostgreSQL. Я буду использовать несколько серверов (приложение, базу данных, статический и т. Д.) От Linode.
В настоящее время я настраиваю свои серверы, используя набор написанных мной сценариев Bash. Написание этих сценариев помогло мне понять, как все взаимосвязано, но теперь моя инфраструктура и стек стали настолько сложными, что использование этих сценариев стало трудным и подверженным ошибкам. Вместо этого я бы хотел перейти на Ansible.
Если я собираюсь использовать Ansible для подготовки своих серверов, следует ли мне также использовать Vagrant?
Другими словами, следует ли мне использовать Ansible для подготовки моего оборудования без операционной системы или понятно, что если вы используете Ansible, вам следует также настраивать свой сервер на Vagrant VM? И если я сделаю это, не снизится ли производительность моего сайта на виртуальной машине, а не на самом сервере?
Хотя Vagrant и Ansible очень хорошо работают вместе, как упоминалось в комментариях к вашему вопросу, использование любого из этих инструментов не требовать использование другого. Как указано в документации, Ansible можно использовать без Vagrant и Vagrant. Вот, может использовать более 10 других методов настройки, включая другие системы управления конфигурацией (chef, puppet, salt).
Функциональность Vagrant и Ansible частично совпадает. Например, оба проекта могут создавать серверы. Как указано в документации, Ansible поддерживает ряд поставщиков облачных услуг и систем виртуализации. Вот. Точно так же Vagrant поддерживает некоторые провайдеры также.
Vagrant лучше всего подходит для создания серверов и особенно (локальных) виртуальных машин.
Ansible - гораздо более универсальный инструмент. Как вы знаете, помимо создания серверов, вы также можете их настраивать и управлять. Вы можете использовать Ansible для развертывания кода вашего приложения, управления сетевыми устройствами и многих других вариантов использования.
Преимущество подхода, основанного на использовании только Ansible, заключается в том, что у вас на одну зависимость меньше в вашем наборе инструментов ... Вам нужен только Ansible. Недостаток в том, что вам нужно будет разобраться в нюансах создания серверов для вашей предполагаемой платформы. Это может усложнить ваши роли / сценарии.
Преимущество использования Vagrant для обеспечения заключается в том, что может быть проще Создайте серверы независимо от того, какую платформу вы используете для их запуска.
Очень распространенный вариант использования - люди используют Vagrant для развертывания локальных виртуальных машин разработки. Это позволяет им использовать одни и те же пьесы Ansible для настройки / развертывания. разработчик, qa и толкать среды. Это помогает решить распространенную проблему «нормально работал на моем локальном разработчике», когда локальный компьютер разработчика может иметь другую конфигурацию или даже ОС по сравнению с qa и производственной средой. Запуск виртуальной машины позволяет использовать одну и ту же ОС.