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

Какие преимущества дает использование Vagrant для управления ресурсами AWS при использовании Ansible для выделения ресурсов?

Я понимаю, что Vagrant - это инструмент для создания виртуальных машин и управления ими; и это Ansible это инструмент для настройки своих машин (виртуальных или иных).

Тем не мение, Модули Ansible AWS способны создавать ресурсы AWS и управлять ими - в сочетании с динамическим инвентарем AWS это позволило бы получить полностью переносимый инструмент управления. Пока vagrant-aws плагин также может создавать ресурсы AWS и управлять ими, правильно ли я думаю, что он не может так легко управлять тем же ресурсы вполне переносимы (т.е. новый хост управления может загрузить Vagrantfile но не сможет управлять существующими ресурсами AWS)?

Если да, то какие преимущества (если таковые имеются) у использования Vagrant для управления ресурсами AWS (если он уже использует Ansible для предоставления) по сравнению с использованием Ansible как для управления ресурсами, так и для предоставления?

Я думаю, вы в основном правы - если вы ТОЛЬКО хотите управлять экземплярами EC2 - хотя бродяга может легко использовать систему динамической инвентаризации Ansible: http://docs.vagrantup.com/v2/provisioning/ansible.html:

Статический инвентарь

Второй вариант предназначен для ситуаций, когда вы хотите иметь больший контроль над управлением запасами. С ansible.inventory_path optionвы можете ссылаться на конкретный ресурс инвентаризации (например, файл статической инвентаризации, сценарий динамической инвентаризации или даже несколько инвентаризаций, хранящихся в одном каталоге). Затем Vagrant будет использовать эту инвентарную информацию вместо ее создания.

Эту опцию, вероятно, следует называть «существующий инвентарь» или «внешний инвентарь» или что-то в этом роде - это просто означает «использовать инвентарь, который не создавал Vagrant».

Настоящее преимущество Vagrant - это возможность использовать одни и те же / похожие файлы Vagrant для нескольких сред - с одними и теми же скриптами Ansible. Итак, виртуальные машины Virtualbox для разработчиков и EC2 для stage / prod с одинаковыми сценариями подготовки Ansible - и либо одним и тем же vagrantfile, либо двумя очень похожими.

На этом этапе вы можете переключиться на Docker, просто изменив поставщика в Vagrantfile - или даже используя --provider в командной строке.

То, как Vagrant реализует серверных провайдеров, делает переключение довольно простым.

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

vagrant status
vagrant up <machine>
vagrant destroy -f <machine>

который работает одинаково, независимо от провайдера серверной части - Virtualbox, EC2 и т. д., а также множества плагинов для других полезных вещей: https://github.com/mitchellh/vagrant/wiki/Available-Vagrant-Plugins

Но это не идеально. В vagrant-aws плагин не пользуется большой любовью, и если у вас сложные потребности в AWS, вам может быть лучше запустить что-то самостоятельно, либо со сценариями + Ansible, либо с Ansible самостоятельно.