У меня есть несколько подобных ситуаций для вас. Вот что я делаю ...
Все три репозитория находятся в одном и том же родительском каталоге.
./parent
|-- ansible
|-- backend
+-- frontend
Я использую vagrant-triggers плагин для запуска обновления к анзибль репо, когда я исполняю vagrant up
или vagrant provision
. Так было положено начало моей Vagrantfile
может выглядеть
Vagrant.configure("2") do |config|
config.trigger.before :up do
system("../ansible/update.sh")
end
где ../ansible/update.sh
скрипт, который проверяет, чтобы убедиться, что анзибль мерзавец репо уточненный и в правильном состоянии (на правой ветви, и т.д.).
Следующая часть тогда была бы, если бы вы хотели, чтобы бэкэнд и внешние репозитории могли загрузиться сами, если нерезонансное репо не существует. И это просто требует дополнительных сценариев оболочки с плагином бродяг-триггеров. Кроме того, если вы предпочитаете, вы можете использовать ansible local_action
(см. docs) вместо сценариев оболочки.
Vagrantfiles - это в основном просто код Ruby, поэтому вы можете делать практически все, и только ваше воображение - ваш предел. Однако требуется некоторое знание Ruby. Субмодулы были бы проще. –
Я бы порекомендовал также подмодуль. –