Я новичок в Ansible, и меня немного смущает, могу ли я лучше использовать Vagrant для создания экземпляров виртуальных машин (на EC2 и локальных виртуальных ящиках) и использовать Ansible только для подготовки или могу / должен использовать Ansible для создания экземпляров EC2 и локальных виртуальных ящиков.
Vagrant - это диспетчер виртуальных машин - я бы использовал его для создания виртуальных машин и управления ими. Ansible предназначен для управления конфигурацией машин - виртуальных или иных.
Вы мог используйте Ansible для создания виртуальных машин, а затем подготовьте их, я полагаю - у Ansible есть модуль оболочки, который вы можете использовать для чего угодно - или использовать что-то вроде этот. Но Vagrant - это инструмент специального назначения, который выполняет за вас огромный объем работы по обслуживанию виртуальных машин - вы, по сути, в конечном итоге вручную воссоздаете часть этого инструмента в своих плейбуках Ansible.
Я настоятельно рекомендую использовать лучший инструмент для каждой работы. в этом случае это будет означать использование Vagrant для управления вашими виртуальными машинами (VirtualBox, EC2, VMWare, что угодно), а затем запускать Vagrant Ansible для их настройки.